Esercitazione N°1

12
Esercitazione N°1 Il tool di Matlab

description

Esercitazione N°1. Il tool di Matlab. Matlab mette a disposizione un utile tool per lo studio delle Reti Neurali. Nel presente corso si fa riferimento alla versione di Matlab n° 6 (Release 12). Il file della guida sul tool delle reti neurali è accessibile tramite la finestra launch-pad. - PowerPoint PPT Presentation

Transcript of Esercitazione N°1

Page 1: Esercitazione N°1

Esercitazione N°1

Il tool di Matlab

Page 2: Esercitazione N°1

Matlab mette a disposizione un utile tool per lo studio delle Reti Neurali.Nel presente corso si fa riferimento alla versione di Matlab n° 6 (Release 12).

Il file della guida sul tool delle reti neurali è accessibile tramite la finestra launch-pad

E’ possibile gestire le reti neurali attraverso un’interfaccia grafica che può essere richiamata con un doppio-clic sull’icona del launch-pad oppure digitando:>> nntoolNel prompt dei comandi di Matlab

Page 3: Esercitazione N°1

Appare la seguente finestra (Network/Data Manager) nella quale sono raccolte le funzioni per la costruzione e l’uso delle reti. Attraverso i pulsanti nella parte bassa si agisce sulle reti e i dati di riferimento per l’addestramento e il richiamo. Nelle finestre della parte superiore sono riassunti i dati e le reti attualmente presenti nell’workspace.

Ingressi

Uscite Desiderate

Ritardi sugli ingressi Ritardi sulla Rete

Scarto tra uscite calcolate e desiderate

Uscite Calcolate

Reti Neurali

Page 4: Esercitazione N°1

Premendo il pulsante New Network appare la seguente schermata, che permette di definire le caratteristiche della nuova rete neurale.

Per imparare ad utilizzare il tool grafico si assuma la configurazione di default proposta dal programma.Il numero di neuroni di ingresso è pari a 2, e si deduce dal numero di righe della matrice con gli intervalli di variazione degli ingressi.La rete assume la funzione di addestramento learnlm, la funzione learngdm di adattamento, l’errore quadratico medio per il calcolo dell’errore. La rete è composta da due strati (oltre allo strato di ingresso) aventi funzione di trasferimento tangente iperbolica.

Con il pulsante Create si costruisce la rete e con il pulsante View si può visualizzare.

Page 5: Esercitazione N°1

Dopo aver creato la nuova rete essa appare nell’apposita finestra del Network/Data Manager. Per modificare o visualizzare le caratteristiche della rete occorre prima selezionarla.Premendo il pulsante View appare la seguente rappresentazione grafica della rete:

Assieme a tale rappresentazione compaiono anche le form per la gestione di tutte le funzioni relative alla rete: Inizializzazione, Richiamo, Addestramento, Adattamento, Definizione del valore dei pesi

Page 6: Esercitazione N°1

Per poter procedere all’addestramento della rete occorre definire gli insiemi di riferimento, che nel caso specifico sono gli ingressi del training-set e le corrispondenti uscite desiderate. Dal Network/Data Manager si preme il pulsante New Data, che fa apparire la seguente finestra:

In questa si stabilisce il nome della variabile che si sta creando, i valori numerici e la sua funzione riguardo la rete, se cioè si tratta di ingressi, uscite desiderate, ritardi, uscite o errori.Come primo passo si definiscano gli ingressi.Si ricordi che il numero di righe deve essere pari al numero di neuroni dello strato di ingresso della rete.Come secondo passo si definiscano le uscite desiderate. In questo caso il numero di righe deve coincidere con il numero di neuroni dello strato di uscita. Inoltre i valori devono essere compatibili con le uscite delle funzioni di trasferimento dei neuroni nell’ultimo strato.

Page 7: Esercitazione N°1

Prima di procedere con la fase di addestramento occorre inizializzare opportunamente i pesi delle connessioni, per evitare che la rete resti intrappolata in qualche minimo locale.Dopo aver selezionato la rete dall’elenco si preme il pulsante Initialize.L’inizializzazione può essere effettuata sulla base dei valori degli ingressi o degli intervalli di variazione, fissati all’atto della creazione della nuova rete.

