Risposte:
L'algoritmo di propagazione posteriore è un algoritmo di discesa gradiente per l'adattamento di un modello di rete neurale. (come menzionato da @Dikran) Lasciami spiegare come.
Formalmente: l' uso del calcolo del gradiente alla fine di questo post all'interno dell'equazione [1] di seguito (ovvero una definizione della discesa del gradiente) fornisce l'algoritmo di propagazione posteriore come un caso particolare dell'uso di una discesa del gradiente.
Un modello di rete neurale Formalmente, risolviamo idee con un semplice modello a singolo strato:
dove g : R → R e s : R M → R M sono noti per tutti m = 1 … , M , s ( x ) [ m ] = σ ( x [ m ] ) e
Una funzione di perdita quadratica viene utilizzata per correggere le idee. Quindi i vettori di input di R p possono essere adattati all'output reale ( y 1 , … , y n ) di R (potrebbero essere vettori) minimizzando la perdita empirica: R n ( A 1 , A 2 ) = n ∑ i = 1 ( y i - f ( x rispetto alla scelta di A 1 e A 2 .
La retro-propulsione è un modo di elaborare la derivata della funzione di errore rispetto ai pesi, in modo che il modello possa essere addestrato con metodi di ottimizzazione della discesa del gradiente - è fondamentalmente solo l'applicazione della "regola della catena". Non c'è molto di più, quindi se ti senti a tuo agio con il calcolo, questo è fondamentalmente il modo migliore per vederlo.
Se non ti senti a tuo agio con il calcolo, un modo migliore sarebbe dire che sappiamo quanto male stanno facendo le unità di output perché abbiamo un output desiderato con cui confrontare l'output effettivo. Tuttavia non abbiamo l'output desiderato per le unità nascoste, quindi cosa facciamo? La regola di retropropagazione è fondamentalmente un modo per scartare la colpa per l'errore delle unità di output sulle unità nascoste. Maggiore è l'influenza di un'unità nascosta su una determinata unità di output, maggiore è la colpa che riceve per l'errore. La colpa totale associata a un'unità nascosta fornisce quindi un'indicazione di quanto devono essere modificati i pesi del livello da input a nascosto. Le due cose che governano la quantità di colpa che viene restituita è il peso che collega i pesi dello strato nascosto e di output (ovviamente) e l'output dell'unità nascosta (se urla piuttosto che sussurrare è probabile che abbia un'influenza maggiore). Il resto sono solo le bellezze matematiche che trasformano quell'intuizione nella derivata del criterio di allenamento.
Consiglierei anche il libro dei Vescovi per una risposta adeguata! ; O)
È un algoritmo per l'addestramento di reti neurali multistrato feedforward (percetroni multistrato). Ci sono molte belle applet Java sul Web che illustrano cosa sta succedendo, come questa: http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html . Inoltre, il libro di Bishop sulle NN è il riferimento standard per qualsiasi cosa abbia a che fare con le NN.