La back-propagation è senz'altro il paradigma delle reti neurali più universalmente usato ed è basato sulle reti neurali feed-forward con apprendimento supervised, visto precedentemente. Il meccanismo si basa sull'intuizione avuta da S. Freud su come il cervello umano si adattasse alle varie situazioni nel tempo. Nella sua idea Freud ipotizzò un flusso chimico in direzione opposta al normale flusso elettrico eccitatorio. Da qui il nome di back-propagation, ovvero propagazione all'indietro. Nel modello matematico quello che viene propagato all'indietro è l'errore tra l'uscita voluta e l'uscita reale della rete per un particolare stato di ingresso. Si ottiene così un algoritmo che appartiena alla classe degli algoritmi che realizzano una discesa del gradiente, ovvero si cerca un minimo (nella maggior parte dei casi locale) della superficie dell'errore. La trattazione qui svolta si rifà a quella derivata dalla regola Delta generalizzata da Rumelhart, Hinton e Williams ([26]).
Riferendoci alla figura 4.2, l'algoritmo si può così riassumere:
dato un particolare vettore di ingressi si applica tale vettore alla rete neurale
e si ottiene l'uscita
, si confronta tale uscita con l'uscita voluta
calcolando l'errore quadratico dato da:
A questo punto si deve calcolare la variazione dei pesi sulle sinapsi attraverso la propagazione dell'errore, ovvero si correggono i pesi delle sinapsi in verso opposto alla superficie dell'errore (infatti tale algoritmo viene chiamato anche step-descend, ovvero discende la superficie dell'errore nel verso del gradiente).
La variazione dell'errore in funzione della variazione dei pesi sinaptici è data
da
e attraverso la regola di derivazione a catena:
;
Dalla formula 4.2 si ricava:
-esimo neurone di uscita,
ovvero l'uscita del neurone -esimo dello strato nascosto.
Nel caso in cui lo strato di uscita abbia funzione di trasferimento lineare, semplicemente
nelle formule precedenti si ha
Si può così ricavare la variazione dei pesi:
La regola così ricavata è valida solo per i neuroni dello strato
di uscita. L'applicazione dell'algoritmo per lo strato nascosto è più problematica, in quanto il valore di uscita del neurone nascosto non è direttamente legato al valore voluto in uscita dalla rete neurale.
Esprimendo la 4.3 come prodotto di una funzione di errore
per l'ingresso del
neurone
:
In termini probabilistici un neurone nascosto che ha una forte connessione con un
un neurone di uscita fortemente ``sbagliato'' ha molta probabilità di
essere lui stesso contributo di errore.
Matematicamente si può allora definire la funzione di errore per un neurone
dello strato nascosto come:
-esimo.
La procedura è facilmente generalizzabile per reti con più strati nascosti.
La dipendenza della stabilità dell'algoritmo dal parametro
ha suggerito
diverse varianti alla back-propagation standard. La soluzione qui adottata
è una variante della regola delta-bar proposta da R. A. Jacobs nel 1988.
Tale metodo (detto anche back-propagation con momento di inerzia o
back-propagation adattativa), prevede la variazione del parametro
passo per passo di una quantità
, dove
è di un ordine di grandezza inferiore a
,
nel caso di diminuzione dell'errore definito dalla eq. 4.2 (stabilità dell'algoritmo),
oppure di una variazione di
, con
, nel
caso di aumento dell'errore (instabilità dell'algoritmo).
Il risultato finale che si ottiene è quello di superare dei minimi locali
nella superficie dell'errrore, facendo in modo così che l'algoritmo non
venga ``intrappolato'' in tali minimi.
Maggiori dettagli verranno esposti nel capitolo 6, dedicato all'effettiva realizzazione
del controlo neurale.
Bofh 2004-02-09