Premendo il pulsante Initialize Weights si effettua l’inizializzazione della rete.A questo punto si può procedere con la fase di addestramento.A questo scopo si passa alla form Train di questa stessa finestra.

Page 8: Esercitazione N°1

In questa form si fissano tutte le informazioni necessarie per addestrare la rete. In particolare si distinguono le informazioni riguardanti i dati in ingresso e in uscita, dai parametri di apprendimento.Tra i vari parametri, per i quali si assumono i valori di default, si richiama l’attenzione sul numero massimo di epoche (epochs), l’errore sulle uscite desiderate che si pone come obiettivo (goal) e il numero di epoche comprese tra due aggiornamenti successivi della schermata (show). Gli altri parametri riguardano la strategia di apprendimento, che verrà trattata compiutamente in esercitazioni specifiche.

Page 9: Esercitazione N°1

A questo punto si può avviare l’addestramento della rete con il pulsante Train Newtwork.Sullo schermo apparirà l’andamento dell’errore in funzione del numero di epoche. Se si pone come obiettivo un errore nullo l’addestramento procederà per il numero di epoche che si è fissato come limite.Nell’esempio in figura, nelle 100 epoche prefissate si è raggiunto un valore dell’errore dell’ordine di 10-12.

Page 10: Esercitazione N°1

La rete così addestrata può essere memorizzata nel disco, oppure trasferita all’workspace di Matlab, per ulteriori operazioni. Partendo dal Network/Data Manager si prema il pulsante Export.

Apparirà l’elenco di tutte le variabili create durante le precedenti operazioni:la rete neurale, i dati in ingresso, le uscite desiderate, le uscite calcolate e gli errori commessi, cioè la differenza tra le uscite calcolate e quelle desiderate.

Selezionando una variabile, per esempio la rete network1 si attivano i due pulsanti Export e Save. Il primo trasferisce la variabile selezionata all’workspace di Matlab, il secondo la salva su disco.Si prema Export.

Page 11: Esercitazione N°1

Ora la rete network1 si trova su Matlab, come possiamo vedere digitando il comando:

>>whos

che fornisce l’elenco di tutte le variabile presenti. Apparirà la seguente schermata:

Name Size Bytes Class

ans 1x1 8 double array network1 1x1 27926 network object

Grand total is 971 elements using 27934 bytes

>>

La variabile network1 viene allocata come oggetto di tipo rete. Per visualizzarne la struttura digitare il nome della rete nel prompt dei comandi:

>>network1

e premere invio. Apparirà la schermata visualizzata nella pagina seguente. Per accedere ai singoli campi dell’oggetto rete si utilizza la solita sintassi della programmazione a oggetti.

Page 12: Esercitazione N°1

network1 =

Neural Network object:

architecture:

numInputs: 1

numLayers: 2

biasConnect: [1; 1]

inputConnect: [1; 0]

layerConnect: [0 0; 1 0]

outputConnect: [0 1]

targetConnect: [0 1]

numOutputs: 1 (read-only)

numTargets: 1 (read-only)

numInputDelays: 0 (read-only)

numLayerDelays: 0 (read-only)

subobject structures:

inputs: {1x1 cell} of inputs

layers: {2x1 cell} of layers

outputs: {1x2 cell} containing 1 output

targets: {1x2 cell} containing 1 target

biases: {2x1 cell} containing 2 biases

………..

inputWeights: {2x1 cell} containing 1 input weight

layerWeights: {2x2 cell} containing 1 layer weight

functions:

adaptFcn: 'trains'

initFcn: 'initlay'

performFcn: 'mse'

trainFcn: 'trainlm'

parameters:

adaptParam: .passes

initParam: (none)

performParam: (none)

trainParam: .epochs, .goal, .max_fail, .mem_reduc,

.min_grad, .mu, .mu_dec, .mu_inc,

.mu_max, .show, .time

weight and bias values:

IW: {2x1 cell} containing 1 input weight matrix

LW: {2x2 cell} containing 1 layer weight matrix

b: {2x1 cell} containing 2 bias vectors

other:

userdata: (user stuff)