vecchione
Banned
[purple]CIAO!!! TANTE VOLTE HO POSTATO ALCUNE PREVISIONI CON UN PROGRAMMA DI MIA IDEAZIONE CHE TRATTA LE RETI NEURALI INTERCONNESSE,IN QUESTO POST LA RISPOSTA ALLE TANTE DOMANDE FATTOMI IN PASSATO IN RIGUARDO ALLE RETI NEURALI IN BACK-PROPAGATION.CIAO!!!
Back-propagation
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:
dove è la derivata dell'errore rispetto all'uscita del neurone ; è la derivata dell'uscita rispetto all'energia di attivazione e è la derivata dell'attivazione del nodo di uscita rispetto al peso sinaptico.
Dalla formula 4.2 si ricava:
La derivata dell'uscita rispetto all'energia di attivazione è la derivata dell'operatore interno al neurone sopra citato , ovvero:
La derivata è data dall'equazione 4.1 e vale:
dove è l'ingresso del -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:
(4.3)
il termine è una costante che determina la velocità di convergenza dell'algoritmo ed è un termine determinato in modo euristico molto importante: infatti un valore troppo piccolo può determinare una velocità di convergenza molto lenta, mentre un valore troppo grande può portare alla instabilità (non convergenza) dell'algoritmo.
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 :
si può ricavare un'espressione analoga per i neuroni dello strato nascosto. La logica alla base è quella che un neurone nascosto direttamente collegato allo strato di uscita deve essere corretto in proporzione al suo contributo al neurone dello strato di uscita che è stato corretto.
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 strat
Back-propagation
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:
dove è la derivata dell'errore rispetto all'uscita del neurone ; è la derivata dell'uscita rispetto all'energia di attivazione e è la derivata dell'attivazione del nodo di uscita rispetto al peso sinaptico.
Dalla formula 4.2 si ricava:
La derivata dell'uscita rispetto all'energia di attivazione è la derivata dell'operatore interno al neurone sopra citato , ovvero:
La derivata è data dall'equazione 4.1 e vale:
dove è l'ingresso del -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:
(4.3)
il termine è una costante che determina la velocità di convergenza dell'algoritmo ed è un termine determinato in modo euristico molto importante: infatti un valore troppo piccolo può determinare una velocità di convergenza molto lenta, mentre un valore troppo grande può portare alla instabilità (non convergenza) dell'algoritmo.
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 :
si può ricavare un'espressione analoga per i neuroni dello strato nascosto. La logica alla base è quella che un neurone nascosto direttamente collegato allo strato di uscita deve essere corretto in proporzione al suo contributo al neurone dello strato di uscita che è stato corretto.
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 strat