CHANGE LANGUAGE | Home > Doc > Reti Neurali su .... >Analisi del codice C generato

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

Analisi del codice C generato

I listati 2 e 3 sono i files prova.c e prova.h generati da Neuronx, dopo un addestramento sul problema "giocattolo" del riconoscimento di profili altimetrici con cinque inputs.

Il listato 2 contiene le procedure di esecuzione della rete e quelle di input /output e normalizzazione. Le procedure di fuzzyficazione e defuzzyficazione contengono solo un return perché questa rete non ha interfacce fuzzy(defuzzy_in_flag=0 e fuzzy_out_flag=0 nei dati pubblici). Le procedure di normalizzazione e di denormalizzazione contengono il codice relativo perchè sono attivate dai flag normaliz_flag=1 e denormaliz_flag=1(dalla scala reale della variabile alla scala 0.0 - 1.0 e viceversa).

Il listato 3 è il file prova.h (include in prova.c) che contiene le matrici w1,w2,w3 di valori float corrispondenti ai pesi sinaptici che connettono lo strato input con lo strato hidden1 di neuroni, lo strato hidden1 con lo strato hidden2 e lo strato hidden2 con lo strato di output. Questi valori corrispondono ai valori ottenuti dopo un addestramento con algoritmo a retropropagazione dell’ errore sul problema dei profili altimetrici. Tale addestramento è stato effettuato in regime termico dinamico, come dimostra la dichiarazione "float t=0.513044" nei dati pubblici: tale valore sarebbe uguale a 1 in caso contrario. Questo valore di temperatura è quello associato al momento in cui è stato fermato il processo di addestramento.

Nel caso in cui vengano scelte caratteristiche differenti nel pretrattamento dei dati (come la normalizzazione quadratica)o l'interfacciamento con dati sfumati, il codice c avrà differenti valori nei flags definiti nei dati pubblici e saranno presenti le funzioni relative complete.

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