Funzione di risposta di una RNA - Parte 2

Похожие документы
Generazione del campione secondo un predefinito meccanismo generatore dei dati (DGP) Stima dei parametri del modello

Regressione non lineare con un modello neurale feedforward

Backpropagation in MATLAB

Esempio di prova di laboratorio

Intelligenza Artificiale. Soft Computing: Reti Neurali Generalità

Reti Neurali

Esempi di applicazioni di reti neurali

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale

Sommario. 1 Specifiche della soluzione. Davide Anastasia, Nicola Cogotti. 27 dicembre 2005

Mini-Corso di Informatica

Neural Network Toolbox

Reti Neurali. Corso di AA, anno 2016/17, Padova. Fabio Aiolli. 2 Novembre Fabio Aiolli Reti Neurali 2 Novembre / 14. unipd_logo.

Generazione di Numeri Casuali- Parte 2

INTRODUZIONE AI SISTEMI DI CLASSIFICAZIONE

Apprendimento automatico e Reti Neurali. Francesco Sambo tel

Pro e contro delle RNA

Reti Neurali in Generale

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

2.2 Alberi di supporto di costo ottimo

Routing IP. IP routing

7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi

Esercizio 1. Esercizio 2

Prerequisiti didattici

Corso di Matematica per la Chimica

Otacon22 HgComo. Reti neurali artificiali

0Tecniche di Controllo e Diagnosi Progetti proposti per le Esercitazioni

Laboratorio di Python

Prove d esame Esercizi con Matlab

Matlab. Istruzioni condizionali, cicli for e cicli while.

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

STIMA DEL COEFFICIENTE DI RIFLESSIONE ONDOSA MEDIANTE MODELLAZIONE ALLE RETI NEURALI

Dal percettrone di Rosenblatt alle Reti Convoluzionali

Capitolo 1 Esercitazioni condotte in aula con Star-CCM+

Le reti neurali artificiali. Giacomo Trudu aka Wicker25

DoE Seminary APPLICAZIONE DoE AVL CAMEO. Daniele Bistolfi

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Lezione introduttiva su reti neurali e SVM Veronica Piccialli. Corso di Ottimizzazione a.a (seconda parte)

Markov Chains and Markov Chain Monte Carlo (MCMC)

MINIMIZZAZIONE DEI COSTI

Artificial Neural Network(ANN)

Statistica descrittiva e statistica inferenziale

Riconoscimento e recupero dell informazione per bioinformatica. Clustering: validazione. Manuele Bicego

Programmazione dinamica

RETI NEURALI (II PARTE)

Lezioni di Microeconomia

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

ITALIANO.

Intelligenza Artificiale Complementi ed Esercizi

Ingegneria di Manutenzione II. Intelligence diagnostica

Reti neurali e loro applicazioni

Sistemi vibranti ad 1 gdl

L ALGORITMO DEL SIMPLESSO REVISIONATO

Riconoscimento di cifre manoscritte tramite una rete neurale

FREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++

Il Toolbox di ottimizzazione di Matlab. Mauro Gaggero

STAMPAGGIO PER COMPRESSIONE o COMPRESSION MOLDING

1. CARATTERISTICHE: Modi di funzionamento (motori 1,8 ) Temperatura di funzionamento da 5 C a 45 C Grado di protezione IP 20 2.

Analisi dei segnali nel dominio del tempo

Preprocessamento di immagini per la classificazione in GRASS

Analisi del Rischio Rapina

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Corso di laurea in Informatica. Regolatori. Marta Capiluppi Dipartimento di Informatica Università di Verona

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

LA TEORIA DELL OFFERTA. Tecnologia e costi di produzione

3 Bacini di attrazione

Progettazione di un Sistema di Machine Learning

Cercare il percorso minimo Ant Colony Optimization

Crittografia a chiave pubblica

Function Block Diagram

Introduzione al MATLAB c Parte 2

Algoritmi e strutture di dati 2

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

La vendita e la gestione della rete di vendita CAP 9

Транскрипт:

