Università di Milano-Bicocca Laurea Magistrale in Informatica

Slides:



Advertisements
Presentazioni simili
Artificial intelligence
Advertisements

Apprendimento Automatico Apprendimento supervisionato
Linguaggi algoritmici
Classe III A A.s – 2010 Programma di Informatica
Algoritmi e Programmazione
1 2. Introduzione alla probabilità Definizioni preliminari: Prova: è un esperimento il cui esito è aleatorio Spazio degli eventi elementari : è linsieme.
Reti Neurali Alessandro Mazzetti.
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Riconoscimento di forme
Attività cerebrale I neuroni si attivano in gruppi sotto lazione di uno stimolo Attività in gruppi ben delimitati con alta o bassa attività Il gruppo.
Pattern Recognition con Reti Neurali MLP
ALGORITMI DI OTTIMIZZAZIONE PER L'ADDESTRAMENTO DI RETI NEURALI
Reti Neurali: studi sull'intelligenza artificiale
Le reti neurali dagli esordi alle applicazioni
Apprendimento di funzioni algebriche
Apprendimento di funzioni algebriche
Computational Learning Theory and PAC learning
Apprendimento Automatico: Reti Neurali
Support Vector Machines
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Inversione differenziale della Cinematica
Promemoria sul concetto di Rete e sue Analogie
Reti neurali naturali ed artificiali
Apprendimento: Regola “Delta”
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Ricerca della Legge di Controllo
CORSO DI MODELLI DI SISTEMI BIOLOGICI LAUREA IN INGEGNERIA CLINICA E BIOMEDICA.
BIOINGEGNERIA S. Salinari Lezione 4.
TECNOLOGIE DEI SISTEMI DI CONTROLLO
BIOINGEGNERIA S. Salinari Lezione 7. RETI CON APPRENDIMENTO SUPERVISIONATO A DISTANZA Nello sviluppo delle reti neurali si è proceduto indebolendo via.
Apprendimento di movimenti della testa tramite Hidden Markov Model
Alternative al Paradigma Rappresentazionale
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Studente Claudia Puzzo
Reti Neurali Ricorrenti
Artificial intelligence
Il Linguaggio Macchina
Reti Neurali Mercoledì, 10 Novembre 2004 Giuseppe Manco References: Chapter 4, Mitchell Chapter 1-2,4, Haykin Chapter 1-4, Bishop Reti Neurali Lezione.
Strutture di controllo in C -- Flow Chart --
Intelligenza Artificiale
Apprendimento Automatico Apprendimento non supervisionato:
In contrapposizione con i metodi convenzionali (hard computing), le tecniche di soft computing non si basano su procedimenti esprimibili in forma chiusa.
Elementi di Informatica
APPLICAZIONI DI INTELLIGENZA ARTIFICIALE ALLA MEDICINA
RETI NEURALI ARTIFICIALI
PoliICR Riconoscimento dei Caratteri Daniele Gasperini – William Spinelli Riconoscimento dei Segnali: un approccio unitario prof. Sergio Brofferio.
INFORMATICA MATTEO CRISTANI.
Struttura di un neurone
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.
LE RETI NEURALI: MODELLI, ALGORITMI E APPLICAZIONI
Rete di Hopfield applicata al problema del TSP Federica Bazzano
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
RETI NEURALI - 2.
Intelligenza Artificiale
Intelligenza Artificiale Reti Neurali
Fondamenti di Informatica
APPROSSIMAZIONE DI FUNZIONI
FILTRI ANALOGICI E DIGITALI Modulo del Corso Integrato di: Progetto di Circuiti per il Trattamento dei Segnali.
Informatica e Informatica di Base
REALIZZAZIONE DI UN SISTEMA DI CLASSIFICAZIONE Prof. Roberto Tagliaferri Studente: Ragognetti Gianmarco Corso di Reti Neurali e Knowledge Discovery A.A.
Esercitazione N°5 Approssimazione di Funzioni. Esercizio 1 Costruzione di una rete RBF Il metodo più semplice per approssimare una funzione mediante reti.
Le reti neurali Simona Balbi. Cosa sono le reti neurali Una rete neurale artificiale (A)NN è un paradigma di elaborazione dell’informazione ispirato al.
Self-Organizing Map (SOM Kohonen, 1981) è una tecnica di visualizzazione dei dati multidimensionali SOM è una mappa mono- (bi-)dimensionale che rappresenta.
Esercitazione N°2 Data Fitting con Modelli Lineari.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Transcript della presentazione:

Università di Milano-Bicocca Laurea Magistrale in Informatica Corso di APPRENDIMENTO E APPROSSIMAZIONE Lezione 6 - Reti Neurali Artificiali Prof. Giancarlo Mauri

