5

Il Wikipedia page for backpropagation ha questa affermazione:in che modo la backpropagation è la stessa (o non) differenziazione automatica inversa?

L'algoritmo backpropagation per calcolare un gradiente è stato riscoperto un certo numero di volte, ed è un caso speciale di un tecnica più generale chiamata differenziazione automatica in modalità accumulo inversa .

Qualcuno può esporre su questo, metterlo in parole povere? Qual è la funzione che viene differenziata? Qual è il "caso speciale"? Sono i valori aggiunti che vengono utilizzati o il gradiente finale?

risposta

5

Nella formazione sulla rete neurale, vogliamo trovare una serie di pesi w che minimizzi l'errore E(N(w,x)-y). (x è l'ingresso di allenamento, è l'uscita di allenamento, N è la rete e E è una funzione di errore).

Il modo standard per eseguire un'ottimizzazione di questo tipo è la discesa del gradiente, che utilizza la derivata della rete, dire N'. Potremmo rappresentare la rete come un prodotto matrice e farlo manualmente con il calcolo matriciale, ma possiamo anche scrivere algoritmi (automatici).

Backpropagation è un algoritmo speciale, che presenta alcuni vantaggi. Ad esempio, rende facile prendere la derivata solo rispetto ad un campione selezionato di pesi, come è necessario per la discesa del gradiente stocastico. Specifica anche come i feed-forward (valori di rete effettivi) vengono salvati in modo che siano facilmente accessibili per il calcolo delle derivate necessarie.

Dovresti riuscire a trovare il codice esatto per l'algoritmo specifico nei libri di testo e online.

Problemi correlati