Reti Neurali Artificiali per lo studio del mercato Università degli studi di Brescia - Dipartimento di metodi quantitativi Marco Sandri (sandri.marco@gmail.com) Funzione di risposta di una RNA - Parte 2 Obiettivi: (1) Realizzare una rete neurale artificiale (RNA) facendo uso del toolboox Neural Networks; si prende prima di tutto in considerazione il comando newff (riga 27) che serve a creare in modo rapido e agevole un oggetto rete feedforward di Matlab (net, una struttura di Matlab) che potrà poi essere utilizzato per vari scopi; successivamente (righe 29-35) si vede come è possibile accedere alle proprietà dell oggetto net per impostare in modo casuale i pesi delle connessioni; da ultimo, il comando sim (riga 38) permette di ottenere i valori dell output (o risposta) della rete in funzione dei diversi valori degli input. (2) Mostrare come cambia la funzione di risposta della RNA al variare di: - numero di neuroni nello strato nascosto; questo parametro (che determina la complessità delle rete) nello script viene chiamato Nhid (riga 5); - intensità dei pesi delle connessioni; questo parametro nello script viene chiamato amp_pesi (riga 17); Variando i parametri Nhid e amp_pesi si osservano alcuni fatti molto importanti: - all aumentare del numero di neuroni nello strato nascosto la risposta della rete si fa sempre più irregolare, frastagliata, complessa, in grado quindi di rappresentare comportamenti sempre meno lisci (smooth); - indipendentemente dalla complessità dalla rete, l intensità delle connessioni può determinare comportamenti più o meno lisci della RNA: intensità dei pesi molto basse (e quindi connessioni molto deboli o addirittura disattivate) portano ad avere reti con funzioni di risposta molto lisce, molto regolari. Man mano che i pesi aumentano e quindi man mano che le connessioni si fanno più intense, la risposta della rete diventa sempre più irregolare, sempre liscia. (3) Le considerazioni del punto (2) fanno luce su una importante idea volta a controllare il fenomeno dell overfitting, idea che tratteremo più avanti parlando della cosiddetta regularization: premesso che una RNA con una funzione di risposta molto liscia rischia di entrare in overfitting molto meno di una RNA con una funzione di risposta molto irregolare, un metodo per controllare l overfitting sarà quello di controllare non solo il numero di neuroni nello strato nascosto ma anche l intensità dei pesi delle connessioni. In fase di stima di una RNA vedremo che per evitare l overfitting, si andrà ad introdurre una penalità per le RNA con pesi di elevata intensità, andando così a preferire quelle con connessioni debolmente attivate e con una più bassa attitudine a sovra-adattarsi ai dati. Attenzione! In questo esempio i pesi della rete non vengono ottimizzati ma impostati in modo del tutto casuale. Non stiamo cioè assolutamente stimando i pesi della rete sulla base di un criterio di ottimo (minimi quadrati). Lo scopo è qui soltanto di vedere come cambia la funzione di risposta della rete al variare del numero di neuroni nello strato nascosto e dell intensità delle connessioni. La stima dei parametri della RNA feedforward (cioè l apprendimento della rete) verrà esaminato più avanti.

Calcolo della funzione di risposta della rete close all; clear all; Ninp=2; Nhid=10; Nout=1; N=50; x1 = linspace(-2,2,n); x2 = x1; [X1,X2] = meshgrid(x1,x2); X = [ones(n^2,1) X1(:) X2(:)]; Imposta i parametri della rete: no. input, no. neuroni strato nascosto, no. output e no. osservazioni per ciascun input Genera i dati campionari pesi = repmat([-20 20],Ninp+1,1); net = newff(pesi,[nhid Nout],{'logsig','purelin'}); net.iw{1} = 6*randn(Nhid,Ninp+1); net.lw{2,1} = 10*randn(Nout,Nhid); Imposta l architettura e i pesi della rete y = sim(net, X'); Y = reshape(y,n,n); surf(x1,x2,y); Calcola l output della rete e traccia il grafico della funzione di risposta output = f(input) 2

Le proprietà di un Neural Network Object si suddividono in 5 macro categorie: - architecture - subobject structures - functions - parameters - weight and bias values 1

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) net.numinputs Numero di strati di input della rete Da non confondere con il numero di neuroni nello strato di input ( net.inputs{1}.size ) che sono invece 3 nel nostro esempio! net.numlayers Numero di strati (1 nascosto + 1 output) net.biasconnect Strati che hanno bias (nascosto e output) net.inputconnect Quali strati hanno connessioni con l input net.layerconnect Quali strati hanno connessione con altri layer 2

Subobject Structures: inputs: {1x1 cell} of inputs layers: {2x1 cell} of layers outputs: {1x2 cell}... targets: {1x2 cell}... biases: {2x1 cell}... inputweights: {2x1 cell}... layerweights: {2x2 cell}... net.inputs{1} Parametri strato di input.range.size.userdata net.layers{1} Parametri strato nascosto.dimensions.distancefcn.distances.initfcn.netinputfcn.transferfcn.userdata net.layers{1}.netinputfcn φ 11 (x i,ω 11 ) netprod netsum net.layers{1}.transferfcn logsig tansig satlin hardlim etc net.layers{1}.initfcn Funzione di inizializzazione dei pesi: initnw Nguyen-Widrow init. function initbw By-weight-and-bias init. function 3

Functions: net.performfcn Funzione di errore: mae, mse, msereg, sse net.trainfcn Algoritmo usato per minimizzare la funzione d errore e quindi stimare i pesi della rete adaptfcn: 'trains' initfcn: 'initlay' performfcn: 'mse' trainfcn: 'trainlm' 4

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 net.trainparam Arresto dell algoritmo di ottimizzazione: - dopo un tempo pari a.time - dopo un numero di iterazioni.epochs - quando l errore è sceso al di sotto di.goal - quando il gradiente è sceso sotto.min_grad - quando l errore sul set di validazione è aumentato più di.max_fail volte dall ultima volta che è diminuito (questo ovviamente quando si usa la cross-validation) net.trainparam.show Mostra il grafico dell andamento dell errore in-sample ogni.show iterazioni 5

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 net.iw Matrice dei pesi Ω 1 che collegano gli input al primo strato nascosto net.lw{2,1} Matrice dei pesi Ω 2 che collegano il primo strato nascosto al secondo (strato di output) net.b{1} Vettore dei bias (pesi degli input a valore 1) dello strato nascosto net.b{2} Vettore del bias dello strato di output 6