Outline Introduction Perceptrons Gradient descent learning rule Multi-layer networks Backpropagation learning algorithm

Perché le reti neurali LA POTENZA DEL CALCOLO ELETTRONICO… I calc. sono molto veloci e precisi nel fare i calcoli … Gli uomini sono relativamente lenti e imprecisi, ma riescono ad asimilare una scena o a capire un discorso molto più rapidamente. Il cervello riesce a risolvere problemi di visione e linguaggio in pochi decimi di secondo, mentre i programmi di A.I. più sofisticati per compiti analoghi non hanno la stessa generalità e sono più lenti. Consideriamo il processo di comprensione di una frase. Per capire il messaggio comunicato, il cervello non deve solo capire il significato delle singole parole, ma deve tener conto di fattori come il contesto, il tono di voce etc. Ci sono quindi numerosi fattori mutuamente interagenti e i calcolatori tradizionali non sono adeguati: – sono sequenziali – richiedono informazioni codificate in forma precisa; é difficile credere che il cervello dia un valore numerico all'inflessione della voce per il processo di comprensione di una frase. LA POTENZA DEL CALCOLO ELETTRONICO… calcoli numerici complessi (anni per un uomo) in frazioni di secondo memorizzazione grandi quantità di dati … E I SUOI LIMITI riconoscimento di persone, oggetti, suoni (anche in presenza di rumore) riconoscimento del parlato e comprensione del linguaggio naturale apprendimento, classificazione, generalizzazione visione e controllo del movimento adattamento a nuove situazioni soluzione di problemi complessi in modo esaustivo (ottimizzazione combinatoria)

Perché le reti neurali Perché il cervello risulta superiore al computer per certe categorie di problemi? I meccanismi operanti nel cervello possono essere imitati per produrre macchine più efficienti ?

Perché le reti neurali La differenza non sta nelle componenti: Cellule nervose: tempo risposta ordine msec Circuiti logici elettronici: tempo risposta ordine nsec ma nella "architettura" Quello che conta é lo schema di interconnessione: da qui il nome "connessionismo" Fino a 10 alla 15 connessioni sinaptiche: più delle stelle nella nostra galassia!!

Perché le reti neurali IL CERVELLO COME CALCOLATORE L'elaborazione è frutto di un processo altamente parallelo La potenza di calcolo deriva dalla cooperazione di molti processori semplici e fortemente interconnessi: 1010 - 1011 neuroni 105 connessioni/ neurone Le connessioni si modificano con l'apprendimento L'informazione non é localizzata, ma distribuita globalmente nella rete di processori L'intelligenza deriva dalla interazione tra i neuroni, non é prerogativa di un singolo neurone Ha una notevole tolleranza ai guasti Es. Riconoscimento volti in 0,1 sec

Un po' di storia INTERESSE PER IL NEURAL COMPUTING Le r. n. artificiali sono studiate da decenni nella speranza di ottenere prestazioni simili a quelle umane in diversi campi applicativi. L'interesse per le r. n. inizia negli anni '40, col lavoro di … Nei '60 Rosenblatt, Widrow e Hopf si occupano soprattutto di apprendimento nelle r.n. Ulteriori progressi sono limitati dalle carenze tecnologiche rispetto alla implementazione e simulazione di reti di grandi dimensioni. L'interesse ritorna negli anni '80 … INTERESSE PER IL NEURAL COMPUTING

Un po' di storia I PIONIERI (Anni '40) 1943 : McCulloch e Pitts "A Logical calculus of Ideas Immanent in Nervous Activity" Primo modello formale di funzionamento di una rete nervosa, descritta come un circuito i cui componenti sono porte logiche costruite a partire dalle funzioni booleane elementari: OR, AND, NOT. 1949 : Wiener introduce la visione del sistema nervoso come un sistema per l'elaborazione delle informazioni 1949 : D.O. Hebb "The organization of behavior" ipotizza che alla base del meccanismo di apprendimento vi sia una modifica dell'efficacia sinaptica tra coppie di neuroni, attraverso il rafforzamento di connessioni spesso attive. La regola di apprendimento di Hebb è ancora alla base di molti modelli

LA PRIMA ETA’ DELL’ORO ('50–'60) Un po' di storia LA PRIMA ETA’ DELL’ORO ('50–'60) Fine anni '40: von Neumann sviluppa la teoria degli automi "ramo seriale" che darà origine alle architetture "alla von Neumann" "ramo parallelo" che produrrà gli automi cellulari e le reti neuronali 1960: B. Widrow, M. Hoff "Adaptive switching circuits" Uno dei primi neurocomputer, con regola di apprendimento di Widrow–Hoff, capace di riconoscere semplici pattern La differenza tra l'uscita del circuito e l'uscita desiderata modifica per controreazione le resistenze nel circuito per ottenere uscite più corrette 1962: F. Rosenblatt "The principles of neurodynamics" Primo modello di neurone formale in grado di apprendere da esempi (percettrone) Esperimenti su computer

