mentre scavavo attraverso l'argomento delle reti neurali e su come addestrarli efficientemente mi sono imbattuto nel metodo di usare funzioni di attivazione molto semplici, come l'unità lineare recidiva (ReLU), invece dei classici sigmoidi lisci. La funzione ReLU non è differenziabile all'origine, quindi secondo la mia comprensione l'algoritmo di backpropagation (BPA) non è adatto per l'addestramento di una rete neurale con ReLUs, poiché la regola della catena del calcolo multivariabile si riferisce solo a funzioni regolari. Tuttavia, nessuno dei documenti sull'uso dei ReLU che ho letto risolve questo problema. I ReLU sembrano essere molto efficaci e sembrano essere usati virtualmente ovunque senza causare alcun comportamento imprevisto. Qualcuno può spiegarmi perché i ReLU possono essere addestrati attraverso l'algoritmo di backpropagation?In che modo l'algoritmo di back-propagation si occupa di funzioni di attivazione non differenziabili?
risposta
Per capire come è possibile anche il backpropagation con funzioni come ReLU è necessario capire qual è la proprietà più importante della derivata che rende l'algoritmo di backpropagation così efficace. Questa proprietà è che:
f(x) ~ f(x0) + f'(x0)(x - x0)
Se trattate x0
come valore effettivo della vostra parametro al momento - si può dire (sapendo il valore di una funzione di costo ed è derivata) come la funzione di costo si comporterà quando si cambia parametri un po ' Questa è la cosa più cruciale nel backpropagation.
A causa del fatto che la funzione di calcolo dei costi è fondamentale per un calcolo dei costi, è necessario disporre della funzione di costo per soddisfare la proprietà sopra indicata. È facile verificare che ReLU soddisfi questa proprietà ovunque tranne un piccolo quartiere di 0
. E questo è l'unico problema con ReLU - il fatto che non possiamo usare questa proprietà quando siamo vicini a 0
.
Per superare questo è possibile scegliere il valore della derivata ReLU in 0
su 1
o 0
. D'altra parte, la maggior parte dei ricercatori non considera questo problema come serio semplicemente perché il fatto di trovarsi vicino allo 0
durante i calcoli ReLU è relativamente raro.
Da quanto sopra - ovviamente - dal punto di vista matematico non è plausibile utilizzare ReLU con algoritmo di backpropagation. D'altra parte - in pratica di solito non fa alcuna differenza che ha questo comportamento strano intorno a 0.
- 1. In che modo condition_variable :: wait_for() si occupa di wakeups spuri?
- 2. Perché una funzione di attivazione non lineare deve essere utilizzata in una rete neurale di backpropagation?
- 3. R() che si occupa di NA
- 4. SSAS che si occupa di dati non collegati
- 5. In che modo DateTimeOffset si occupa dell'ora legale?
- 6. In che modo il pacchetto R "lucido" si occupa dei frame di dati?
- 7. CGContextDrawPDFPage che occupa grandi quantità di memoria
- 8. Applicazione Web che si occupa di file -upload download
- 9. pampas ricampionamento che si occupa di dati mancanti
- 10. Che posix_fadvise() si occupa della scrittura sequenziale di file?
- 11. Redux normalizr + che si occupa di risposte ridotte
- 12. che si occupa di ljpeg (jpeg lossless) usando MATLAB
- 13. che si occupa di una dll non gestita con una perdita di memoria
- 14. PHP che si occupa della concorrenza
- 15. Web worker che si occupa di imageData che funziona con Firefox ma non Chrome
- 16. Algoritmo di backpropagation della rete neurale non funzionante in Python
- 17. Attivazione del browser Funzioni di zoom in e zoom out
- 18. Backpropagation con unità lineari rettificate
- 19. SQL che si occupa di rifiuti in un campo numero di telefono
- 20. In che modo l'ambito influenza generalmente l'uso di funzioni annidate?
- 21. in che modo la backpropagation è la stessa (o non) differenziazione automatica inversa?
- 22. Sono tutti tipi differenziabili Monadi
- 23. Funzioni di costo e attivazione per più etichette indipendenti
- 24. Due funzioni che si richiamano in modo ricorsivo
- 25. Python GC si occupa di cicli di riferimento come questo?
- 26. In che modo le funzioni di HoG sono rappresentate graficamente?
- 27. Come si ferma un div che occupa spazio?
- 28. Pulsanti di attivazione HTML
- 29. react.js - React-router che si occupa di intestazioni e piè di pagina fissi
- 30. quadro di analisi che si occupa bene con i riferimenti circolari in JSON
Come viene chiamata questa proprietà derivativa? – Prometheus
Questo è un teorema di approssimazione _ primo ordine_ –