neurali:error_backpropagation
Error Backpropagation
In sostanza:
Durante l'addestramento supervisioned learning rule, basato su error backpropagation, si parte sempre dai dati di input e dati di output desiderati. Potrebbe sembrare che manchi l'informazione necessaria a riempire i pesi delle sinapsi dei neuroni hidden, invece basta applicare l'agoritmo di erro backpropagation
- si calcola l'output effettivo e l'errore prodotto rispetto ai dati desiderati
- si fa risalire indietro questo errore (nel verso matematicamente inverso a quello dell'output) per calcolare come devono essere modificati i pesi sinaptici
- A volta bastano 10 epoche, cioè basta ripetere 10 volte l'addestramento con i dati. Altre volte sono necessarie 100 epoche, anche per la stessa rete, perché?
- Perché l'addestramento di una rete parte sempre con pesi sinaptici random..
Precondizionamento
Vediamo due modi di operare molto utili per progettare reti e per addestrarle
- Early stop: fermarsi precocemente, per evitare overfitting. Come faccio a sapere quando? Devo avere da parte un po' di dati anche per fare un test di validità del funzionamento di quello che ho ottenuto
- weight decay: si aggiunge un parametro (momentum?) per evitare che i pesi sinaptici tendano a crescere a dismisura.
- precondizionamento da fare prima dell'addestramento per normalizzare i dati , i pesi sinaptici, il learning rate.
Normalizzazione
- Normalizzare i dati di input e di output significa avere una gaussiana con media~0 e varianza~1.
- Normalizzare i pesi sinpatici vuol dire usare per i pesi una distribuzione di probabilità uniforme (non gaussiana) da -√1/K a +√1/K, con K= n. nodi entranti in ogni neurone.
- Molto meglio usare una funzione di attivazione tanh (non sigmoid).
- Normalizzare il learning rate vuol dire che si può partire con questi valori e diminuirli:
- con unsupervisioned learning λ=1
- con supervisione learning λ=√1/N con N è il numero di dati forniti in input
neurali/error_backpropagation.txt · Last modified: 2023/06/06 18:42 by profpro