La backpropagazione è l'algoritmo di addestramento più comune per le reti neurali.
Rende possibile la discesa del gradiente per le reti neurali multilivello.
TensorFlow gestisce automaticamente la retropropagazione, quindi non è necessario
conoscere a fondo l'algoritmo. Per capire come funziona, consulta la seguente spiegazione visiva dell'algoritmo di retropropagazione.
Mentre scorri la spiegazione precedente, tieni presente quanto segue:
Il flusso di dati attraverso il grafico.
In che modo la programmazione dinamica ci consente
di evitare di calcolare in modo esponenziale molti percorsi nel grafico. In questo caso, la "programmazione dinamica"
significa semplicemente la registrazione
di risultati intermedi nei passaggi avanti e indietro.
Reti neurali per l'addestramento
Backprop: quello che devi sapere
I gradienti sono importanti
Se è differenziabile, probabilmente possiamo imparare
Backprop: quello che devi sapere
I gradienti sono importanti
Se è differenziabile, probabilmente possiamo imparare
I gradienti possono svanire
Ogni livello aggiuntivo può ridurre successivamente il segnale rispetto al rumore
ReLus sono utili qui
Backprop: quello che devi sapere
I gradienti sono importanti
Se è differenziabile, probabilmente possiamo imparare
I gradienti possono svanire
Ogni livello aggiuntivo può ridurre successivamente il segnale rispetto al rumore
ReLus sono utili qui
I gradienti possono esplodere
I tassi di apprendimento sono importanti qui
La normalizzazione del batch (utile manopola) può aiutarti
Backprop: quello che devi sapere
I gradienti sono importanti
Se è differenziabile, probabilmente possiamo imparare
I gradienti possono svanire
Ogni livello aggiuntivo può ridurre successivamente il segnale rispetto al rumore
ReLus sono utili qui
I gradienti possono esplodere
I tassi di apprendimento sono importanti qui
La normalizzazione del batch (utile manopola) può aiutarti
Gli strati ReLu possono morire
Mantieni la calma e riduci i tassi di apprendimento
Normalizzazione dei valori delle caratteristiche
Vorremmo che le nostre funzionalità avessero dimensioni ragionevoli
Un intervallo con centrato approssimativamente zero, [-1, 1] spesso funziona bene
Aiuta la discesa del gradiente converge; evita la trappola NaN
Anche evitare i valori anomali può essere utile
Sono disponibili alcuni metodi standard:
Scala lineare
Copertina rigida (clipping) a max, min
Scalabilità log
Regolarizzazione dell'abbandono
Abbandono: un'altra forma di regolarizzazione, utile per le NN
Funziona "eliminando" le unità in modo casuale in una rete per un singolo passaggio del gradiente