Le reti neurali Reti neurali naturali ed artificiali Reti neurali naturali. Il neurone Tutti i sistemi nervosi animali sono costituiti da neuroni Fondamentalmente simili in tutti gli animali Nematode c. 600 Essere umano c. 10.000.000.000.000 (10 12) Forma del neurone Dendriti Soma Assone Da Occhio, Cervello, Visione, D.H. Hubel, Zanichelli, 1989 Il neurone - funzione Riceve input da altri neuroni sui dendriti Genera impulsi che vengono trasmessi lungo l’assone Molto lento rispetto a componenti elettronici Comportamento influenzato da ormoni/neurotrasmettitori Codifica dell’informazione da parte del neurone Non è pienamente capito 50 anni fa si pensava che il neurone fosse un dispositivo binario accesso/spento Ma oggi sappiamo che: Una parte dell’informazione trasmessa dal neurone dipende dalla frequenza degli impulsi Il neurone genera impulsi anche quando sta a riposo Sotto stimolo aumenta/riduce la frequenza degli impulsi Intervallo fra un impulso e il prossimo come portatore di informazione? Da, L’homme neuronale, J.P. Changeux, Fayard, 1983 Le sinapsi Spazio fra la terminazione di un assone (o segmenti non mielinizzati) e i dendriti di un altro neurone Trasmissione di informazione Unidirezionale Trasmissione elettrica Trasmissione con neurotrasmettitori Sinapsi eccitatorie Sinapsi inibitorie Nel cervello umano circa 1015 Da L. Squire & E.R. Kandel, Memory, Scientific American, 1999 Le reti neurali naturali Connettività estremamente ricca alcuni neuroni ricevono input da più di 10.000 altri neuroni Connessioni prevalentemente a breve distanza Alcune connessioni a lunga distanza Da, L’homme neuronale, J.P. Changeux, Fayard, 1983 Reti neurali e neuroni artificiali Il neurone artificiale Connessioni/pesi Funzione di soglia Output binario Rete neurale come calcolatore universale La macchina di Von Neumann non è l’unica possibile implementazione di un calcolatore universale S1 S2 I strato W(1,3) W(2,3) II strato S3 SE S1*W(1,3)+S2*W(2,3)>=Soglia ALLORA S3=1 ALTRIMENTI S3=0 Realizzazione della funzione AND con un neurone artificiale La funzione AND S1 S2 input SE S1=1 ALLORA E S2=1 W(1,3) W(2,3) S3=1 output ALTRIMENTI S3=0 S3 Soglia=1.5 W(1,3)=1 W(2,3)=1 Le reti neurali e l’apprendimento Problema di acquisizione della conoscenza Suggerimento di Von Neumann Un calcolatore efficace deve poter imparare come un bambino Regola di Hebb La stimolazione simultanea (o quasi) di due neuroni interconnessi provoca un rafforzamento della sinapsi Implementazione della Regola di Hebb Dati Stimoli esterni S1 e S2 Dw(1,2) = h*S1*S2; S1 w(t1) = w(t0) + Dw; h è il tasso di apprendimento S2 W = peso sinaptico Le 4 regole di Hebb Regola di Hebb “classica” I pesi sinaptici possono essere SOLO incrementati Interferenza, quando pattern di input hanno elementi in comune Regola Postsinaptica Incremento modulato dal neurone postsinaptico Regola Presinaptica Incremento modulato dal neurone presinaptico Regola della covarianza Dipende dallo stato di entrambi i neuroni D w(1,2) hS1* S 2 S1 1S 2; D w(1,2) hS1* S 2 S 2 1S1; Il percettrone Rosenblatt (1958) Ispirati a studi sul sistema di visione del cervello Hardwired feature detectors Ognuno vede solo una parte dell’input Analoghi a “Feature detectors” nel cervello Neurone di output Connessioni da ogni feature detector al neurone di output “Peso” variabile delle connessioni fra feature detectors e neurone di output Neurone di output feature detectors Retina artificiale Procedura di apprendimento del percettrone Procedura di apprendimento che consente di apprendere qualsiasi mapping input-output teoricamente acquisibile da parte di un percettrone Algoritmo Presentare input (in ordine casuale) Se l’output è corretto Se l’output è ON quando dovrebbe essere OFF Non fare nulla Ridurre forza connessioni a FD che sono ON Se l’output è OFF quando dovrebbe essere ON Aumentare forza connessioni a FD che sono ON Percettroni e intelligenza biologica Numero limitato di feature detector Una parte del cervello è geneticamente determinata Una parte è modificabile attraverso l’esperienza Feature detectors Connessioni fra feature detector e neurone di output Capacità di generalizzazione Robusto nei confronti del rumore “Graceful degradation” Apprendimento della funzione AND Funzione AND: Input Output 1 1 1 0 1 0 1 0 0 0 0 0 output pesi input Un software per reti neurali: NetTools 1) 2) 3) 4) Costruisco la rete neurale Costruisco gli esempi (Training Set) Addestro la rete Verifico l’apprendimento NetManager.exe TrsEditor.exe NetTrainer.exe NetManager.exe NetManager.exe TrsEditor.exe NetTrainer.exe Apprendimento della funzione Xor Funzione Xor: Input Output 1 1 0 0 1 1 1 0 1 0 0 0 output pesi input NetManager.exe TrsEditor.exe NetTrainer.exe Il periodo del silenzio: Minsky e Papert Analisi del percettrone di Rosenblatt Il percettrone hai dei limiti computazionali NON può risolvere il problema della parità NON può risolvere il problema dello Xor Lo Xor è una funzione LINEARMENTE NON SEPARABILE La separabilità lineare S1 w1 S 2 w2 soglia 0 AND 0,1 1,1 AND, OR, NOT sono funzioni linearmente separabili 0,0 0,1 0,0 Xor 1,0 1,1 1,0 Nella funzione Xor non è possibile separare con una retta i pattern che richiedono la stessa risposta dagli altri Critica alla critica Molti dei problemi che non possono essere risolti da un Perceptrone XOR Parity Sono molto difficili anche per gli esseri umani e gli animali Gli stessi punti di debolezza del percettrone sono un indizio che il cervello potrebbe funzionare in modo analogo Il cervello come sistema di pattern matching con limitata capacità di calcolo I perceptroni possono comunque essere utilizzate per la creazione di modelli complessi Come superare il problema? Percettroni multistrato: problema dell’apprendimento (non esisteva nessun algoritmo) output hidden PDP: Algoritmo di ERROR BACKPROPAGATION (Rumelhart e McClelland, 1986) input La Back-Propagation Algoritmo simile alla regola Delta Stessa modalità di apprendimento (supervisionato) Si propaga il segnale di errore all’indietro: Calcolo dell’errore sull’output Aggiornamento dei pesi tra output e hidden Calcolo dell’errore sulle hidden Aggiornamento dei pesi tra le hidden e l’input Relazione tra la variazione dell’errore ed il cambiamento dei pesi (importanza della funzione di attivazione) Discesa del Gradiente