Un po' di storia GLI ANNI DELLA CRISI ('70) 1969: M. Minsky, S. Papert "Perceptrons: an introduction to computational geometry" Analisi approfondita dei percettroni. Dimostrazione della inadeguatezza a risolvere molti problemi. Il campo delle reti neurali fu abbandonato (anche per l'indisponibilità di tecnologie adeguate) salvo poche eccezioni (Stephen Grossberg, Teuvo Kohonen, James Anderson, Gail Carpenter) Sviluppo di calcolatori basati sulla architettura sequenziale di von Neuman Intelligenza artificiale

GLI ANNI DELLA RIPRESA ('80–'90) Un po' di storia GLI ANNI DELLA RIPRESA ('80–'90) Riesame della critica di Minsky e Papert, che risulta valida solo per reti molto semplici Introduzione dell'algoritmo di back propagation John Hopfield Analogie stimolanti con altri sistemi fisici D. Rumelhart, J. McClelland, G. Hinton, T. Sejnowski Descrizione dell'apprendimento delle reti in termini di meccanica statistica: Macchina di Boltzmann Sviluppo di algoritmi ed architetture ad alto parallelismo Sviluppo di nuove tecnologie: VLSI, Circuiti ottici

Quando usare le reti neurali Input multidimensionale a valori reali o discreti (e.g., dati grezzi da sensori Output vettore di valori Dati rumorosi Forma della funzione obiettivo sconosciuta Non è importante la leggibilità del risultato da parte dell’uomo

Campi applicativi Elaborazione di segnali Controllo Riconoscimento di schemi grafici Classificazione di immagini Medicina Riconoscimento e produzione del parlato Predizioni Finanziarie

Connessionismo e intelligenza artificiale Un aspetto piuttosto importante da discutere é il rapporto tra le l'area tradizionale dell'I.A. e questo nuovo settore. Essi rappresentano impostazioni radicalmente diverse. Tuttavia, credo che sia più produttivo pensare i rapporti tra le due aree in termini di integrazione piuttosto che di contrapposizione, dato che é evidente che ognuna delle due ha punti di forza e lacune Connessionismo Intelligenza artificiale Mente ≠ cervello Deduzione Simbolico Sequenziale Programmazione Istruzioni imperative Indirizzi espliciti No generalizzazione Mente  cervello Induzione Analogico / subsimbolico Parallelo Apprendimento Adattività Memoria associativa Generalizzazione

Il neurone biologico Stati possibili: Transizione di stato: eccitazione invia segnali ai neuroni connessi attraverso le sinapsi inibizione non invia segnali Transizione di stato: dipende dall'entità complessiva dei segnali eccitatori e inibitori ricevuti

Neuroni formali Gli elementi essenziali: Un esempio: Stato Abbiamo visto gli aspetti generali di funzionamento del neurone biologico. Passo successivo: formulare un modello logico che formalizzi gli aspetti salienti del modello biologico. Un neurone formale é un sistema attivo che modifica il proprio stato interno nel tempo sulla base di sollecitazionbi provenienti dall'esterno. Ha un certo numero di connessioni in ingresso, attraverso cui riceve segnali di attivazione o inibizione da altre unià Ha connessioni in uscita, attraverso cui … i segnali in arrivo determinano lo stato di attivazione Ad ogni connessione é associato un peso quantitativo, positivo o negativo, che fa da moltiplicatore per lo stato di attivazione dell'unità da cui proviene ESEMPIO: (valori numerici sulla rete del lucido) La somma pesata sviuene detta input netto. Lo stato di attivazione e l'uscita sono funzione dell'input netto. Gli elementi essenziali: Stato Funzione di transizione Funzione di uscita Modalità di transizione Un esempio: neurone binario a soglia (McCulloch, Pitts 1943) <n, C, W, > nome canali vettore soglia input pesi

Neuroni formali Stati: {0,1} o {-1,1} Funzione di transizione: s(t+1) = 1 sse wisi(t) ≥  Funzione di uscita: coincide con lo stato Modalità di transizione: deterministica  wn w2 w1 cn c2 c1 …

Funzioni di transizione Neuroni formali Possiamo comporre la funzione di transizione di stato e quella di output, considerando direttamente la funzione di trasferimento. Funzioni di transizione A gradino Output Input Lineare Output Input f(x) = ax + b

Neuroni formali Output Input Mista Sigmoide Output Input 1 1+ e f ( x ) =

Reti neurali artificiali 2 1 3 4 5

Reti neurali artificiali CARATTERISTICHE STRUTTURALI: Grande numero di unità Operazioni elementari Alto livello di interconnessione CARATTERISTICHE DINAMICHE : Cambiamento di stato in funzione dello stato dei neuroni collegati (input) Funzione di uscita per ogni unità Modifica dello schema di connessione per apprendimento FORMALMENTE: matrice dei pesi vettore delle soglie input netto a i al tempo t funzione di transizione

Reti neurali artificiali ELEMENTI CARATTERIZZANTI: tipo di unità topologia (direzione delle connessioni, numero di strati …) modalità di attivazione: seriale ciclica seriale probabilistica parallela mista modalità di addestramento

Reti neurali artificiali CLASSI PRINCIPALI: Percettrone (Rosenblatt) Adaline(Widrow e Hoff) Mappe di caratteristiche autoorganizzanti (Kohonen) Reti di Hopfield Reti basate sulla teoria della risonanza adattiva (Carpenter) Percettrone a più strati (Rumelhart e Williams) Macchina di Boltzmann (Hinton) Memoria associativa bidirezionale (Kosko) Rete a contropropagazione (Hecht–Nielsen)

Il percettrone Compito: riconoscimento di forme I percettroni sono reti semplificate, progettate per permettere lo studio di relazioni tra l'organizzazione di una rete nervosa, l'organizzazione del suo ambiente e le prestazioni "psicologiche" di cui è capace. I percettroni potrebbero realmente corrispondere a parti di reti e sistemi biologici più estesi; in questo caso, i risultati ottenuti sarebbero direttamente applicabili. Più verosimilmente, essi rappresentano una semplificazione estrema del sistema nervoso centrale, in cui alcune proprietà sono esagerate ed altre soppresse. In questo caso, perturbazioni e raffinamenti successivi del sistema possono dare una approssimazione migliore. Rosenblatt, 1962

{  Perceptron ni=0wixi Linear treshold unit (LTU) Nodi di input x0=1 Soglia w1 Nodo di output w0 w2 x2  y . ni=0wixi xn 1 if ni=0wixi >0 y(xi)= -1 otherwise { wn Pesi Funzione di transizione

Apprendimento nel percettrone I pesi vengono fissati a caso e poi modificati L'apprendimento è guidato da un insegnante La procedura Obiettivo è classificare vettori di input in due classi, A e B Si sottomette una sequenza infinita {xk} di vettori tale che ve ne siano un numero infinito sia di A che di B Per ogni xk la rete calcola la risposta yk Se la risposta è errata, si modificano i pesi, incrementando i pesi delle unità di input attive se si è risposto 0 anzichè 1, decrementandole nel caso duale: w' = w ± x

Apprendimento nel percettrone Teorema di convergenza: Comunque si scelgano i pesi iniziali, se le classi A e B sono discriminabili, la procedura di apprendimento termina dopo un numero finito di passi Teorema di Minsky e Papert: La classe delle forme discriminabili da un percettrone semplice è limitata alle forme linearmente separabili

Il teorema di convergenza del percettrone Input x = (x1, …, xd) Input esteso x = (x1, …, xd, 1) Pesi w = (w1, …, wd, -) Teorema Se l'insieme degli input estesi è partito in due classi linearmente separabili A, B allora é possibile trovare un vettore di pesi w tale che: wx ≥ 0 se xA wx < 0 se xB

Il teorema di convergenza del percettrone Costruzione 1. Si parte con w arbitrario 2. Si classifica un input x: risposta corretta: w' := w risposta errata: w' := w+x se xA w' := w–x se xB 3. Si prova un nuovo input

Il teorema di convergenza del percettrone Correttezza Sia xA e wx < 0 Poiché xx ≥ 0 vale w'x = (w+x)x = wx + xx > wx Quindi w' classifica x in modo "più corretto" rispetto a w Ma altri input possono essere classificati "meno correttamente"

Il teorema di convergenza del percettrone Si consideri A' = AB' B' = {-x | xB} Cerchiamo v tale che vx ≥ 0 xA' {xi}iN sequenza di addestramento xiA' occorrono infinite volte elementi sia di A che di B' {wi}iN sequenza dei pesi w0 = 0 scelta arbitraria wk+1 = wk se wkxk ≥ 0 wk + xk altrimenti

Il teorema di convergenza del percettrone {vi}iN sequenza dei vettori dei pesi modificati {ti}iN sottosequenza di training corrispondente w0 ≠ w1 = w2 = w3 ≠ w4 = w5 = w6 ≠ w7 ≠ w8 …….. v0 v1 v2 v3 t0 t1 t2 t3 vj tj < 0 j vj+1 = vj + tj = vj-1 + tj-1 + tj = …… = TESI: la sequenza {vi} è finita

Il teorema di convergenza del percettrone DIMOSTRAZIONE Sia w una qualsiasi soluzione (esiste per ipotesi)! x•w ≥ 0  x A' Si ponga  = min(x•w | xA') (* *) vj+1• w = • w ≥ j• (*) + (* *) (vj+1• w )2 ≤ |vj+1|2•|w|2 (Cauchy-Schwarz) |vj+1|2 ≥ (* * *)

Il teorema di convergenza del percettrone Si ponga M = max{|x|2 | xA'} |vj+1|2 = |vj+tj|2 = |vj|2+2vj•tj+|tj|2 ≤ |vj|2+|tj|2 (vj•tj< 0) |vj+1|2 ≤ |tj|2≤ j•M (*) ≤ |vj+1|2 ≤ j M = g(j) (* * *) + (*) f(j) = lineare in j quadratico in j

Il teorema di convergenza del percettrone f g j Dopo al massimo  modificazioni di peso, il percettrone classifica correttamente ogni input.

Il teorema di convergenza del percettrone  dipende dalla soluzione w  non è il reale numero di stadi

Un esempio OR ESCLUSIVO (addizione binaria) I punti a valore 1 non sono linearmente separabili da quelli a valore 0 Ipotesi: Esiste un neurone binario a soglia tale che xy = 1 se e solo se x + y ≥ x y xy a b l

Un esempio Essendo  simmetrica, vale anche xy = 1 sse y + x ≥ Sommando e dividendo per 2 si ottiene: xy = 1 sse tx + ty = t(x+y) ≥ ove t = (+ )/2 Posto ora x+y = s, abbiamo: xy = 1 sse ts –≥ 0 Dallo studio del polinomio di primo grado in s y = ts – si ottiene: Per s = 0, ts – < 0 (00 = 0) Per s = 1, ts – ≥ 0 (01 = 1 = 10) Per s = 2, ts – < 0 (11 =0) Questa é una contraddizione, poiché una retta non può salire e poi scendere

Reti neurali e apprendimento Si aumenta l'efficacia sinaptica delle connessioni tra neuroni contemporaneam. attivi più volte successiva Il "programma" di una rete neurale è rappresentato dai pesi sinaptici E' impossibile "programmare" direttamente reti complesse per svolgere un certo compito D.O. Hebb, 1949: Apprendimento = modifica pesi sinaptici Se due neuroni connessi sono per più volte di seguito contemporaneamente attivi, il peso della sinapsi aumenta La regola di Hebb è una regola non formalizzata. Inoltre i pesi vengono solo aumentati Una possibile formalizzazione (Sutton, 1981)

Perceptron Learning Rule wi := wi + wi wi = (t-y)xi t=c(x) is the target value y is the perceptron output  is a small constant (e.g. 0.1) called learning rate If the output is correct (t=y) the weights wi are not changed If the output is incorrect (t≠y) the weights wi are changed so that the output of the perceptron for the new weights is closer to t. The algorithm converges to the correct classification if the training data is linearly separable and  is sufficiently small

Perceptron Learning Rule y=1 (x,t)=([2,1],-1) y=sgn(0.45-0.6+0.3) =1 w=[0.25 –0.1 0.5] x2 = 0.2 x1 – 0.5 y=-1 w=[0.2 –0.2 –0.2] (x,t)=([-1,-1],1) y=sgn(0.25+0.1-0.5) =-1 (x,t)=([1,1],1) y=sgn(0.25-0.7+0.1) =-1 w=[0.2 0.2 0.2] w=[-0.2 –0.4 –0.2]

Gradient Descent Learning Rule Consider a linear unit without threshold and continuous output y (not just –1,1) y = w0 + w1x1 + … + wnxn Learning strategy: minimize a suitable function of the weights wi’s, for example the squared error E[w1,…,wn] = ½dD (td-yd)2 where D is the set of training examples Minimization technique: gradient descent (versus connection weights E w

Gradient Descent D={<(1,1),1>,<(-1,-1),1>, <(1,-1),-1>,<(-1,1),-1>} (w1,w2) Gradient: E[w]=[E/w0,… E/wn] w=- E[w] (w1+w1,w2 +w2) wi=- E/wi =/wi 1/2d(td-yd)2 = /wi 1/2d(td-i wi xi)2 = d(td- yd)(-xi)

Gradient Descent Initialize each wi to zero Gradient-Descent(training_examples, ) Each training example is a pair of the form <(x1,…xn),t> where (x1,…,xn) is the vector of input values, and t is the target output value,  is the learning rate (e.g. 0.1) Initialize each wi to some small random value Until the termination condition is met, Do Initialize each wi to zero For each <(x1,…xn),t> in training_examples Do Input the instance (x1,…,xn) to the linear unit and compute the output y For each linear unit weight wi Do wi = wi +  (t-y) xi wi := wi+wi

Incremental Gradient Descent Batch mode : gradient descent w = w - ED[w] over the entire data D ED[w]=1/2d(td-yd)2 Incremental mode: gradient descent w = w - Ed[w] over individual training examples d Ed[w]=1/2 (td-yd)2 Incremental Gradient Descent can approximate Batch Gradient Descent arbitrarily closely if  is small enough

Perceptron vs Gradient Descent Rule Perceptron learning rule guaranteed to succeed if Training examples are linearly separable Sufficiently small learning rate  Linear unit training rules using gradient descent Guaranteed to converge to hypothesis with minimum squared error Given sufficiently small learning rate  Even when training data contains noise Even when training data not separable by H

Multi-Layer (feedforward) Networks Strati intermedi tra input e output Connessioni da strati di livello basso a strati di livello alto; nessuna connessione all'interno di uno stesso strato Stato di un neurone: x Funzione di transizione: con P(x) funzione sigmoidale Per ogni configurazione x del primo strato (ingresso), la rete calcola una configurazione y dell'ultimo strato (uscita)

Multi-Layer Networks output layer … … … hidden layers input layer

Multi-Layer Networks Obiettivo è che, fissata una mappa f tra configurazioni di ingresso e di uscita, sulla base di una sequenza di stimoli xk, la rete cambi i pesi delle connessioni in modo che, dopo un numero finito s di passi di apprendimento, l'uscita yk coincida con f(xk) per ogni k>s, almeno approssimativamente. Criterio di modifica: minimizzare un "criterio di discrepanza" tra risposta della rete e risposta desiderata Teorema (Irie-Miyake, 1988): Un solo strato nascosto è sufficiente per permettere di calcolare qualsiasi funzione da un insieme finito a {0,1}

Example Exclusive or with one hidden layer .5 1.5 +1 –2

Sigmoid Unit x0=1 x1 w1 w0 net=i=0n wi xi y=(net)=1/(1+e-net) w2 x2 . (x) is the sigmoid function: 1/(1+e-x) wn d(x)/dx= (x) (1- (x)) xn

Training a two layers network Input x Weights w Output yj = iwijxi I pesi sono modificati proporzionalmente a questa derivata (regola delta): La convergenza a un minimo globale é garantita per funzioni di attivazione lineari senza unità nascoste e per dati consistenti

Multilayer networks of sigmoid units Neurons u1, u2, …, un: input units hidden units output units Real weights wij Activation states sj Net input to uj : Sigmoid transition function: i -n (t) e 1 sj(t+1) = +

Multilayer networks of sigmoid units Let x input, t expected output, y actual output Consider square norm Modify weights using: Since: we need to determine:

Backpropagation Algorithm Step 1 – Input Input neuron uj is set to state xj Step 2 – Propagation The state of hidden or output neurons uj is computed Step 3 – Comparison For each output neuron uj, given the expected output, compute: Step 4 – Error backpropagation For each hidden neuron uj, compute: Step 5 – Weights update

Backpropagation Algorithm Initialize each wi to some small random value Until the termination condition is met, Do For each training example <(x1,…xn), t> Do Input the instance (x1,…,xn) to the network and compute the network outputs yk For each output unit k k=yk(1-yk)(tk-yk) For each hidden unit h h=yh(1-yh) k wh,k k For each network weight w,j Do wi,j=wi,j+wi,j where wi,j=  j xi,j

Backpropagation wi,j(n)=  j xi,j +  wi,j (n-1) Gradient descent over entire network weight vector Easily generalized to arbitrary directed graphs Will find a local, not necessarily global error minimum -in practice often works well (can be invoked multiple times with different initial weights) Often include weight momentum term wi,j(n)=  j xi,j +  wi,j (n-1) Minimizes error training examples Will it generalize well to unseen instances (over-fitting)? Training can be slow typical 1000-10000 iterations (use Levenberg-Marquardt instead of gradient descent) Using network after training is fast

Backpropagation Algorithm Limiti mancanza di teoremi generali di convergenza può portare in minimi locali di E difficoltà per la scelta dei parametri scarsa capacità di generalizzazione Possibili modifiche migliorative Tasso di apprendimento adattivo:  = g(gradiente di E) Termine di momento Range degli stati da –1 a 1 Deviazioni dalla discesa più ripida Variazioni nell'architettura (numero di strati nascosti) Inserimento di connessioni all'indietro Il momento evita oscillazioni eccessive nella traiettoria dei pesi Il range –1, 1 permette variazioni di peso anche con sj=0 Si può sfuggire ai minimi locali con algor. tipo Metropolis, che non seguono la discesa più ripida. Bastano tre stati per calcolare tutte le funzioni discrete, ma a noi serve trovare il numero di strati più conveniente Le connessioni all'indietro consentono feedback, ma complicano i calcoli

Backpropagation Algorithm Il tasso di apprendimento grande, rischio di comportamento oscillatorio piccolo, apprendimento lento Strategie di identificazione della architettura ottimale Rete grande apprende facilmente, ma generalizza male A partire da una rete grande tolgo neuroni nascosti, se valuto che può continuare ad apprendere anche con meno neuroni Rete piccola apprende con difficoltà, ma generalizza bene A partire da una rete piccola aggiungo neuroni nascosti, se la discesa della funzione E é troppo lenta o bloccata A partire da una ipotesi iniziale di rete, aumento o diminuisco i nodi nascosti, secondo criteri misti

Backpropagation Algorithm Inserimento di connessioni all'indietro in presenza di connessioni con ritardo q l'input netto é: la funzione E é calcolata pesando l'errore nel tempo: nel calcolo delle derivate occorre aggiungere variabili ausiliarie Il ruolo dell'integrazione la rete può integrarsi con moduli tradizionali, sfruttando tutte le informazioni simboliche e le sinergie che vi possono essere

ALVINN Drives 70 mph on a public highway Camera image 30 outputs for steering 30x32 weights into one out of four hidden units 4 hidden units 30x32 pixels as inputs

8-3-8 Binary Encoder -Decoder 8 inputs 3 hidden 8 outputs Input Output 10000000  10000000 01000000  01000000 00100000  00100000 00010000  00010000 00001000  00001000 00000100  00000100 00000010  00000010 00000001  00000001 Hidden values .89 .04 .08 .01 .11 .88 .01 .97 .27 .99 .97 .71 .03 .05 .02 .22 .99 .99 .80 .01 .98 .60 .94 .01 Can this be learned ?

Convergence of Backprop Gradient descent to some local minimum Perhaps not global minimum Add momentum Stochastic gradient descent Train multiple nets with different initial weights Nature of convergence Initialize weights near zero Therefore, initial networks near-linear Increasingly non-linear functions possible as training progresses

Expressive Capabilities of ANN Boolean functions Every boolean function can be represented by network with single hidden layer But might require exponential (in number of inputs) hidden units Continuous functions Every bounded continuous function can be approximated with arbitrarily small error, by network with one hidden layer [Cybenko 1989, Hornik 1989] Any function can be approximated to arbitrary accuracy by a network with two hidden layers [Cybenko 1988]

Working with backpropagation Come evitare i minimi locali? Quanto è lungo il tempo di apprendimento? Come scegliere ? Nessuna risposta teorica, solo risultati di simulazione

Working with backpropagation Esempio: Funzione Logistica  = (t - o )  o  (1 - o ) unità output j j j j j  = o (1 - o )    w unità nascosta j j j k jk k Il ruolo della costante  Troppo grande: oscillazione Troppo piccolo: apprendimento lento

Il problema XOR Soluzione 1 y x3 x1 x2 6.3 -4.2 -4.2 -9.4 2.2 -6.4

Il problema XOR Logistic function  = 0.5 558 cicli Output ≤ 0.1 per 0 ≥ 0.9 per 1 ~ 0 ~ 0 ~ 1 ~ 0 ~ 0 ~ 1

Il problema XOR Soluzione 2 -.8 -4.5 5.3 2.0 -.1 -2.0 8.8 4.3 9.2 Minimo locale!!!! Output 0.5 per input 11 e 01 6.587 presentazioni, =0.25

Il problema XOR APPRENDIMENTO NEL PRECETTRONE GEN. INPUT OUTPUT INIZ. OUTPUT DOPO 250 CICLI (1 CICLO) ( = .1)

Il problema XOR -.4 -.9 -6.9 -3.3 -1.8 -2.0 -1.6 -1.4 -.8 -1.4 -2.3 -1.5 -.4 -1.7 -2.2 -2.9 -1.4 -.7 -.8 -.1 -2.4 -1.2 -1.1 Difficoltà di classificazione

Le reti di Hopfield n neuroni binari a soglia ui Resta da capire come e "cosa" computa una r.n. Come output, si assume il vettore degli stati di alcuni nodi particolari, rilevato allorché la rete si "ferma" 'se si ferma !!!) Un problema fondamentale é quindi quello della stabilizzazione della rete, intesa come … Vediamo adesso il caso particolare delle reti di Hopfield. Introdotte nel 1982, segnano la rinascita dell'interesse Illustra una memoria associativa che può essere descritta dalle reti. Mostra problemi di ottimizzazione che possono essere risolti n neuroni binari a soglia ui connessione completa con pesi simmetrici Tij evoluzione della rete verso uno stato stabile, a partire da uno stato iniziale assegnato aggiornamento sequenziale casuale con distribuzione di probabilità uniforme Teorema: La rete converge a uno stato stabile, che é minimo globale o locale della funzione energia:

Le reti di Hopfield Dimostrazione: Se E decresce o resta invariata ad ogni aggiornamento. Se si aggiorna ui a u'i si ha la variazione di energia: Se

Le reti di Hopfield N.B. Dipende crucialmente dalla ipotesi di simmetria. Altrimenti si avrebbe In altre parole, si cambia stato solo se ciò comporta una diminuzione di energia. Stati stabili sono gli stati di minima energia, in cui E non é abbassata da modifiche di nessuna delle variabili ui COMPUTAZIONE: Si bloccano i valori di alcune unità (input) Si lascia evolvere la rete fino all'equilibrio Si leggono e interpretano i valori di alcune unità (output) Il meccanismo probabilistico e l'esistenza di più minimi locali possono portare a risultati diversi in diverse esecuzioni

Macchina di Boltzmann La BM é un modello computazionale parallelo adatto per compiti di soddisfazione di vincoli con un gran numero di vincoli. Introdotta da Hinton, Ackley, Sejnowski, può essere vista come una generalizzazione probabilistica del modello det. descritto da Hopfield. Trova i minimi globali della funz. energia, convergendo a una distribuz. uniforme sui minimi gmlobali grazie alla applicazione della tecnica cosiddetta di a.s. Per questa caratteristicapuò essere usata per risolvere (approx) problemi di ottimizzazione combinatoria e per implementare algor. di apprendimento o riconoscimento di forme.a come "hw generale" per problemi di ottimizzazione globale. Più formalmente, Rete di neuroni binari che usa la tecnica dell'annealing simulato per modificare le connessioni interne Funzione obiettivo (bilineare): Matrice di connessione simmetrica No auto connessioni Aggiornamento neuroni casuale Funzione di attivazione sigmoidale casuale governata dalla seguente probabilità di transizione da s a s' ove s é contiguo a s' sse la loro distanza di Hamming é 1

Macchina di Boltzmann La pendenza della funzione diu probabilità é determinata da un parametro di temperatura. processostocastico che, all'equilibrio, concentra la probabilità nella regione critica M per V, in base alla legge di distribuzione ove é una costante di normalizzazione Procedure: MACCHINA DI BOLTZMANN External function: stopping_rule BEGIN prendi una configurazione iniziale s  {0,1} REPEAT calcola V = V(s) prendi uniformemente un i in {1,2,...,n} (scelta di un vettore prossimo) calcola V' = V(s) IF exp(–b(V–V')) > random [0,1) THEN flip si UNTIL stopping_rule é verificata END

Apprendimento nelle B.M. L'algor. di learning consiste di due fasi. La prima é una fase supervisionata i inviano i pattern al sistema e lo si lascia stabilizzare con i pesi correnti. La seconda é non supervisionata: non c'é output atteso, e il sistema evolve fino all'equilibrio. Si aggiornano i pesi con informazioni tratte da queste fasi: la prob. media p'i,j) che le unità i e j siano attive nella fase supervisionata e p'(i,j) che lo siano nella seconda fase. si continua finché la modifica media dei pesi é 0. Si impara una buona approssimazione della distribuzione di probabilità condizionale sull'insieme di coppie (input, output) 1. Fase positiva Blocco unità di input e di output Evoluzione verso l'equilibrio termico Incremento del peso tra unità contemporaneamente attive (Hebb) 2. Fase negativa Blocco unità di input Decremento del peso tra unità contemporaneamente attive Elimina il rischio di saturazione dei pesi sinaptici

Literature & Resources Textbook: ”Neural Networks for Pattern Recognition”, Bishop, C.M., 1996 Software: Neural Networks for Face Recognition http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/faces.html SNNS Stuttgart Neural Networks Simulator http://www-ra.informatik.uni-tuebingen.de/SNNS Neural Networks at your fingertips http://www.geocities.com/CapeCanaveral/1624/ http://www.stats.gla.ac.uk/~ernest/files/NeuralAppl.html