Ogni neurone ha una precisa funzione di trasferimento come avevamo gia accennato parlando delle memorie associative nelle quali i neuroni hanno una funzione di trasferimento a gradino. In una rete error_back_propagation dove vogliamo avere la possibilità di lavorare con valori reali e non booleani,dobbiamo utilizzare una funzione di trasferimento a sigmoide (fig.3)definita dalla formula:
O = 1/(1+exp(-I))
dove O=output del neurone, I=somma degli input del neurone
e in particolare I= E{k=1,n}(k) w(j)(k) * x(k)
La sigmoide di fig.3 e` centrata sullo zero ma in molte applicazioni è decisamente opportuno che il centro delle sigmoidi di ogni neurone sia "personalizzato" dal neurone stesso per garantire una maggiore flessibilità di calcolo. Si può ottenere ciò modificando l'ultima formula nel seguente modo:
I= E{k=1,n}(k) w(j)(k) * x(k) - S(k)
dove S(k) è il punto in cui è centrata la sigmoide del k_esimo neurone. Affinché tale soglia sia personalizzata è necessario che essa venga appresa(cioè si modifichi durante la fase di apprendimento) esattamente come i pesi delle connessioni tra i neuroni dei diversi strati. Con un piccolo trucco possiamo considerare tale soglia come un input aggiuntivo costante al valore 1 che è
collegato al neurone k con un peso da "apprendere": la nostra rete si trasforma pertanto in quella di fig.4. La formula per cacolare l'attivazione del neurone diventa:
I=E{k=1,n+1}(k) w(j)(k) * x(k)
Luca Marchese
Successivo: Algoritmo di apprendimento
Sommario: Indice