Regola delta

Abbozzo
Questa voce sull'argomento matematica applicata è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia.

La regola delta (delta rule) è una regola di discesa del gradiente per aggiornare i pesi dei segnali di input che giungono ad un percettrone.[1] Si tratta di un caso particolare del più generale algoritmo di retropropagazione.

Enunciato

Per un neurone j {\displaystyle j} con una funzione d'attivazione g ( x ) {\displaystyle g(x)} , la regola delta per l' i {\displaystyle i} -esimo peso w j i {\displaystyle w_{ji}} è data da

Δ w j i = α ( t j y j ) g ( h j ) x i {\displaystyle \Delta w_{ji}=\alpha (t_{j}-y_{j})g'(h_{j})x_{i}} ,

dove

α {\displaystyle \alpha } è una costante piccola chiamata tasso di apprendimento (learning rate)
g ( x ) {\displaystyle g(x)} è la funzione d'attivazione del neurone e g {\displaystyle g'} la sua derivata
t j {\displaystyle t_{j}} è l'output desiderato
h j {\displaystyle h_{j}} è la somma pesata degli input al neurone
y j {\displaystyle y_{j}} è l'output vero
x i {\displaystyle x_{i}} è l' i {\displaystyle i} -esimo input.

Valgono: h j = x i w j i {\displaystyle h_{j}=\sum x_{i}w_{ji}} e y j = g ( h j ) {\displaystyle y_{j}=g(h_{j})} .

La regola delta è spesso semplificata se la funzione d'attivazione è lineare come

Δ w j i = α ( t j y j ) x i {\displaystyle \Delta w_{ji}=\alpha (t_{j}-y_{j})x_{i}}

mentre la regola delta è simile alla regola di aggiornamento del percettrone, come si ricava la regola è diverso. Il percettrone usa la funzione gradino di Heaviside come funzione d'attivazione g ( h ) {\displaystyle g(h)} , il che significa che g ( h ) {\displaystyle g'(h)} non esiste in zero, e che è uguale a zero altrove, e ciò rende l'applicazione diretta della regola impossibile.

Derivazione della regola delta

La regola delta si ricava a partire dalla minimizzazione dell'errore sull'output della rete neurale tramite la discesa del gradiente. L'errore per una rete neurale con j {\displaystyle j} output può essere misurato come

E = j 1 2 ( t j y j ) 2 {\displaystyle E=\sum _{j}{\frac {1}{2}}(t_{j}-y_{j})^{2}} .

In questo caso, occorre muoversi nello "spazio dei pesi" del neurone (lo spazio di tutti i valori che possono assumere i pesi) in proporzione al gradiente della funzione d'errore rispetto a ogni peso. Per fare ciò, si calcola la derivata parziale dell'errore rispetto a ogni peso. Per l' i {\displaystyle i} -esimo peso, la derivata è

E w j i = ( 1 2 ( t j y j ) 2 ) w j i {\displaystyle {\frac {\partial E}{\partial w_{ji}}}={\frac {\partial \left({\frac {1}{2}}\left(t_{j}-y_{j}\right)^{2}\right)}{\partial w_{ji}}}} .

dove è stata omessa la sommatoria siccome la derivata è relativa al j {\displaystyle j} -esimo neurone.

Il calcolo procede con l'applicazione della regola della catena:

= ( 1 2 ( t j y j ) 2 ) y j y j w j i = ( t j y j ) y j w j i {\displaystyle ={\frac {\partial \left({\frac {1}{2}}\left(t_{j}-y_{j}\right)^{2}\right)}{\partial y_{j}}}{\frac {\partial y_{j}}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right){\frac {\partial y_{j}}{\partial w_{ji}}}}

mentre la derivata rimanente si calcola ancora con la regola della catena, ma derivando rispetto all'intero input di j {\displaystyle j} , ovvero h j {\displaystyle h_{j}} :

= ( t j y j ) y j h j h j w j i {\displaystyle =-\left(t_{j}-y_{j}\right){\frac {\partial y_{j}}{\partial h_{j}}}{\frac {\partial h_{j}}{\partial w_{ji}}}}

Si noti che l'output del j {\displaystyle j} -esimo neurone, y j {\displaystyle y_{j}} , è semplicemente la funzione d'attivazione g {\displaystyle g} del neurone applicata al suo input h j {\displaystyle h_{j}} . Si può quindi scrivere la derivata di y j {\displaystyle y_{j}} rispetto a h j {\displaystyle h_{j}} semplicemente come la derivata prima di g {\displaystyle g} :

= ( t j y j ) g ( h j ) h j w j i {\displaystyle =-\left(t_{j}-y_{j}\right)g'(h_{j}){\frac {\partial h_{j}}{\partial w_{ji}}}}

A questo punto, si riscrive h j {\displaystyle h_{j}} nell'ultimo termine come la somma su tutti i k {\displaystyle k} pesi di ogni peso w j k {\displaystyle w_{jk}} moltiplicati per il loro input corrispondente x k {\displaystyle x_{k}} :

= ( t j y j ) g ( h j ) ( i x i w j i ) w j i {\displaystyle =-\left(t_{j}-y_{j}\right)g'(h_{j}){\frac {\partial \left(\sum _{i}x_{i}w_{ji}\right)}{\partial w_{ji}}}}

Poiché interessa solamente l' i {\displaystyle i} -esimo peso, l'unico termine della sommatoria che è rilevante è x i w j i {\displaystyle x_{i}w_{ji}} . Chiaramente,

x i w j i w j i = x i {\displaystyle {\frac {\partial x_{i}w_{ji}}{\partial w_{ji}}}=x_{i}} ,

portando all'equazione finale per il gradiente:

E w j i = ( t j y j ) g ( h j ) x i {\displaystyle {\frac {\partial E}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right)g'(h_{j})x_{i}}

Come evidenziato sopra, la discesa del gradiente dice che la variazione di ciascun peso deve essere proporzionale al gradiente La scelta di una costante di proporzionalità α {\displaystyle \alpha } e l'eliminazione del segno meno (siccome si cerca la direzione che diminuisce il gradiente), permettono di arrivare all'equazione cercata:

Δ w j i = α ( t j y j ) g ( h j ) x i {\displaystyle \Delta w_{ji}=\alpha (t_{j}-y_{j})g'(h_{j})x_{i}} .

Note

  1. ^ The Delta Rule, su uhavax.hartford.edu. URL consultato il 20 luglio 2022 (archiviato dall'url originale il 4 marzo 2016).

Bibliografia

  • Tom Mitchell, Machine Learning, McGraw Hill, 1997.
  • Ben Krose, Patrick van der Smagt, An Introduction to Neural Networks, The University of Amsterdam

Voci correlate

  • Discesa del gradiente
  • Least Mean Square
  • Percettrone
  • Rete neurale artificiale
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica