Esercitazione N°2 Data Fitting con Modelli Lineari.

Slides:



Advertisements
Presentazioni simili
Primi passi con Easy Reg 1.23: la proiezione ex post.
Advertisements

Corso di esperimentazione di fisica 1 Il metodo dei minimi quadrati
Stima di una funzione di domanda di moneta (2)
Apprendimento Automatico Apprendimento supervisionato
APRIRE PROGRAMMA DI POSTA OUTLOOK EXPRESS
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Pattern Recognition con Reti Neurali MLP
Esercitazione N°1 Il tool di Matlab.
Primi passi con Easy Reg 1
Metodi Quantitativi per Economia, Finanza e Management Lezione n°8
Terza Lezione: Capire l'informazione geografica I dati associati Selezionare elementi a partire dalla loro posizione e dal valore dei dati associati Personalizzare.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Seconda Lezione: Lavorare su una mappa Misurazioni Dati associati Salvare e riaprire un progetto Elementi decorativi.
Sesta lezione: Elaborare i dati geografici Tecniche di analisi Selezioni geografiche Sovrapposizioni Generazione di aree di rispetto.
Apprendimento di funzioni algebriche
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Metodi Quantitativi per Economia, Finanza e Management Lezione n° 9.
Metodi FEM per problemi ellittici
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
FEM -3 G. Puppo.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
BIOINGEGNERIA S. Salinari Lezione 4.
BIOINGEGNERIA S. Salinari Lezione 7. RETI CON APPRENDIMENTO SUPERVISIONATO A DISTANZA Nello sviluppo delle reti neurali si è proceduto indebolendo via.
Modelli simulativi per le Scienze Cognitive
Studente Claudia Puzzo
Filtri adattativi.
PATTERN RECOGNITION.
13 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica.
DBMS ( Database Management System)
INTRODUZIONE A MATLAB.
Manipolazione dei dati
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Inserimento dei dati Il contenuto di una cella può essere: –Un valore numerico –Una formula o funzione –Una stringa alfanumerica –Una data In questo caso.
Lavagna interattiva Smart Board Installazione Presentazione
SY-MAP tools Guida allutilizzo. SY-MAP tools I SY-MAP tools permettono di collegare informazioni memorizzate su un database e elementi grafici dei file.dgn.
Excel Il software Excel è un programma applicativo che consente di creare tabelle, gestire dati, elaborarli e rappresentarli sotto forma di grafici. Il.
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
Foglio elettronico Excel Livello avanzato
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Lavorare con le query Federica Scarrione 18/05/2009 fonte:
Perceptron. è la somma effettuata sul nodo i-esimo dello strato j n è il numero di nodi dello strato j-1 è l'output proveniente dal nodo k-esimo dello.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
ESPANSIONE Personalizzare l’interfaccia utente 2010.
APPROSSIMAZIONE DI FUNZIONI
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 4 - Le maschere.
SISTEMA GESTIONE TOMBINI
Esercitazione N°5 Approssimazione di Funzioni. Esercizio 1 Costruzione di una rete RBF Il metodo più semplice per approssimare una funzione mediante reti.
Regressione semplice e multipla in forma matriciale Metodo dei minimi quadrati Stima di beta Regressione semplice Regressione multipla con 2 predittori.
Impariamo ad usare Excel. Utilizzare l’interfaccia Avviare Excel e iniziare ad esplorare l'interfaccia per acquisire familiarità con esso… Non c'è modo.
Self-Organizing Map (SOM Kohonen, 1981) è una tecnica di visualizzazione dei dati multidimensionali SOM è una mappa mono- (bi-)dimensionale che rappresenta.
Planet HT – Genova - Elisa Delvai
RUMORE DI QUANTIZZAZIONE. Concetti principali L’analisi dei sistemi di controllo digitale presuppone il fatto che il dispositivo utilizzato abbia uno.
Dipartimento di Economia, Management e Istituzioni APPPLICAZIONI AZIENDALI MEDIANTE FOGLIO ELETTRONICO 4° modulo: Calcoli statistici, Regressione Prof.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
La funzione CASUALE. Gli istogrammi.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Transcript della presentazione:

Esercitazione N°2 Data Fitting con Modelli Lineari

Premessa: La regressione lineare rientra nel problema più generale dell’approssimazione di funzioni. Nel caso specifico, l’obiettivo è quello di individuare il legame funzionale lineare che rende minimo lo scarto da un insieme di punti campionato. L’ipotesi più importante che occorre formulare nella regressione è proprio il tipo di legame funzionale che si definisce. Il legame lineare, in genere, non consente di ottenere scarti molto bassi, ma il fatto di disporre di un modello lineare di un sistema è un sicuro vantaggio, quindi, ogni volta che risulta possibile, per effettuare una regressione, si preferisce utilizzare un legame lineare. L’obiettivo del calcolo è quello di definire i coefficienti della funzione lineare, che possono essere ricavati per via analitica, oppure con un algoritmo di ricerca, tipicamente basati sul gradiente. Questo secondo approccio è direttamente collegato all’apprendimento neurale.

Esercizio 1 – Regressione lineare Una rete neurale come quella in figura:  è un regressore lineare a tutti gli effetti. Infatti i coefficienti della funzione lineare sono dati dai pesi delle connessioni w i, mentre il termine costante è dato dal peso della connessione con il nodo di bias. Utilizziamo a questo scopo il tool neurale di Matlab. Avviamo NNTool. Tramite l’interfaccia grafica costruiamo una rete neurale formata da un solo neurone lineare, avente un solo ingresso. Di seguito è riportata la finestra per la definizione di tale rete. Ci poniamo l’obiettivo di costruire una rete per fare la regressione dei seguenti campioni: bias uscita ingresso wiwi IN: [ ] OUT: [ ] Con le seguenti istruzioni di Matlab: >>y=[ ]; >> plot(y,’*’) visualizziamo il grafico dei punti su cui vogliamo fare la regressione lineare.

Tornando alla finestra per la costruzione della rete neurale, con il tasto View possiamo visualizzare una rappresentazione grafica della rete. Con il comando Create creiamo una nuova rete nello spazio di lavoro di NNTool. L’opzione (design) nella definizione della rete, fa sì che i pesi della rete corrispondano alla soluzione analitica del problema. Per visualizzare le prestazioni della rete, calcoliamo le uscite in corrispondenza dei valori di IN. Allo scopo, dalla finestra principale, clicchiamo il pulsante New Data… e inseriamo una riga con i numeri interi tra 1 e 12. Nel campo Data Type specifichiamo che si tratta di ingressi. Con il pulsante Create creiamo questo vettore nello spazio di lavoro di NNTool. A questo punto, dalla finestra principale, selezioniamo la rete neurale e clicchiamo su Simulate…

Appare la seguente finestra: nella quale indichiamo che come input si deve utilizzare il vettore degli ingressi che abbiamo appena creato. Con il pulsante Simulate Network calcoliamo l’uscita in corrispondenza degli ingressi. L’esito di questo calcolo viene memorizzato nella variabile il cui nome si trova nel campo Outputs. Per visualizzare le uscite della rete esportiamo la variabile delle uscite, appena creata, nello spazio di lavoro di Matlab. Allo scopo clicchiamo sul pulsante Export… nella finestra principale di NNTool.

A questo punto possiamo visualizzare come la rete neurale che effettua la regressione lineare approssima la sequenza data dei campioni. Fissiamo la figura precedente, in modo da sovrapporre nella stessa immagine i campioni e la regressione operata dalla rete >> hold on >> plot(network1_outputs) La retta coincide con la soluzione analitica. Modificando i pesi delle connessioni, otteniamo rette che effettuano un’approssimazione meno efficiente della sequenza di punti. Nella finestra principale di NNTool selezioniamo la rete creata in precedenza e poi clicchiamo il pulsante View. Selezioniamo, quindi, la form Weigths. Tramite il menù a tendina accediamo ai vari gruppi di connessioni della rete, in questo caso solo due gruppi di una connessione ciascuno.

Imponiamo, successivamente, le seguenti combinazioni di pesi, effettuando, ogni volta, la simulazione della rete, e salvando il risultato in una nuova variabile: w = 1b = 1 w = -1b = 1 w = 0,5b = 2 w = 1b = -1 Ogni modifica, per essere operativa, richiede la pressione del tasto Set Weight. Nella finestra principale di NNTool appaiono, nel campo Outputs:, le uscite della rete in corrispondenza delle 4 diverse combinazioni dei pesi. Le esportiamo nello spazio di lavoro di Matlab per diagrammarle insieme al risultato precedente. Verifichiamo la presenza di tali variabili con il solito comando: >> whos Name Size Bytes Class network1_out1 1x12 96 double array network1_out2 1x12 96 double array network1_out3 1x12 96 double array network1_out4 1x12 96 double array network1_outputs 1x12 96 double array y 1x12 96 double array Grand total is 72 elements using 576 bytes Con il seguente risultato:

Se la figura precedente è ancora attiva, con i seguenti comandi possiamo diagrammare nella stessa figura le rette corrispondenti alle quattro nuove soluzioni. >> hold on >> plot(network1_out1,'r')% rosso >> plot(network1_out2,'g')% verde >> plot(network1_out3,'k')% nero >> plot(network1_out4,'m')% magenta Si può notare che la soluzione analitica (in blu) è quella che assicura la migliore approssimazione. Al di là della percezione visiva, abbiamo bisogno di un criterio analitico per affermare che la retta blu sia quella che effettua la migliore approssimazione. Questo criterio è l’errore quadratico medio, su cui si basa la determinazione analitica della retta che meglio si adatta ai punti (best fit). Calcoliamo questi errori nello spazio di lavoro di Matlab: >> [ mse(y-network1_outputs) mse(y-network1_out1) mse(y-network1_out2) mse(y-network1_out3) mse(y-network1_out4)] Il risultato è il seguente:

Esercizio 2 – Superficie di Prestazione Nell’esercizio precedente abbiamo visto come si può utilizzare una rete neurale per creare un regressore lineare. Abbiamo anche visto che la retta di regressione dipende dal peso delle connessioni, e che se si assegnano pesi uguali alla soluzione trovata analiticamente, si ottiene un valore minimo dell’errore quadratico medio, calcolato in corrispondenza dei campioni. In generale si parla di “Superficie di Prestazione” intendendo il legame funzionale tra i pesi delle connessioni e il criterio di errore, nel caso esaminato l’errore quadratico medio. Tale superficie, per la rete dell’Es.1, è una funzione del tipo: e = e(w, b) quindi suscettibile di una rappresentazione nello spazio R 3. Vogliamo descrivere questa superficie. A questo scopo dobbiamo far variare parametricamente i pesi delle connessioni e, per ciascuna combinazione, calcolare l’errore commesso rispetto ai campioni. Ricreiamo la rete utilizzata nell’esercizio precedente (v.) ed esportiamola nello spazio di lavoro di Matlab. Per poter agire più comodamente sulle connessioni, vi accediamo nell’ambiente di Matlab. Digitando il nome della rete: >> network1 visualizziamo i campi della rete. Per accedere al contenuto di un campo digitiamo il nome della rete e del campo, separati da un punto. Per esempio: >> network1.numInputs visualizza il numero di ingressi alla rete. Alcuni campi sono delle strutture di celle, riconoscibili dal fatto che nell’architettura le dimensioni sono indicate tra parentesi graffe

In particolare siamo interessati ai pesi delle connessioni. I campi relativi sono: >> network1.IW% pesi del primo strato >> network1.LW% pesi del secondo strato >> network1.b% valori di bias Trattandosi di variabili strutturate, per accedere al loro contenuto, indichiamo tra parentesi graffe la cella della quale vogliamo visualizzare o modificare il contenuto: >> network1.IW{1} ans = A parte l’uso delle parentesi graffe, anziché quelle tonde, le modalità di accesso alle celle di una struttura sono le stesse di quelle con le quali si accede agli elementi di una matrice. Attraverso un doppio ciclo iterativo, calcoliamo le uscite della rete in corrispondenza di una griglia di punti nel piano (w, b). Allo scopo inseriamo le istruzioni nel seguente script di Matlab: function e = suppres(net,in,tgt); i=0; w = 0:0.01:0.5; %peso della connessione w b = 1:0.01:1.5; %valore del bias for i = 1:length(w) net.IW{1} = w(i); for j = 1:length(b) net.b{1} = b(j); %errore quadratico medio: e(i,j)=mse(tgt-sim(net,in)); end mesh(w,b,e); %grafico dell'errore

