CHANGE LANGUAGE | Home > Metodi e Strategie > Reti Neurali su .... >Addestramento con Algoritmo Genetico

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

Addestramento con Algoritmo Genetico

Si può addestrare la rete utilizzando il tipico algoritmo di retropropagazione dell’ errore, ma anche tramite un algoritmo che sfrutta i principi dell’ evoluzione di Darwin. Gli algoritmi genetici sono ampiamente utilizzati nella moderna intelligenza artificiale per risolvere problemi di ottimizzazione. La base fondamentale di un algoritmo genetico è una popolazione di individui (cromosomi) composti, ciascuno, da un certo numero di geni che rappresentano caratteri dell’ individuo. Un individuo può avere caratteri più adatti alla soluzione del problema di un altro: si dice che la "fitness function" per quell' individuo porta ad un valore più vicino alla soluzione.

Per fitness function si intende una funzione che lega i caratteri del cromosoma(le variabili indipendenti nel problema) alla variabile che rappresenta la soluzione del problema. Un algoritmo genetico deve calcolare la fitness function per ogni individuo della popolazione e salvare gli individui migliori . Partendo da questi individui, deve generare una nuova popolazione tramite gli operatori "crossover" e "mutation"che, rispettivamente, scambiano geni tra cromosomi e creano piccole mutazioni casuali su alcuni geni dei cromosomi. Viene ricalcolata la fitness function per ogni individuo della nuova popolazione e salvati gli individui migliori. Questo ciclo viene ripetuto un numero molto elevato di volte creando sempre nuove "generazioni di individui".

Nel nostro caso, un individuo o cromosoma è rappresentato dal vettore contenente tutti i pesi dei collegamenti tra gli strati neuronali della rete e ogni singolo peso rappresenta un gene del cromosoma. Ogni individuo viene testato e, in questo caso, la fitness function coincide con l'esecuzione della rete stessa Gli individui migliori sono quelli che portano ad un errore globale più vicino al target . Si parte con tre individui e si salva il migliore e, come sopra esposto, si crea da esso una nuova popolazione di tre individui con gli operatori crossover e mutation, lasciando invariato un individuo per impedire possibili involuzioni. Questo ciclo viene ripetuto fino al raggiungimento del target error.

Un addestramento con algoritmo genetico è utile su livelli molto bassi di errore della rete per due motivi: il primo è il fatto che un algoritmo genetico può superare i minimi locali e, il secondo è che su livelli alti di errore il classico algoritmo a retropropagazione dell'errore è molto efficiente mentre su livelli di errore bassi, cioè quando ci si avvicina al minimo assoluto (o comunque ad un minimo), tale algoritmo produce avvicinamenti al target molto lenti(ricordate la tecnica della discesa del gradiente e il fatto che la derivata di una funzione su un punto di minimo è nulla?)

Per questo motivo l'apprendimento con algoritmo genetico può partire solamente da errori inferiori a 0.5, perché per errori maggiori la retropropagazione degli errori risulta più efficiente. Si può anche utilizzare un tool ibrido che inizia l'addestramento con algoritmo ebp e continua con algoritmo genetico, automaticamente, in prossimità del 10% di distanza dal target. Un diagramma di flusso dell’ algoritmo genetico è rappresentato in fig.4.

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].