Un tutorial introduttivo per retropropagazione neurale con matematica semplificata

1

Ho costruito una rete neurale e ho progettato di ottimizzare i pesi usando un algoritmo genetico. Sono stato informato , tuttavia, che questa non è una buona idea e di guardare all'indietro.

Ho cercato in giro e ho trovato una panoramica molto superficiale dell'algoritmo (che concettualmente non è così difficile), o guide molto approfondite della matematica. Tutta la matematica che ho visto sembra essere il calcolo (anche se non saprei, dato che non conosco ancora il calcolo), quindi è difficile per me vedere cosa sta succedendo.

Ho cercato l'idea Artificial Intelligence: A Modern Approach , ma come per tutto il resto del libro, la matematica sembra arcana.

Capisco che il processo sia fondamentalmente:

  1. Propaga l'input verso l'output.
  2. Una volta raggiunto l'output, confronta il risultato con quello che ti aspettavi.
  3. Viene calcolato l'errore (atteso - effettivo).
  4. A partire dall'output, l'errore viene propagato di nuovo attraverso la rete ei pesi vengono adeguati di conseguenza.

Il mio problema è il punto 4 . Come si può sapere l'effetto di un nodo nascosto sull'output?

Qualcuno può spiegare il backpropagation di una rete neurale, con la matematica che può essere compresa a livello di sotto-calcolo?

    
posta Carcigenicate 16.07.2015 - 03:52
fonte

1 risposta

2

I nodi "nascosti" non sono realmente nascosti come una scatola nera: è solo uno strato tra i nodi di input e output. Il programma avrà i valori di tutti i pesi e i valori del segnale propagati attraverso la rete neurale.

Una volta ottenuto l'errore di output, puoi utilizzare tutte queste informazioni con la matematica "arcaica" (vuoi dire arcano?).

Ho trovato questo PDF tramite wikipedia che ha esempi più accessibili: link

Quindi, gli errori del nodo del livello nascosto vengono calcolati dall'errore di uscita moltiplicato per il peso della connessione tra il nodo nascosto e il nodo di uscita - e quindi i pesi dall'input al nodo nascosto possono essere modificati da questo errore. Nel caso semplice di un singolo nodo di output:

δα = outα (1 - outα) (Targetα - outα) 
output error = actual output * (1 - actual output) * (output we want - actual output)

δA = outA (1 – outA) (δαWAα)
hidden node error = output of node * (1 - output of node) * (output error * weight between hidden and output node)

Programmaticamente, si desidera calcolare tutti i valori di errore del nodo prima di regolare qualsiasi peso.

    
risposta data 16.07.2015 - 07:51
fonte

Leggi altre domande sui tag