Queste istruzioni devono essere riportate in un file di nome suppres.m, nella directory attuale di Matlab, che si avvia con il seguente comando dal prompt: e = suppres(net,in,tgt); La funzione che abbiamo creato richiede come parametri la rete neurale (net) per la quale calcolare la superficie di prestazione, gli ingressi (in) in corrispondenza dei quali calcolare le uscite della rete, i valori dei campioni (tgt) rispetto ai quali calcolare l’errore quadratico medio. La simulazione della rete si effettua con il comando: >> y = sim(net,in); Che richiede, come parametri, la rete neurale e gli ingressi. L’errore quadratico medio si calcola con la funzione: >> e = mse(y - tgt); dove y e tgt sono due vettori. Nell’esempio è stata esplorata un’area del piano (w, b) in cui già sapevamo essere compreso il punto di minimo. La funzione visualizza il seguente grafico: Premendo il pulsante per la rotazione 3D è possibile cambiare il punto di vista.

Esercizio 3 – Adattamento con l’algoritmo LMS Il calcolo della rete di cui agli esercizi precedenti può essere addestrata con un algoritmo di ricerca del minimo dell’errore per approssimazioni successive. Con NNTool creiamo una rete simile a quella degli esercizi precedenti: Notiamo che questa volta selezioniamo la versione (train) dello strato lineare, e questo comporta la necessità di fornire un diverso insieme di dati per la definizione. Tra gli altri notiamo in particolare il tasso di apprendimento. Premere il pulsante Create per costruire la rete. Ora occorre definire gli ingressi e le uscite desiderate della rete. Dalla finestra principale di NNTool premiamo il pulsante New Data…

Definiamo quindi i due vettori degli ingressi: ingressi = [ ] e delle uscite desiderate: uscdes = [ ] A questo punto possiamo procedere con l’addestramento. Dalla finestra principale di NNTool selezioniamo la rete e premiamo il pulsante Train… Negli appositi campi indichiamo i dati da utilizzare come ingressi e come target durante l’apprendimento. Gli altri parametri di apprendimento sono stati fissati prima. Con il pulsante Train Network avviamo l’apprendimento: Apparirà automaticamente il grafico dell’andamento dell’errore quadratico medio delle uscite della rete rispetto a uscdes. Dalla form Weights rileviamo che i pesi finali valgono: w = 0.142b = molto prossimi alla soluzione analitica. Lo studente valuti l’influenza del tasso di apprendimento sull’andamento dell’errore.

Esercizio 4 – Regressione Multipla Vediamo, infine, un esempio in cui i punti sono definiti in uno spazio di 2 dimensioni. Anziché utilizzare il tool grafico, ci serviamo dei comandi del prompt di Matlab. Assegnamo alla matrice xy e al vettore z, rispettivamente, gli ingressi e le uscite desiderate riportate a lato. Per creare lo strato lineare in modalità (train) usiamo il comando: >> net = newlin(PR,S,ID,LR) dove: PR = range degli ingressi S = numero di neuroni di uscita ID = ritardi nello strato di ingresso LR = tasso di apprendimento Nel caso in esame: >> net = newlin([0 1; 0 1], 1, [0], 0.001); ingressiuscdes 1) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )

Possiamo procedere con l’addestramento: >> net.trainParam.epochs = 4000; >> net.trainParam.goal = 0.001; >> init(net); >> net = train(net,xy,z); L’errore quadratico medio si stabilizza ad un valore di poco inferiore a 2*10 -3 La costruzione della rete corrispondente alla soluzione analitica (modalità design) si effettua con il seguente comando: >> net = newlind(P,T,Pi); dove: P = matrice degli ingressi T = uscite desiderate Pi = ritardi nello strato di ingresso Nel caso in esame: >> netd = newlind(xy,z); E’ interessante confrontare i pesi finali che si ottengono con le due istruzioni: wb net netd