User Tools

Site Tools


neurali:error_backpropagation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
neurali:error_backpropagation [2015/07/09 17:44] profproneurali:error_backpropagation [2020/06/08 22:20] – external edit 127.0.0.1
Line 1: Line 1:
 +====== Error Backpropagation ======
 +
 +
 +In sostanza: 
 +
 +Durante l'addestramento [[neurali: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 [[neurali:parametri di progettazione ann#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 sare 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