CHANGE LANGUAGE | Home > Metodi e Strategie > Reti Neurali su .... >Simulated Annealing(*):Regime termico dinamico

Reti Neurali su personal computer e fuzzy logic

Introduzione

Reti Neurali Error Back Propagation

Applicazioni pratiche di una rete neurale EBP

Reti Neurali Autoorganizzanti

Fuzzy Logic e La teoria del Ragionamento sfumato

Neurfuzz 1.0

Introduzione

Addestramento

Ambiente di Test

Generazione Codice C

Addestramento con Algoritmo Genetico

Test distribuzione Dati

Interfacce Fuzzy

Test sul potere di generalizzazione

Test sulla Resistenza al rumore

Simulated Annealing(*):Regime termico dinamico

Thermoshock

Fuzzkern: Definizione delle regole di un reasoning Engine

Analisi del codice C generato

Guida al software allegato

Guida agli applicativi

Bibliografia in lingua Inglese

Reti neurali su Personal Computer e Fuzzy Logic: Neurfuzz 1.0

Simulated Annealing(*):Regime termico dinamico

Uno dei problemi che si possono presentare nell’ addestramento di una rete neurale è quello della caduta in un minimo locale (rimando al capitolo sulla retropropagazione dell’ errore). Uno degli espedienti che sono stati sperimentati per superare tale problema è quello di adottare una legge di tipo probabilistico del neurone, tale che le variazioni di attivazione vengano accettate con un certo grado di probabilità crescente nel tempo.

Facciamo un esempio che dia un immagine "fisica" del problema: immaginate di avere un piano di plastica deformato con "valli" e "monti" di varie estensioni e profondità, e di porvi sopra una pallina con l'obbiettivo di farla cadere nella valle più profonda(minimo assoluto). Molto probabilmente la pallina cadrà nella valle più vicina al punto in cui la abbiamo messa che potrebbe non essere la valle più profonda.

Il processo di simulated annealing consiste nel muovere il piano di plastica in modo che la pallina lo percorra superando monti e valli e diminuire la intensità del movimento gradualmente fino a zero. Molto probabilmente, la pallina rimarrà nella valle più profonda dalla quale, a un certo punto, il movimento non sarà più sufficiente a farla uscire. Nella nostra rete tutto questo non viene realizzato con un vero algoritmo probabilistico, ma si utilizza una legge di attivazione a sigmoide modificata che contiene un parametro "temperatura":

A=1/(1+e**P/t)

A=valore di uscita del neurone

P=valore di attivazione del neurone(sommatoria degli ingressi)

t=temperatura

Nella cosiddetta Macchina di Boltzmann, che fa uso di una legge di attivazione probabilistica, la temperatura viene normalmente fatta diminuire gradualmente nel tempo. Nel nostro programma la temperatura viene correlata alla differenza tra errore della rete e target error in modo che diminuisca con il diminuire di questa differenza. In principio la sigmoide ha una pendenza molto lieve garantendo risposte di output poco intense a variazioni di input anche elevate; in seguito la sigmoide si avvicina sempre più al gradino per cui il neurone ha risposte intense a piccole variazioni di input(fig.8).

Con questo sistema, in questo specifico programma, è possibile avere risultati molto interessanti nella risoluzione di certi problemi e avere risultati negativi con altri tipi di problemi. Ciò dipende, effettivamente, da come si presenta la "superficie" ottimale dei pesi per la risoluzione del problema stesso. Utilizzando questo processo, si può notare un mantenimento più lungo di livello di errore molto elevato, che talvolta (problema adatto a questo tipo di soluzione), scende a valori estremamente bassi in tempi rapidissimi(fig.9). Bisogna precisare che, la Macchina di Boltzmann nulla ha in comune con questa rete e, il principio del Simulated Annealing è stato, in questo contesto, applicato con modalità differenti(**).

Luca Marchese

PerformanceTrading.it ed il suo contenuto sono di esclusiva proprietà degli autori. E' vietata la riproduzione anche parziale di qualsiasi parte del sito senza autorizzazione, compresa la grafica e il layout. Prima della consultazione del sito leggere il disclaimer nella sezione [info].