Sei sulla pagina 1di 20

INTRODUZIONE (DAL LIBRO) SULLE IA:

Molti compiti che a noi umani appaiono banali per un computer non sono assolutamente tali e non
esistono tecnologie tali da riuscire ad avere una prestazione lontanamente simile alla nostra. I limiti di
queste tecnologie risiedono soprattutto nella loro struttura: computer basati sul modello di Von
Newmann con processore, harddisk e ram. Questi computer hanno limiti fisici anche legati al software
supportato che permette una serie di operazioni sui dati posseduti.
Il computer, nonostante spesso la sua struttura sia seriale, ci permette di sviluppare e testare i modelli di
IA; in questo caso non modifichiamo il modello al fine di adattarlo alla macchina su cui lo eseguiamo
ma facciamo il processo opposto. Per sviluppare una macchina che esegua processi in parallelo possiamo
collegare una serie di hardware oppure utilizzare processori che lavorano in parallelo (es. GPU).
Il modello informatico per spiegare il funzionamento cerebrale ha avuto anche il pregio di basarsi su
leggi matematiche che ne permettono quindi una descrizione univoca. Il modello informatico è utile in
problemi che possiedono una soluzione analitica, mentre si è rivelato poco utile quando i problemi sono
più vicini a quelli della vita quotidiana, dove una descrizione esplicita del problema è più complessa. Nel
cervello si ha una presenza di neuroni dell'ordine di 10^11 e ciascuno di essi comunica con 10^4
neuroni. Nel cervello inoltre non si hanno zone specifiche che abbiano il solo compito, ad esempio, di
immagazzinamento ma ogni zona comunica con quelle vicine e con alcune di quelle più lontane e il
segnale viene propagato producendo anche una discreta quantità di rumore.

Si può quindi dire che le differenze principali che distinguono i sistemi informatici e biologici sono:

1. Nei sistemi nervosi l'elaborazione è in parallelo, in quelli informatici è seriale (i neuroni sono
abbastanza lenti ma nel cervello l'attività parallela è talmente massiccia che spiega la sua
rapidità)
2. Nei sistemi nervosi l'elaborazione è distribuita su un grande numero di neuroni (più neuroni
stesso compito)
3. Nei sistemi informatici ogni dato in memoria possiede un indirizzo dove è localizzato; negli
esseri umani la memoria è divisa per contenuto
4. I sistemi nervosi non hanno bisogno di un programma per funzionare ma apprendono in modo
autonomo attraverso l'esperienza o un insegnante esterno.

Le reti dei neuroni artificiali sono dei sistemi di elaborazione delle informazione il cui funzionamento
trae ispirazione dai sistemi nervosi biologici. Una rete neurale artificiale è costituita da una serie di unità
di elaborazione semplici che sono variamente connesse tra di loro. Queste unità vengono chiamate
neuroni (perchè li imitano) e possono essere di input, output o hidden.
Il segnale di risposta emesso da un nodo n è uguale alla somma dei prodotti dei segnali d'ingresso per i
rispettivi pesi sinaptici, meno il valore di soglia del nodo. Ogni neurone risponde in modo locale, ovvero
risponde solo alle stimolazioni che lo colpiscono direttamente. Gran parte dell'elaborazione di una rete
dipende dalla sua architettura. L'apprendimento nelle reti artificali dipende dalla modifica dei valori
delle connessioni sinaptiche in base a delle regole di apprendimento.

Ci sono alcune regole generali che sono condivise dai diversi modelli e campi di ricerca nell'ambito delle
intelligenze artificiali e permettono di descrivere la struttura di una rete neurale:

1. Robustezza: una rete neurale è robusta quando continua a produrre la risposta corretta anche in
presenza di rumore o nonostante vengano eliminate alcune connessioni. All'aumentare del
rumore/diminuire delle connessioni si ha un decadimento graduale della prestazione. Questo
aspetto distingue questi sistemi paralleli dai sistemi seriali in cui la perdita di un passaggio
determina l'impossibilità di portare a termine il compito.
2. Flessibilità: un modello ha la capacità di apprendere attraverso l'esperienza; ciò però ha dei
limiti: quando si realizza una IA bisogna considerare le finalità del modello al fine di renderlo il
più utile possibile e flessibile alle diverse soluzioni.
3. Generalizzazione: una rete neurale è tanto più generalizzabile tanto più è in grado di rispondere
in modo corretto ad esempi nuovi. Il modello estrae delle invarianti dagli esempi presentati e li
cerca anche nei pattern mai presentati prima. Perchè ciò avvenga è necessario che l'esempio
contenga sufficienti informazioni affinchè la funzione possa operare e che durante
l'addestramento della funzione siano stati presentati un gran numero di esempi rappresentativi del
campione. Bisogna distinguere tra capacità di interpolazione e di estrapolazione (difficile se non
impossibile).
4. Recupero in base al contenuto: il recupero in base al contenuto permette di recuperare dati
partendo da indizi incompleti, simili o rumorosi (a differenza dei sistemi sequenziali in cui la
perdita di un dato non permette di recuperare l'informazione).

INTELLIGENZA ARTIFICIALE: INTRODUZIONE

Storia delle Intelligenze Artificiali:

Un primo modello di funzionamento di un neurone artificiale è stato sviluppato da McCulloch e Pitts


1943 con neuroni non in grado di apprendere e con attivazione binaria. Nonostante i forti limiti di questo
modello, quasi tutti gli sviluppi attuali si basano su questa struttura.
Hebb nel 1949 propone la sua teoria sull'apprendimento neuronale biologico e questo concetto viene poi
esteso anche all'ambito informatico.
Tra gli anni 50 e 60 Rosenblatt teorizzò il concetto di percettrone e inventò un algoritmo di
apprendimento molto più potente di quello di Hebb. Il percettrone riceveva in input uno stimolo che lo
portava a modificare le sue connessioni in base alla correttezza o meno dell'output emesso. Rosenblatt
costruì anche il primo neurocomputer per il riconoscimento di caratteri.
In seguito Widrow e Hoff 1960 svilupparono un algoritmo che era in grado di generalizzare
maggiormente l'apprendimento su nuovi pattern; questo algoritmo (adaline, ALN) fu chiamato regola
delta e si basava sul modificare i pesi sinaptici in base alla discrepanza tra il valore in output e il valore
desiderato.
Negli anni settanta una pubblicazione di Minsky e Papert smorzò l'entusiasmo rispetto alle IA in quanto
dimostrò come le IA non fossero in grado di risolvere problemi non linearmente separabili (ad es.
XOR).
Durante il periodo del silenzio (o della "disillusione" '70-'80) ci fu una notevole diminuzione delle
pubblicazioni in questo ambito, anche se qualcuno continuò dei progetti che furono apprezzati solo
successivamente. In Europa nel frattempo gli studi continuarono sentendo meno l'influenza negativa
della pubblicazione statunitense.
Negli anni 80 gli studi sull'IA ripresero in tutto il mondo. Nel 1986 si diffuse il modello della
backpropagation che rispondeva alla critica di Minsky e Papert in quanto partendo dall'algoritmo di
Rosenblatt e basandosi sulla regola delta permetteva di modificare in modo ricorsivo i valori di una rete
neurale con qualsiasi numero di strati e di neuroni. Il backpropagation è tuttora il modello più utilizzato.
Negli anni 90 si arriva ad una fase di equilibrio tra aspettative e possibilità reali della disciplina che
inizia a considerare sempre di più il fattore tempo nella generazione dei modelli.

Le intelligenze artificiali sono state utilizzate per: compressione di dati (trovare nuovi modi per
rappresentare grandi quantità di dati in modo compatto e resistenti al rumore), eliminazione del rumore
(una rete Adaptive Linear Neuron può riconoscere il segnale dal rumore del canale di trasmissione),
riconoscimento di segnali sonar (segnali sonar in mare sono molto coperti dal rumore causato da
propagazione onde nell'acqua, salinità, profondità ecc... l'IA riesce a distinguere tra grandezze e forme di
oggetti, presenza sommerigibili...), macchina da scrivere fonetica (trasformare direttamente il parlato in
scritto), riconoscimento di caratteri/immagini.
L'IA ha avuto un'ampia applicazione nei sistemi di controllo, sistemi che hanno il compito di controllare
un insieme di funzioni complesse come robot, bracci meccanici o guida dei veicoli. Un altro campo in
cui sono molto sfruttate le IA è il campo finanziario. Le IA sono molto utili per evidenziare delle
relazioni tra i dati che non sono immediatamente visibili; non è però uno strumento magico: sono sempre
dipendenti dai dati quindi talvolta, o la relazione tra i dati non sussiste, oppure i dati proposti non sono
sufficienti/corretti e non permettono di evidenziare una particolare relazione.
Il paradigma delle neuroscienze computazionali è stato molto utile per fornire modelli di spiegazione del
funzionamento cerebrale.
Nel campo della psicologia il paradigma connessionista si integra bene con quello cognitivista in quanto
offre una panoramica microscopica su processi che il paradigma cognitivista analizza a livello
macroscopico.

Approcci alla generazione di Intelligenze Artificiali:

Nella generazione di Intelligenze Artificiali è necessario porsi una domanda filosofica: è possibile
costruire macchine intelligenti? Secondo Turing, uno dei pionieri di questa disciplina, l'importante non
è la modalità con cui la macchina manifesta un comportamento intelligente ma è importante che mostri
questo tipo di comportamento. Nell'essere umano il comportamento intelligente deriva dal
ragionamento; nell'IA non è necessario che avvenga un processo simile a quello umano, l'importante è
che l'output sia corretto.

Due approcci alla disciplina:

➢ Approccio Logico-Simbolico (Turin 1950, Newell & Simon 1967)


➢ Approccio Neurale (McCulloch & Pitts 1943, Hebb 1949)

➢ L'IA Simbolica: l'approccio simbolico all'AI parte dall'idea che pensare consista nel manipolare,
attraverso regole, delle strutture simboliche di rappresentazione. Il sistema simbolico avrebbe,
secondo Newell e Simon, i necessari e sufficienti significati per generali azioni intelligenti.
Secondo questa visione il processo simbolico sarebbe indipendente dal medium, dal subsrato
fisico, che determina l'esecuzione del processo. Non avrebbe alcuna differenza quindi se ad
eseguire una determinata elaborazione fosse un tessuto neurale o un hardware elettronico.

Su cosa si basa un'IA simbolica? Su una struttura fatta di rappresentazioni simboliche


strutturate (delle ontologie, insiemi di concetti, assiomi e relazioni che descrivono un dominio
di interesse) e su un sistema di regole. Le principali limitazioni di questo approccio sono: la
conoscenza sul dominio deve essere trasmessa da un esperto umano per essere codificata in
modo esplicito; difficoltà a trasmettere conoscenze empiriche (informali o implicite); il sistema
elabora in modo deterministico. Attualmente questo approccio è stato esteso permettendo un
approccio probabilistico e la possibilità di apprendimento di dati.

➢ L'IA Neurale: l'approccio dell'IA neurale (detta anche connessionismo) è basato sulla visione del
pensiero come attività di neuroni che formano complesse reti neurali. Negli uomini queste
connesioni neurali si trovano nel cervello, nel computer queste possono essere solamente
replicate.

Questo paradigma di elaborazione dell'info è alteranitivo a quello della computazione digitale


(0/1) e si basa su un'architettura ad elaborazione distribuita e parallela simile a quella presente nei
tessuti neurali umani. Questo meccanismo di computazione consiste in semplici unità di
elaborazione con un alto grado di interconnessione (con connessioni adattive) che comunicano
attraverso messaggi scalari (analogici).
Le proprietà principali di questo sistema sono la possibilità di apprendimento dall'esperienza, la
mancata necessità di conoscenze esplicite e la possibilità di adattarsi a situazioni caotiche o
contraddittorie ("rumore").

Queste reti neurali possono apprendere compiti complessi inspirati dal funzionamento dei sistemi
biologici: lo scopo non è rappresentare tutta la sua complessità ma catturarne i sistemi base. Le
reti neurali in neuroscienze e psicologia sono utilizzate per riprodurre, attraverso delle
simulazioni, delle abilità cognitive e comportamentali umane. L'obiettivo non è riduzionista,
ovvero cercare di spiegare le funzioni psicologiche con la neurofisiologia, ma piuttosto di
“ricostruire queste funzioni come proprietà emergenti dei sistemi neurali".

FONDAMENTI MATEMATICI PT.1:

La modellazione computazionale trae vantaggio, e spesso si basa, dall'utilizzo di strumenti di ricera


precisi, sistematici e ben definiti. La conoscenza scientifica è stettamente legata all'utilizzo di un
linguaggio formale (matematico) con concetti definiti nel modo più esplicito e preciso possibile.
L'utilizzo di metodologie computazionali nell'indagine psicologica comporta dei forti limiti ma può
portare ad osservare aspetti non sviscerabili attraverso altre metodologie.

La matematica è uno strumento molto potente che si basa su alcune regole formali che le permettono di
essere: precisa, rigorosa, non ambigua, universale, quantitativa, astratta, dimostrabile e implementabile
in un calcolatore.

La teoria dei grafi è un formalismo matematico che viene utilizzato per descrivere reti di elementi che
interagiscono tra loro. E' utilizzato in svariati campi: biologia, chimica, ecologia, economia e,
ovviamente, neurofisiologia. Il cervello può essere analizzato come una struttura complessa costituita
dall'interazione tra nodi: può quindi essere studiato come un grafo.

Il cervello, analizzato come un grafo, può essere diviso in tre elementi fondamentali: nodi, archi e pesi.
– I nodi, o vertici o unità, definiscono le variabili da modellare
– Gli archi, o connessioni o spigoli, definiscono le interazioni tra nodi
– I pesi stabiliscono la forza delle interazioni tra nodi.

Nella teoria dei grafi si possono distinguere due tipi di grafi in base alla tipologia degli archi che la
caratterizzano. I grafi direzionati codificano la relazione "parentale" tra le variabili (questo concetto è
correlato a quello di causalità). I grafi non direzionati stabiliscono solo una correlazione tra le variabili
senza però determinare una struttura causale (non possiamo stabilire quale sia la causa e quale l'effetto).
Nb: una connessione non direzionata è uguale ad una connessione bidirezionale simmetrica, ovvero se
non si stabilisce una direzione essa viene considerata bidirezionale e il peso della connessione è lo stesso
in entrambi i sensi.
Se vogliamo specificare un'inferenza bidirezionale ma con pesi diversi allora bisogna ricorrere
necessariamente a due archi separati.
Con il termine topologia si identifica la mappa 2D delle connesioni di una rete. La topologia e la
direzionalità di un grafo definiscono l'architettura di una rete neurale.

La teoria della probabilità è un formalismo matematico potentissimo che ha una grandissima


importanza nella ricerca sull'intelligenza artificiale. Questa teoria permette di affrontare in maniera
efficace alcuni problemi che si pongono nella costruzione di sistemi di intelligenza artificiale; ad
esempio la teoria della probabilità permette di: sopperire alla mancanza di dati, risolvere i problemi
legati ad errori o ad approssimazioni, analizzare situazioni intrinsecamente stocastiche.

Elementi fondamentali della teoria della probabilità: variabile causale, probabilità condizionata (P(A|B)),
probabilità congiunta (P(A, B) = P (A|B) * P(B) = P(B|A) * P(A)), indipendenza statistica (P(A|B) =
P(A) * P(B)).
Una variabile casuale, aleatoria o stocastica, non è necessariamente impredicibile (totalmente random);
le probabilità possono modellarsi in distribuzioni differenti, come quella gaussiana o esponenziale.
Nella teoria della probabilità un approccio peculiare è quello della prospettiva Bayesiana; questa al
posto di stimare probabilità assolute, cerca di interpretare il valore di ciascuna variabile casuale come un
grado di credibilità. Attraverso un metodo inferienziale si ipotizza la probabilità del verificarsi di un
evento in base all'evidenza di quelli che si sono osservati fino ad ora.

Dall'unione tra la teoria dei grafi e quella della probabilità è nata l'idea dei modelli grafici
probabilistici. Questi modelli si basano su alcuni principi di base: possiamo usare grafi per
rappresentare distribuzioni di probabilità congiunte, ciascun nodo del grafo è una variabile casuale, la
topologia del grafo definisce indipendenze condizionali, la probabilità congiunta di tutte le variabili può
quindi essere fattorizzata sfruttando le interazioni locali tra le variabili (esempio slide 19).

FONDAMENTI MATEMATICI PT.2:

L'algebra lineare serve per descrivere e studiare spazi vettoriali e le loro trasformazioni lineari;
consente di rappresentare moltissimi concetti geometrici.

Concetti fondamentali sono quelli di: spazio vettoriale (insieme di valori chiamati vettori che possono
essere sommati tra di loro e moltiplicati per numeri reali, chiamati scalari) e matrice (insieme ordinato
di elementi, presentato in forma tabulare).

Altri concetti utili sono quelli di: iperpiano (sottospazio di dimensione inferiore di uno rispetto allo
spazio in cui è contenuto; in uno spazio 3D gli iperpiani sono 2D, in uno 2D sono le rette) e
trasformazione (mapping) lineare (funzione fra due spazi vettoriali che preserva le operazioni di
addizione tra vettori e moltiplicazione scalare; questa trasformazione può alterare la disposizione dei
punti sul piano ma non può alterarne la curvatura).

L'analisi matematica (calculus) permette di studiare come le funzioni cambiano nel tempo e nello spazio
(max, min, crescente, descrecente, limiti...). Elementi fondamentali dell'analisi matematica sono:
derivata di una funzione (pendenza della retta tangente alla curva in un punto (2D)) e gradiente
(generalizzazione del concetto di derivata a funzioni multivariate (3D)).

Concetto molto importante per l'IA è quello di massimo e minimo: questi sono punti stazionari dove la
curva raggiunge il valore massimo o minimo. In questi punti la derivata della funzione ha valore zero.
Sono chiamati massimi o minimi locali se esiste un punto più elevato o più basso da qualche parte nella
curva. La proprietà di questi punti per cui la derivata è zero è molto importante quando li si ricerca:
durante l'esecuzione della cosìddetta tecnica della discesa di gradiente si ricercano, su funzioni 2D o
3D, i valori per cui la funzione è massima o minima.

I modelli matematici (grafici probabilistici e operazioni algebriche) sono molto utili per studiare le reti
neurali. Le trasformazioni lineari sono facili e comode ma la realtà non è quasi mai descrivibile
attraverso questo tipo di funzioni. Per questo si utilizzano le più complesse funzioni non lineari; non
linearità significa maggiore potenza ma anche minore controllabilità.

Cos'è un algoritmo? Questo può essere definito come: "un procedimento, implementato attraverso una
sequenza ordinata e finita di passi (operazioni o istruzioni) elementari, che conduce a un ben determinato
risultato in un tempo finito".
L’idea fondamentale alla base degli algoritmi di apprendimento automatico (machine learning) è di fare
in modo che l’algoritmo stesso possa modificare la propria «struttura» con l’esperienza. Per esempio, se
l’output dell’algoritmo dipende da alcune variabili memorizzate, possiamo programmare l’algoritmo
affinché modifichi autonomamente tali variabili a seconda degli input che gli vengono mostrati.
Tipicamente la qualità dell'apprendimento dipende dal numero di dati disponibili. Le reti neurali sono
alla base del deep learning.
RETI NEURALI: PRINCIPI DI BASE

Una rete neurale biologica è costituita da una rete di neuroni che si influenzano attraverso connessioni
sinaptiche. Ogni neurone rileva delle condizioni e comunica attraverso la frequenza di scarica; le
informazioni possono essere elaborate da strati di rilevatori più complessi. Le interazioni tra neuroni
sono adattive e si modificano attraverso l'apprendimento. L'IA cerca di imitare questi principi per
sviluppare reti artificiali.

Un neurone formale (unità di elaborazione o nodo) è un modello matematico che cerca di catturare, e
imitare, gli aspetti funzionali fondamentali di un neurone. Quali sono questi aspetti?
1. i neuroni sono fortemente interconnessi
2. ogni connessione ha un peso che indica la forza della connessione e può essere o positivo o
negativo
3. l'input che un neurone riceve è dato dal prodotto tra il segnale proveniente da quel neurone e il
peso della connessione
4. l'input totale del neurone è la somma delle attivazioni che il neurone riceve dai neuroni vicini
5. lo stato di attivazione finale viene calcolato attraverso la funzione di attivazione o di output del
neurone
6. l'output del neurone viene inviato ai neuroni "a valle"

L'architettura della rete identifica:

– i gruppi o strati di diversi neuroni (topologia): unità che ricevono input direttamente
dall'ambiente sono dette strato di input; quelle che producono l'output finale della rete sono
dette strato di output; le unità intermedie sono dette unità nascoste (a differenze delle altre
dette visibili)
– il modo in cui i neuroni sono collegati tra di solo (schema di connettività): reti feed-foward con
connessioni unidirezionali solo da input ad output (bottom-up); reti ricorrenti con connessioni
bidirezionali (top-down e feedback); reti interamente ricorrenti con anche connessioni
intrastrato laterali.

Limiti delle reti artificiali: nel neurone artificiale manca un'organizzazione dei contatti sinaptici e una
differenziazione tra neuroni eccitatori e inibitori; nelle reti artificiali c'è un limite di connessioni (max
10^6 mentre le connessioni biologiche possono arrivare fino a 10^11), manca la stratificazione, le mappe
topofrafiche e la struttura colonnare.
Immaginiamo un sistema biologico o artificiale che riceve una serie di input sensoriali: x1, x2, x3,...
Ci sono tre tipi di apprendimento:
– Apprendimento supervisonato: viene fornito anche l'output deisderato y1, y2, ... e lo scopo è
fornire l'output corretto dato un nuovo input
– Apprendimento non supervisionato: lo scopo è costruire rappresentazioni dell'input
scoprendone le proprietà più importanti ed informative.
– Apprendimento per rinforzo: il sistema produce azioni che determinano feedback di rinforzo o
punizione. Lo scopo è quello di massimizzare il rinforzo.

Generalmente nell'apprendimento nelle reti neurali viene attribuito un valore iniziale casuale ai pesi
sinaptici (+ o – 0.1 oppure 0). Viene poi presentato ripetutamente un pattern di addestramento; se
l'apprendimento è supervisionato si mostra un input e il target (ovvero l'output desiderato), se invece è
non supervisionato si mostra solo l'input. L'apprendimento consiste nella modifica dei pesi, ovvero il
calcolo di delta w rispetto a w precedente; l'aggiornamento può avvenire dopo ogni pattern (online
learning) oppure dopo ogni epoca di apprendimento (batch learning). Per non stravolgere le
conoscenze precedentemente apprese viene utilizzata solo una frazione della modifica sinaptica che
viene calcolata tramite la costante  - learning rate (tasso di apprendimento).

APPRENDIMENTO SUPERVISIONATO:

In questo tipo di apprendimento è inizialmente necessario un intervento umano consistente; questo tipo
di apprendimento richiede infatti che alla IA vengano forniti dei dati "etichettati" in cui quindi è
esplicitato l'output desiderato in base all'input immesso (la risposta esatta è un vettore che contiene tutti i
valori esatti che le unità di output dovrebbero avere). Questo apprendimento è utilizzato per funzioni di
classificazione, approssimazione di funzioni e di predizione.

I principali algoritmi che si basano su questo tipo di apprendimento sono:

1. regole hebbiane per l'apprendimento associativo


2. percettrone
3. regola delta
4. error back-propagation

1. Uno degli algoritmi di apprendimento più semplici è quello basato sulla regola di Hebb: "se due
neuroni collegati tra loro sono contemporaneamente attivi, l'efficacia sinaptica della connessione
viene rinforzata". Se associamo un input x e un output y, la formula si può esprimere come: delta
w = n (costante) * y * x. Nella sua formula originale questa regola può solo rinforzare la
connessione. Le regole di apprendimento di tipo hebbiano sono spesso collegate
all'apprendimento non supervisionato.

Esistono alcune formule che sono considerabili varianti della regola di Hebb e che si basano tutte
sullo stesso principio di rinforzo in base alla coordinazione nella scarica:

La regola postsinaptica diminuisce l'efficacia sinaptica (il valore del peso) quando il neurone
postsinaptico è attivo ma quello presinaptico no;
La regola presinaptica diminuisce l'efficacia sinaptica (il valore del peso) quando il neurone
presinaptico è attivo ma quello postsinaptico no.
La regola della covarianza è uguale a quella di Hebb ma funziona con valori bipolari (-1/1) e
non binari (0/1); ciò porta a rinforzare la connessione quando l'attività dei due neuroni è correlata
mentre la indebolisce quando non è correlata (es. Reti di Hopfield).

L'apprendimento supervisionato si basa su un training set (addestramento) in cui viene


presentato un esempio, viene automaticamente generata una risposta (output) in base all'esempio
(input) e se la risposta corrisponde a quella attesa si ha un rinforzo delle connessioni che hanno
portato alla soluzione corretta, se la soluzione non è quella attesa vengono modificati i pesi delle
connessioni in modo da ottimizzare il risultato e diminuire lo scostamento dalla soluzione
corretta. Dopo la fase di apprendimento si passa ad una di test in cui si verifica la capacità di
generalizzazione dell'algoritmo testandolo su nuovi dati (test set).

2. L'idea di correggere i pesi della rete in base all'errore, calcolato come la differenza tra risultato
atteso e risultato ottenuto, fu inizialmente elaborata da Rosenblatt. I percettroni di Rosenblatt
erano delle reti neurali con due strati di connessioni impiegati soprattutto per il riconoscimento di
caratteri. La prima connessione portava le info dai fotorecettori allo strato di input, la seconda
connessione era invece sottoposta ad apprendimento. Attualmente, quando si parla di percettroni,
si indica una rete neurale con un unico strato di connessioni unidirezionali dai nodi di input a
quelli di output. Quando i percettroni utilizzano una funzione di output bipolare sono detti
percettroni semplici. In un percettrone semplice l'output si attiva se la sommatoria pesata del
prodotto tra w e x e maggiore di zero, se no non si attiva. Si ha poi il confronto tra il valore
ottenuto dall'attivazione e l'output atteso; se questi sono differenti si ha una modifica del peso
sinaptico in base alla risposta e al tasso di apprendimento.
Addestriamo la rete presentando esempi costituiti da un vettore di ingresso x e da una risposta
desiderata t (target o teaching input). Entrambe utilizzano valori bipolari (-1;1). L’output della
rete per ogni pattern di input è dato dalla formula (slide 6). Questo valore viene confrontato con
la risposta desiderata t. Se si è verificato un errore, i pesi sinaptici vengono modificati in base alla
risposta corretta, secondo una formula che esprime il tasso di apprendimento.

Teorema di convergenza del percettrone: Rosemblatt dimostrò che un percettrone è in grado di


trovare la soluzione in un numero finito di passi di un qualunque problema linearmente
separabile. (Graficamente un problema separabile linearmente può essere rappresentato come un
insieme di due diversi gruppi di punti distribuiti su un piano cartesiano: se un linea retta è
sufficiente per separare i due diversi gruppi di punti allora quello è un problema linearmente
separabile).
Un associatore di configurazioni è simile al percettrone ma ha unità di output con funzione di
attivazione continua e non lineare.
3. La regola delta è una regola che si basa sulla modifica delle connessioni in modo da ridurre
(tendenzialmente) fino a zero il valore dell'errore determinato dalla discrepanza tra risultato
atteso e risultato ottenuto. Questa regola è simile a quella del percettrone ma è applicabile ad
unità di output con attivazione continua e differenziabile. La regola permette di descrivere la
prestazione con una funzione che misura l'errore della rete (funzione d'errore o funzione di costo)
che si basa sullo scarto quadratico medio tra risposta desiderata e output effettivo;
l'apprendimento consiste nel diminuire il valore dell'errore variando il valore delle connessioni
sinaptiche. Si modificano quindi i pesi nella direzione opposta al gradiente della funzione stessa
(discesa del gradiente). Questa regola si chiama delta perchè la differenza tra la risposta
desiderata e quella ottenuta è indicata attraverso questa lettera greca; la variazione dei pesi
sinaptici si calcola quindi come il prodotto tra il tasso di apprendimento, delta e il valore
dell'attività presinaptica. Questa regola viene spesso chiamata anche ADALINE o LMS.

Il tasso di apprendimento, espresso dalla formula wij = wij + n*deltawij può essere costante o
variabile: quando è costante viene fissato un valore per la costante n e questo rimane invariato.
Se n ha un valore variabile si ha un tasso di apprendimento variabile che cambia in base al
numero di epoca. Un tasso di apprendimento costante può avere valori piccoli (è più lento e per
ciò rischia maggioramente di bloccarsi a dei minimi locali) o grandi (è più veloce per cui rischia
di essere impreciso). L'apprendimento può poi essere batch o online. L'apprendimento batch
consiste in una discesa contro il gradiente di superficie dell'errore globale. L'apprendimento
online consiste nella discesa contro il gradiente delle superficie dell'errore parziale.

4. Le reti multi-strato sono caratterizzate dalla presenza di strati intermedi con unità ad attivazione
non linare e sono necessarie per risolvere problemi caratterizzati da inseparabilità lineare. Una
rete a tre strati può teoricamente approssimare qualcunque relazione x-y con precisione arbitraria,
purchè vengano scelti i valori dei pesi corretti e venga scelto il numero corretto di unità nascoste.
Per gestire una rete multistrato, modificando i pesi dei valori sinaptici in modo corretto, è
necessario un algoritmo complesso.
La back-propagation è una estensione della regola delta che permette di addestrare reti
multistrato; l'errore delle unità nascoste viene calcolato tramite propagazione all'indietro
dell'errore (error back propagation) calcolato per le unità di output attraverso le stesse
connessioni che servono per la propagazione dell'attivazione. La back propagation rende
l'agoritmo implausibile dal punto di vista biologico. La back propagation permette di risolvere
problemi non linearmente separabili come gli XOR. Questo algoritmo è stato tra i primi a
permettere di implementare macchine multi-strato. Questo tipo di algoritmo è alla base della
riscoperta dell'interesse verso le intelligenze artificiali; dopo il testo pubblicato da Minsky e
Papert infatti l'interesse era fortemente decaduto per quasi 10 anni (70-80), tornando poi in voga
anche grazie a questo algoritmo che permette di risolvere problemi non linearmente separabili.
Come nella regola delta anche nella back propagation si utilizza un metodo di discesa del
gradiente; qua però la struttura è molto più complessa e spesso non è neanche rappresentabile da
una struttura a tre dimensioni.

Nell'utilizzo della back propagation è facile rimanere bloccati in minimi locali o in zone piane
della superficie d'errore. Per evitare ciò ci sono alcune tecniche che si possono adottare, come:
momentum, utilizzo di parametri adattivi, migliore scelta dei pesi sinaptici iniziali, addizione
della derivata, addizione di rumore e modifica della superficie dell'errore.

Ci concentreremo solo sulla prima strategia.


Il Momentum: sia nella regola delta che nella back-propagation il tasso di apprendimento ha un
ruolo molto importante. Valori troppo alti possono portare a non considerare dei buoni minimi
locali mentre un tasso troppo basso può portare a rallentare eccessivamente la ricerca. Il
momentum è di aiuto in questo processo; il momentum da una sorta di inerzia al sistema nello
spostamento sulla superficie dell'errore. Ciò si ottiene sommando al calcolo della modifica dei
pesi w una frazione della modifica ottenuta all'istante precedente. In questo modo il momentum
favorisce lo spostamento su superifici piatte o semipiatte e riduce le oscillazioni; sembra così
ridurre i tempi di convergenza.

Si parla di overfitting, invece, quando un


algoritmo tende a diminuire
costantemente il numero di errori sui
pattern di addestramento ma diminuisce il
suo grado di generalizzazione.
L'algoritmo si adatta quindi sempre di più
ai dati presentati nel training set e diventa
rigido e poco elastico su altri tipi di dati
simili; tutto ciò deriva dal fatto che i dati
contengono rumore e più una rete si adatta
ai dati più ingloberà questo errore e
diminuirà la sua capacità di
generalizzazione. Quando ad un algoritmo
forniamo una serie di dati possiamo
osservare che inizialmente si osserva la
decrescita degli errori sia nel set di addestramento sia nel validation set. Procedendo si osserverà che ad
un certo punto gli errori nel validation set aumentano in quanto l'algoritmo sta "fittando" troppo i dati; si
consiglia quindi a quel punto di interrompere la presentazione di dati all'algoritmo se si desidera
mantenere un buon grado di generabilità dell'algoritmo.
Se i dati a disposizione non sono sufficienti per creare un buon validation set conviene generare dei dati
aggiungendo del rumore ai dati del set di addestramento o comunque interrompere la somministrazione
del set di addestramento non appena la curva dell'errore (sul training set) smette di decrescere
vertiginosamente.
Una buona pratica per evitare l'overfitting è poi quella di limitare al minimo le unità e le loro
connessioni. Alcuni algoritmi permettono proprio di verificare quali unità e quali connessioni sono
strettamente necessarie al fine di preservarle e quali invece possono essere rimosse senza determinare un
aumento dell'errore eccessivo.
Per fare ciò si può utilizzare la tecnica del rasoio di Ockam oppure quella della weight decay. La prima
consiste nell'analisi sistematica di diverse strutture computazionali le quali sono costituite da un diverso
numero di unità e connessioni; scelto un livello di errore accettabile si sceglie quella struttura che con il
minimo di unità e connessioni rimane nel range accettato.

Validation set: insieme di esempi utilizzati per ottimizzare parametri di apprendimento (detti anche iper-
parametri, come learning rate, momentum, weight decay), il numero di unità nascoste, e per decidere
quando fermare l’apprendimento (early stopping).

Come si può evitare l'overfitting?


– Utilizzare reti neurali non troppo potenti porta ad un migliore apprendimento di regolarità
statistiche (la funzione non è in grado di "memorizzare" i pattern); bisogna verificare che le unità
nascoste siano il numero minimo sufficiente!
– Early stopping: utilizzare un set di pattern (validation set) solo per la verifica di overfitting
durante l’apprendimento e fermarlo prima che l’errore sul validation set inizi ad aumentare
– Weight decay. Utilizzare il decadimento dei pesi: se i pesi hanno la tendenza spontanea a
diminuire, i pesi più deboli, non rinforzati, tenderanno al valore zero. Meno pesi significa meno
parametri e ciò impedisce di apprendere rumore nei dati.

Come ripartire gli esempi? Utilizzare la maggiore quantità di dati possibile per l’addestramento. Se ci
sono molti esempi, una possibile divisione è 50-25-25 (in percentuali).
Se i dati non sono sufficienti per ripartirli in due insiemi separati di training e test, è essenziale
massimizzare il numero di esempi di training utilizzando la tecnica di cross-validazione.
K-fold cross-validation: il dataset totale viene diviso in k parti di uguale numerosità (spesso k=10). Ad
ogni ciclo di cross-validazione, la k-esima parte del dataset viene esclusa dal training per essere
utilizzata come test. La performance finale è data dalla media tra i risultati di ogni ciclo (quindi tra tutte
le k ripartizioni).

RETI PARZIALMENTE RICORRENTI:

L'informazione in input può arrivare in maniera sequenziale e può quindi possedere una struttura
temporale (es. In una frase l'ordine delle parole è rilevante). Le reti analizzate fin ora non erano in grado
di cogliere relazioni temporali tra gli stimoli che erano quindi indipendenti tra di loro. In una rete
l'output dipende quindi solo dall'input corrente: come possiamo quindi far apprendere una sequenza?
Infatti in molte situazioni realistiche è importante la dimensione temporale nella presentazione degli
stimoli. Una soluzione è quella di trasformare le differenze temporali in differenze spaziali. Per fare ciò
aggiungiamo connessioni a feedback tra unità dello stesso strato o tra unità degli strati superiori e
inferiori.
Queste reti ricorsive si possono distinguere in due principali categorie: le reti di Elman e le reti di
Jordan.
- Le reti di Elman sono costituite da uno solo strato di reti ricorrenti che collegano un gruppo di neuroni
nascosti con un uguale numero di neuroni visibili nello strato di input. Queste unità di input sono
chiamate unità contestuali e la loro attivazione è uguale a quella della unità nascosta determinata
dall'input precedente. Queste unità contestuali ri-trasmettono poi la loro attività alle stesse unità nascoste
da cui sono retro-attivate attraverso normali connessioni sinaptiche; i pesi di queste connessioni sono
normalmente modificati attraverso back-propagation. Queste reti possono funzionare in due modi:
passando ciclicamente attraverso uno stato interno ogni t cicli di attivazione oppure generando una
sequenza finita fino al raggiungimento dell'attrattore.
- Nelle reti di Jordan invece le unità contestuali hanno un'attivazione uguale a quella dell'unità di output
(la connessione è nodi output-unità contestuali) e possiedo inoltre delle autoconnessioni.
Le reti di Elman utilizzano rappresentazioni interne e non di uscita; queste reti sono quindi più potenti (a
quanto pare).
Un metodo alternativo per ottenere una dimensione temporale in un algoritmo è quello di utilizzare delle
reti con ritardo temporale. Queste reti sfruttano superifici di input più estese e utilizzano lo spostamento
dello stimolo come indice di variazione temporale. Queste reti vengono spesso definite TDNN (Time-
Delay Neural Network) e un esempio è la NetTalk.
NetTalk è una rete neurale a due strati di connessioni che impara a pronunciare un un testo in inglese.
L'input è costitutito da 7 lettere che scorrono sui neuroni di input e si muovono a ritmo di un carattere
alla volta. L'algoritmo deve produrre il suono adeguato per la lettera presentata al centro del pattern di
input scegliendolo tra un gruppo di fonemi possibili. Dopo 50 epoche di addestramento su un testo di
circa 1000 parole il modello apprende a leggere correttamente anche testi non presenti nel training set.
L'apprendimento passa prima per la capacità di segmentare le parole, per poi passare a una fase di
lallazione e riuscire infine a produrre i suoni corretti per le parole.

MODELLI CONNESSIONISTI LOCALISTICI: IL RUOLO DELLE CONNESSIONI TOP-DOWN:

Tra i primi modelli:


– Selfridge (1959): modello del riconoscimento di lettere "Pandemonium"
– Morton (1969): modello logogen
– McClelland e Rumelhart (1981): modello ad attivazione interattiva

Sono caratteristiche tipiche dei modelli localistici: non apprendono (pesi prestabiliti), ogni nodo
corrisponde ad una rappresentazione con un ruolo specifico, i livelli di rappresentazione sono scelti a
priori e vi è enfasi sulla simulazione di dati comportamentali.

Il Pandemonium di Selfridge è un modello di riconoscimento delle lettere caratterizzato da attivazioni in


parallelo e da sole connessioni feed-forward eccitatorie; questo modello può essere schematizzato in
alcune fasi successive che permettono al modello di individuare con buona probabilità la lettera
presentata. Vi è inizialmente un'analisi dei features (caratteristiche) dello stimolo; in base alla presenza
di linee verticali, orizzontali, curve, angoli ecc... il programma attiva dei nodi specifici legati, ad un
livello superiore, a delle lettere. A scegliere poi quale sia la lettera rappresentata è un centro di controllo
superiore che valuta i livelli di attivazione delle singole lettere e sceglie quella maggiormente attivata.

Nel modello di attivazione interattiva di McClelland e Rumlhart troviamo invece l'integrazione di più
sorgenti di attivazione; in questo modello la soglia di attivazione riflette la frequenza lessicale. In questo
modello si ha una connessione bidirezionale tra livello delle parole e delle lettere; questa connessione
permette di influenzare retroattivamente la probabilità di attivazione di una lettera e di una parola in base
alla frequenza di quella parola.

Nei modelli che servono per l'elaborazione delle parole l'effetto contesto si verifica in presenza di
elaborazione interattiva; questa, attraverso una comunicazione feed-back tra livello delle parole e delle
lettere, permette di modificare la probabilità che vi sia l'attivazione di una lettere in dipendenza della
parola che più probabilmente verrà formata. Il feedback dal livello delle parole permette quindi di
disambiguare le lettere occluse. Alcuni aspetti simili possono essere osservati nel funzionamento
cerebrale umano (ascolta registrazioni lezioni per approfondimento).

APPRENDIMENTO NON SUPERVISIONATO:

L'apprendimento non supervisionato si basa sul pricipio di scoprire le regolarità statistiche del mondo
semplicemente osservando l'ambiente circostante.
I principali algoritmi di apprendimento non supervisionato che verranno trattati sono:

– Apprendimento competitivo
– Self-organizing maps (reti di Kohonen)
– Riduzione lineare della dimensionalità (e.g., PCA, regola di Oja…)
– Apprendimento associativo (reti di Hopfield)
– Riduzione non-lineare della dimensionalità: modelli generativi
- Macchine di Boltzmann
- Deep Belief Networks

- I principali vantaggi dell'apprendimento non supervisionato sono: la possibilità di apprendimento senza


necessità di etichette (non è necessario un umano che etichetti), i modelli interni all'ambiente che
vengono elaborati possono essere trasferiti su altri compiti (generalizzazione), è un modello che sembra
molto simile a quello utilizzato nell'apprendiemnto animale, è un apprendimento implementabile
attraverso meccanismi biologicamente plausibili.

- I prinicpali svantaggi dell'apprendimento non supervisionato sono: non è chiaro quali elementi
dell'ambiente verranno utilizzati per risolvere il compito o per generare una buona rappresentazione,
richiede molte risorse computazionali (a volte sarebbe più economico un "maestro"), non può inferire
relazioni causali.

Per generare una buona rappresentazione si può o utilizzare un mapping supervisionato direttamente
dai dati grezzi, oppure si potrebbe estrarre una serie di caratteristiche ed eseguire poi il mapping proprio
basandoci su di esse.

L'idea che sta alla base del processo di formazione di rappresentazioni è quello di rimuovere
l'informazione non necessaria. I metodi principali sono due: clustering e feature extraction. Il risultato
a cui i due processi portano e comunque sempre lo stesso: la riduzione della dimensionalità. Come viene
effettuato questo compito? Il punto di partenza è la scoperta di regolarità statistiche attraverso
apprendimento hebbiano; dopodichè bisogna trovare clusters nei dati oppure estrarre le componenti
principali dai dati.

- Metodi di Clustering (reti competitive e Self-Organizing maps):

Il clustering consiste nel ridurre il numero di esempi raggruppandoli insieme creando prototipi; in base
alla loro somiglianza alcuni elementi vengono uniti in modo da ridurre il numero dei fattori.

Una semplice forma di clustering può essere effettuata attraverso un meccanismo di apprendimento
competitivo. Ciò si effettua proiettando gli input su un set di neuroni che implementano una dinamica
competitiva attraverso connessioni laterali inibitorie ed auto-connessioni eccitatorie. Questo meccanismo
porta al sopravvento dell'attivazione di un solo neurone che si eccita maggiormente ed inibisce gli altri;
questo processo è detto “winner takes all” ed è molto rapido quando i neuroni attivati sono pochi, mentre
se i neuroni sono molti e fortemente attivati questo processo richiede molto tempo per raggiungere un
equilibrio. I questo tipo di reti l'apprendimento può avenire usando una variante della regola di Hebb.

Self-organizing maps (a.k.a. “reti di Kohonen”): se imponiamo una struttura topologica nel layer
competitivo ciascun neurone formerà una coalizione con i neuroni vicini consentendo di mappare più
accuratamente lo spazio degli input in uno spazio a dimensionalità ridotta (2D).
La struttura topologica è definita in base alla funzione di neighborhood che può avere più forme; questa
funzione si basa sulla più forte connessione tra neuroni vicini e sempre inferiore (o inibitoria) per
neuroni più lontani. Le self-organizing maps sono molto utili per visualizzare dati ad alta dimensionalità
in una superficie bidimensionale

- Metodi di estrazione di features (PCA, regola di Hebb e regola di Oja):


La feature extraction riduce il numero di descrittori, mantenendo solo quelli più informativi ed
eliminando quelli più astratti.
Un altro metodo per la riduzione della dimesionalità è la PCA (Principal Component Analysis) ovvero
una tecnica statistica che cerca di trovare la direzione di massima variabilità in un insieme di dati.
Questa tecnica cerca di rilevare quali sono le componenti che determinano la massima varianza e che
sono quindi le componenti principali attraverso le quali possiamo descrivere i dati.
Il forte limite della PCA è che è utile per descrivere distribuzioni semplici e lineari ma quando queste
sono complesse e non lineari questa analisi non permette di eidenziare le componenti più informative.

La regola di Hebb, “neurons wire together if they fire together”, è fortemente legata ai concetti
neurofisiologici di LTP e di STDP (Spike Timing Dependent Plasticity) e nell'ottica dell'IA può essere
interpretata come una regola che scopre correlazioni nei dati.
La regola di Hebb ha però alcuni punti critici: è fortemente instabile e i pesi possono continuare a
crescere in modo incontrollato. Per ovviare a questi problemi possiamo normalizzare il vettore dei pesi
facendo in modo che i suoi elementi sommino ad 1; otteniamo così la regola di Oja.
Inoltre possiamo aggiungere molteplici neuroni nel layer di output, con connessioni laterali fra di loro,
cosi da estrarre le prime k componenti principali dalla distribuzione. Questa variante viene detta “regola
di Hebb generalizzata”.

APPRENDIMENTO NON SUPERVISIONATO: DALLA REGOLA DI HEBB ALLE MEMORIE


ASSOCIATIVE

La regola di Hebb può essere utilizzata per apprendere i pesi sinaptici di reti più complesse in modo da
memorizzare interi pattern e poterli ricostruire utilizzando soltanto dei cues (indizi).

La fisica classica ha tradizionalmente spiegato i fenomeni fisici in termini deterministici; con l'avvento
della meccanica statistica si è passati a descrivere i fenomeni in termini di probabilità.
Un esempio è il modello di Ising che descrive la transizione di fase nei sistemi fisici: gli atomi di un
oggetto sono disposti vicini in un lattice bidimensionale e ciasun atomo può trovarsi in due possibili stati
discreti (spin); quando tutti gli spin sono allineati il sistema diventa ferromagnetico.
La dinamica del sistema è governata da una funzione di energia che dipende dalla sua temperatura; il
sistema esplora varie configurazioni e si assesta poi in quelle più probabili (ovvero con energia minima).
Normalmente il sistema non raggiunge uno stato uniforme con l'energia minimizzata globalmente, ma si
assesta in una configurazione eterogenea con l'energia minimizzata localmente.
Il modello di Ising, se adeguato, può essere utilizzato anche nel campo dell'IA; il concetto di atomo va
sostituito con quello di neurone e va aggiunta la possibilità di aggiustare le interazioni locali attraverso
apprendimento hebbiano.

Le reti di Hopfield: sono reti neurali completamente ricorrenti (tutte connessioni bidirezionali) con
topologia completamente connessa (tutti i neuroni sono connessi), che possono essere usate per
memorizzare e recuperare pattern di dati. Essendo completamente connessa ogni unità funge sia da unità
di input che di output. In queste reti non ci sono autoconnessioni (più plausibile biologicamente) e tutti i
neuroni sono visibili. La memorizzazione avviene modificando i pesi attraverso apprendimento
hebbiano, mentre il recupero avviene in modo dinamico aggiornando lo stato dei neuroni fino a
raggiungere uno stato stabile. Queste reti sono dette energy based in analogia con la meccanica statistica
che utilizza una funzione di energia per specificare quali stati della rete sono i più probabili.
Il calcolo dele attivazioni delle varie unità può avvenire in modo sincrono (tutte le unità si modificano
contemporaneamente; difficile da implementare in un simulatore e improbabile biologicamente) o in
modo asincrono (in modo casuale o sequenziale alcuni specifici neuroni aggiornano il proprio stato in
base all'attivazione degli altri).

I neuroni in questo tipo di reti hanno stati binari (-1,1 → funzione a scalino); un neurone si attiva (1)
solo se la sommatoria pesata dell'attività di tutti gli altri neuroni è superiore ad una certa soglia,
altrimenti non si attiva (-1). Hopfield ha dimostrato che se i pesi sono appropriati le attivazioni della rete
convergeranno verso uno stato stabile (attrattore) dove la rete raggiunge l'equilibrio.

I pesi della rete, affinchè venga recuperata la memoria corretta, devono essere calibrati attraverso
apprendimento hebbiano. Assumiamo di avere vari pattern Pk da memorizzare, dove k è la dimensione
dell’input (es: numero di pixel nell’immagine), che corrisponde al numero di neuroni nella rete. Ogni
pattern di training viene presentato iterativamente alla rete, fissandolo nei neuroni X, e le connessioni fra
le unità vengono aggiornate in base alla regola: ∆Wij= η * Xi * Xj

Gli attrattori della rete corrispondono ai punti di minimo locale della funzione di energia, e
rappresentano pattern stabili di attività che codificano una “memoria” (ovvero, un determinato pattern di
input).

Le reti di Hopfield possono immagazzinare un numero limitato di pattern indipendenti che è stato
dimostrato essere 0,138 * k dove k è il numero di neuroni della rete (numero incrementabile
aggiungendo unità nascoste come nelle macchine di Boltzmann).
Aumentando il numero di pattern memorizzati (ovvero il numero di attrattori) la rete svilupperò un certo
numero di memorie sbagliate chiamate attratori spuri che non corrispondono ai minimi locali stabiliti
ma comportano comunque uno stato di equilibrio. Questo problema può essere parzialmente risolto
introducendo una dinamica stocastica.

Per evitare di rimanere intrappolati in cattivi minimi locali, possiamo sostituire la funzione di attivazione
deterministica con una funzione stocastica: in questo caso l'attivazione viene interpretata come una
probabilità e la funzione a scalino diviene una sigmoide. Nella funzione è inoltre presente il parametro T
ovvero la temperatura del sistema, in analogia con i sistemi fisici. In base alla temperatura del sistema
varia la curvatura della sigmoide; più è alta la temperatura più la dinamica sarà rumorosa/casuale, a
basse temperature la sigmoide tenderà alla funzione a gradino.

La tecnica utilizzata per ridurre al minimo l'energia di un sistema e renderlo così il più stabile possibile è
quella del simulated annealing. Questo processo consiste in un “raffreddamento” graduale della
temperatura del sistema. La tecnica si ispira a quella utilizzata nella metallurgia per migliorare la
configurazione atomica dei metalli. Infatti i metalli perdono le loro proprietà magnetiche all'aumentare
della temperatura e l'andamento della loro "capacità" magnetica segue un andamento sigmoidale in
relazione alla temperatura. Tanto più la temperatura è alta tanto più la sigmoide appare schiacciata, tanto
più è bassa la temperatura tanto più la sigmoide si approssima alla funzione a gradino. T temperatura è
quindi un parametro che indica l'andamento della sigmoide e quindi della probabilità.
La scelta del valore della temperatura del sistema va ben ponderata: infatti un valore troppo alto rischia
di rende il sistema instabile. Una soluzione è quella di provare i valori di T appena sopra e sotto l'1 e
osservare l'andamento della rete.
La tecnica del simulated annealing serve a portare il sistema allo stato di energia minima evitando che
questo si blocchi in degli stati spuri. Per attuare questa tecnica bisogna scegliere i valori di T e i periodi
di tempo P per i quali si mantiene quel valore. Ad alte temperature il sistema è molto instabile ma
permette di evitare di bloccarsi in valori spuri; nella fase successiva le temperature sono "medie" e il
sistema diminuisce le sue oscillazioni che vanno però iterate per molte volte affinchè non si blocchino in
valori spuri. Questa fase è critica perchè il sistema si sta assestando verso un bacino di attrazione.
L'ultima fase è quella in cui si diminuisce ulteriormente la temperatura e il sistema diventa stabile nel
valore di energia minima trovata.

APPRENDIMENTO NON SUPERVISIONATO: MODELLI GENERATIVI E MACCHINE DI


BOLTZMANN
La percezione e la cognizione possono essere interpretate attraverso la visione bayesiana di probabilità.
Esistono alcune figure che hanno più interpretazioni possibili rispetto alla loro forma; in questi casi la
nostra percezione fa un'ipotesi su ciò che stiamo vedendo e la probabilità che il nostro cervello arrivi a
quella conclusione dipende anche da altre variabili che ne possono influenzare il risultato (es. Contesto,
apprendimento...).
Un modello generativo non cerca di apprendere un mapping input-output ma di scoprire la struttura
latente (non osservabile) di connessioni che hanno determinato quei dati. Le cause latenti di un segnale
sensoriale costituiscono la sua rappresentazione interna.

Se tutti i neuroni sono visibili possiamo scoprire solo correlazioni a coppie (pairwise), se invece
aggiungiamo neuroni nascosti possiamo scoprire delle rappresentazioni interne.

Le macchine di Blotzmann sono una variante stocastica delle reti di Hopfield che sfruttano unità
nascoste per estrarre correlazioni di ordine superiore dai dati e per memorizzare un numero superiore di
dati. I neuroni nascosti vengono usati per comprimere l'informazione. Sono strutture
computazionalmente molto dispendiose. Le connessioni sono necessariamente simmetriche.
Nelle macchine di Boltzmann i neuroni hanno stati binari (0/1) e la loro attivazione è calcolata in base ad
una funzione di attivazione stocastica.
Inizialmente l'input viene presentato solo alle unità visibili e alle unità nascoste vengono assegnati valori
casuali; dopodiché vengono aggiornate iterativamente i valori di attivazione di ogni neurone finchè la
rete non raggiunge l'equilibrio. Questo processo è detto Gibbs sampling.
Se il compito è di memorizzazione od ottimazione ciascun pattern viene presentato a tutte le unità
visibili; se il compito è di classificazione il pattern stimolo viene presentato alle unità di input e la
risposta desiderata alle unità di output.
La regola di apprendimento nelle BM è costituita da due parti: una prima parte è costituita dalla regola di
Hebb estesa (come nelle reti di Hopfield) mentre la seconda parte è una cancellazione delle associazioni
scorrette che la rete produce quando essa evolve in mancanza di un input esterno. Se non ci fosse questa
seconda componente il sistema non sarebbe in grado di distinguere tra quello che è l'input effettivamente
presentato e quella che è la produzione del sistema stesso durante la libera evoluzione.

La topologia del grafo definisce indipendenze condizionali. La probabilità congiunta di tutte le variabili
può quindi essere fattorizzata sfruttando le interazioni locali tra le variabili.

Gibbs sampling in modelli grafici non direzionati (reti di Markov): come possiamo stabilire il valore di
alcune variabili dati i valori di altre variabili? Ignoriamo le variabili al di fuori del Markov blanket e
inizializiamo casualmente le altre variabili fino a far raggiungere l'equilibrio al sistema.

Le RBM (Restricted Boltzmann Machines) sono costruite a partire da due strati di neuroni, uno
visibile, l'altro nascosto. Questi due strati sono completamente connessi ma non sono presenti
connessioni intra-layer (laterali). I neuroni nascosti H (le ipotesi) diventano condizionatamente
indipendenti; queste macchine permettono di ridurre incredibilmente la complessità computazionale. La
topologia del grafo codifica indipendenze condizionali: la probabilità di attivazione di H dato V è uguale
alla produttoria delle probabilità di H dato V.
Dato che, in base alla sua topologia, non ci sono connessioni intra-layer (condizionatamente
indipendenti) possiamo inferire lo stato di un H valutando l'attivazione dei nodi V a cui è connesso
(credo?).
Apprendimento maximum-likelihood efficiente --> divergenza contrastiva (?)
L'apprendimento hebbiano in questo tipo di modello è completamente non supervisionato.
La divergenza contrastiva ha lo scopo di minimizzare la differenza tra la distribuzione empirica dei dati
e la distribuzione del modello. Si cerca quindi di rendere il più simili possibili le rappresentazioni fornite
dal modello quando non è vincolato ai dati e i dati stessi.
Per ciascun pattern di training l'algoritmo della divergenza contrastiva è:

Fase positiva:
1. Il pattern è presentato alla rete («vincolato» [clamped] nei neuroni visibili v)
2. L’attivazione dei neuroni nascosti h viene calcolata in un singolo step usando la funzione di
attivazione stocastica
3. Calcoliamo le correlazioni < v + h + > fra le unità visibili e le unità nascoste
Fase negativa:
1. Partendo dalle attivazioni delle unità nascoste calcolate durante la fase positiva, si generano le
attivazioni nel layer visibile usando la funzione di attivazione stocastica
2. Partendo da queste nuove attivazioni visibili, ricalcoliamo le attivazioni nascoste
3. Calcoliamo le correlazioni < v – h – > fra le unità visibili e le unità nascoste
Aggiornamento dei pesi:
1. I pesi vengono cambiati secondo la regola: deltaW = a((v+)*(h+) - (v-)*(h-))

Anche nel cervello ci sono moltissimi effetti top-down: il cervello umano è un «cervello attivo». Questo
è dovuto alle moltissime connessioni di feedback nei circuiti corticali! Gli effetti top down sono generati
da: effetti di contesto, attivazione interattiva bi-direzionale, aspettative / anticipazione dell’informazione
sensoriale (predictive coding).
Ma come può la corteccia predire l’ambiente? apprendendone un modello interno! Proprio come fa il
RBM.

DEEP LEARNING

I sistemi di apprendimento possono essere gerarchici. E’ più efficiente apprendere molteplici livelli di
rappresentazione, dove features più semplici vengono gradualmente combinate per creare entità più
complesse (concetti astratti/features «high-level»). In questo modo si aumenta l’efficienza del sistema,
perché ciascuna feature può essere riutilizzata molteplici volte per rappresentare diversi concetti,
ottimizzando quindi la codifica dell’informazione
Ad un modello che possiede neuroni nascosti, e opera quindi una riduzione della dimensionalità dei dati,
se viene presentata un'immagine complessa, il modello cercherà quelle features ricorrenti che possono
essere utilizzare più volte per analizzare diverse immagini. Queste features, in diversi esperimenti, sono
codificate in termini di linee e barre; lo stesso tipo di semplificazione degli elementi chiave
dell'immagine si osserva anche sulla corteccia visiva di alcuni primati.

Nel mondo reale gli oggetti spesso non sono linearmente separabili. Affinchè la macchina riesca ad
operare una distinzione netta tra le categorie dobbiamo operare delle modifiche sulla struttura dei dati al
fine di renderli linearmente separabili. Ad esempio, se una serie di dati, distribuiti su una linea
orizzontale, non sono linearmente separabili, possiamo elevarli al quadrato in modo da distribuirli su due
dimensioni e da trovare una funzione lineare che permetta di separarli. Lo stesso si può fare elevandoli al
cubo e cercando un piano lineare che divida i due insiemi di dati.

Modelli generativi gerarchici a.k.a. “deep unsupervised learning” o “deep belief networks”: Possiamo
combinare varie RBMs per apprendere modelli interni più complessi
– Lo strato nascosto di una RBM è usato come input (strato visibile) per la RBM successiva
– In questo modo possiamo apprendere molteplici livelli di rappresentazione (ipotesi su ipotesi)
– Features astratte vengono scoperte in modo non supervisionato, riutilizzando features più semplici
Queste complesse macchine di Boltzmann (Deep Boltzman Machines) possono essere utilizzate per un
Multimodal Learning attraverso l'unione delle rappresentazioni fornite da due diverse RBM.

Architetture di calcolo parallele consentono di sfruttare il parallelismo inerente delle reti neurali [PDP]
(?). Per realizzare questo tipo di modelli si utilizzano le Graphic Processing Units che consentono di
addestrare reti neurali gerarchiche con miglia di neuroni e milioni di connessioni. Il problema di queste
unità è che consumano una grandissima quantità di elettricità. Per ovviare a questo problema si sta
sviluppando un nuovo tipo di semiconduttori, detti memristori, che hanno la peculiarità di poter variare
la resistenza in base al flusso di corrente e alla carica. Questi memristori sono molto veloci e consumano
molta meno eletticità.

I sistemi di “machine vision” cominciano ad avvicinarsi alla prestazione umana in compiti difficili, come
il riconoscimento di oggetti o la segmentazione di immagini. Lo stesso vale anche per il riconoscimento,
la comprensione e la traduzione automatica del linguaggio parlato.

APPRENDIMENTO CON RINFORZO

Prima di discutere di questo argomento è importante distinguere tra i concetti di correlazione e di


causalità.
Trovare una correlazione tra due variabili non implica un rapporto causale tra di esse e, se anche questo
rapporto fosse presente, noi non possiamo sempre stabilire quale sia la causa e quale l'effetto. Per poter
manipolare attivamente l'ambiente in maniera efficace è però importante riuscire ad estrapolare alcune
relazioni causali attraverso un processo logico. Un esempio è quello del gallo che canta al sorgere del
sole: il nostro ragionamento logico ci porta a ritenere che sia il sorgere del sole che determina il canto
del gallo e non viceversa.
Manipolare l'ambiente è utile per scoprire relazioni causali e, in un'ottica evoluzionistica, per aumentare
le nostre chance di sopravvivere.

Il problema fondamentale nel rinforcement learning è: quali azioni dovrei scegliere di eseguire per
massimizzare i miei "guadagni" futuri?
Rispondere a questa domanda non è facile: esistono infatti delle azioni che sono immediatamente utili
ma controproducenti nel futuro, mentre altre azioni che sembrano inutili sono in realtà molto utili in
futuro. Inoltre l'ambiente è solitamente stocastico per cui non si può avere la certezza che una
determinata azione sarà produttiva.
Un dilemma importante in questo ambito di ricerca è quello del "exploration vs exploitation". In
sostanza ci si chiede quanto bisogna esplorare l'ambiente alla ricerca di nuove strategie (potenzialmente
migliori) invece che concentrarsi su quelle apprese? Questo dilemma è stato affrontato con il metodo
dell'annealing per il quale inizialmente si ha un comportamento esplorativo che poi decresce
gradualmente nel tempo.*

Jordan e Rumelhart (1992) hanno rielaborato il problema dell'insegnante esterno applicandolo a


situazioni in cui la risposta desiderata è data solo dalle conseguenze sensoriali delle proprie azioni.
Questo modello si costituisce di due fasi: inizialmente il modello apprende tramite apprendimento
supervisionato il rapporto tra azione e conseguenza sensoriale e sviluppa così un modello interno
dell'ambiente; successivamente il modello apprende a produrre l'azione adeguata in base
all'informazione ottenuta.
Il modello interno che è stato generato viene utilizzato per prevedere le conseguenze sensoriali
dell'azione che il modello ritiene più corretto mettere in atto. Ci sono quindi tre tipologie di stati
possibili: stato sensoriale desiderato, conseguenza sensoriale reale e conseguenze sensoriali predette
dal modello. Esistono quindi 3 diversi tipi di errori possibili: errori di prestazioni, di predizione o di
prestazioni previste.

Il concetto che l'apprendimento di un comportamento motorio si basi su una precedente formazione di un


modello interno è molto interessante per la psicologia.
In molte situazioni reali la risposta dell'ambiente alla nostra azione è una risposta "critica"; ciò significa
che ci viene fornito un feedback sulla bontà della nostra azione. L'apprendimento in questo caso
significa generare molte risposte casuali e osservare quali determinano un grado di bontà maggiore.
Spesso il range di azioni eseguibili è troppo ampio per cui si utilizzano tecniche di esplorazione che sono
basate sulle esperienze precedenti; questa situazione è definita come "il problema dell'assegnazione di
credito strutturale". Ci sono due classi generali di ambienti dove si utilizza l'apprendimento con
rinforzo:
– ambienti statici (o stocastici) in cui per ogni coppia di input-output vi è un unico valore di
rinforzo (oppure una determinata probabilità di ottenere un rinforzo positivo)
– ambienti dinamici in cui la sequenza temporale influenza l'interazione tra agente e ambiente,
modifica il valore del rinforzo e altera la frequenza con cui esso è reso disponibile all'agente

*Matematicamente questo concetto si esprime attraverso alcune variabili: set di stati ambientali (sn), set
di azioni possibili (an), set di osservazioni ambientali (on), regole di transizione tra gli stadi, regole che
specificano i guadagni immediati con determinate transizioni.
Lo scopo dell'agente è quello di accumulare la maggior quantità di ricompense, massimizzando una
funzione di utilità scontata. Questa funzione è massimizzabile apprendendo una politica di controllo
che definisca quali azioni determinano un guadagno maggiore.

Due algoritmi tipici per il reinforcement learning sono:


– temporal difference (TD) learning: è un algoritmo che si modifica al variare del tempo con lo
scopo di predirre le ricompense future a partire dalle conoscenze attuali.
– Q-learning: è un metodo complementare che non richiede un modello dell'ambiente per predirre
il guadagno legato ad ogni azione; l'ambiente viene esplorato in modo stocastico e la ricompensa
si ha in presenza della scelta dell'azione con il rinforzo immediato e l'utilità maggiore (nella
prossima posizione) più alti.

Questo tipo di apprendimento è stato ispirato ai modelli di apprendimento animale (Pavlov, Skinner);
questi, nei moderni studi delle neuroscienze, sono analizzati nell'ottica degli effetti sul funzionamento
cerebrale (aree dello striatum, della corteccia orbito-frontale e dell'amigdala).
Il deep learning probabilmente portà aiutare molto nel miglioramento dell'interazione macchina-
ambiente.

MODELLI COMPUTAZIONALI IN PSICOLOGIA

Lo scopo di questi modelli è di rimpiazzare e/o migliorare i modelli verbali, di sistematizzare i dati
sperimentali, di testare teorie alternative e di generare predizioni.
Questi modelli possono essere utilizzati per simulare: i risultati della psicologia sperimentale, gli effetti
di una lesione cerebrale o il processo di acquisizione di una abilità cognitiva.

Tra i modelli cognitivi quantitativi ci sono quelli connessionisti, i quali si possono poi dividere in
localistici e dell'apprendimento.

– modelli connessionisti localistici: modelli della prestazione e non dell'apprendimento; ogni unità
ha un ruolo specifico; ci sono livelli di rappresentazione decisi a priori; simulazione di dati
comportamentali
– modelli connessionisti dell'apprendimento: enfasi sull'apprendiemento di una capacità,
rappresentazioni distribuite su molte unità; alcuni livelli di rappresentazione possono emergere
senza essere stati definiti a priori.

Una teoria cognitiva, prima di diventare un modello computazionale, deve essere pienamente
specificata. Una volta fatto ciò possiamo fare "girare" il modello ed osservare se le risposte che il
modello elabora sono le stesse che otterremmo da un soggetto umano. Se c'è discrepanza tra risposte del
modello e risposte umane significa che ci sono degli errori nella teoria che possono essere più o meno
fondamentali e in base a ciò si può tentare di modificare alcuni aspetti della teoria o si può decidere di
rifiutarla.

Criteri per valutare un modello:

– Adeguatezza descrittiva: grado di accuratezza con cui il modello predice un set di dati sia
quantitativamente che qualitativamente. Per valutare il fit tra modello e dati si usano due metodi:
fattoriale (analisi della varianza su errori o latenze e valutazione della presenza dei risultati del
modello di tutti i dati che sono significativi nella risposta umana) e della regressione (calcola la
proporzione di varianza della prestazione dei soggetti umani che viene spiegata dai dati del
modello a livello dei singoli items).
– Generalità: capacità del modello di generalizzare attraverso set di stimoli/compiti/tipi di risposta
diversi.
– Semplicità: un modello è semplice in termini spesso relativi, quindi è semplice rispetto ai
modelli precedenti. Un modello può anche essere definito semplice in base alla complessità del
suo oggetto di studio.

Quale scegliere tra due teorie in competizione? Bisogna eseguire una valutazione comparativa
sull'adeguatezza descrittiva dei modelli (valutando soprattutto le differenze). Se questi si rivelano
entrambi adeguati possiamo scegliere il modello in base alla sua semplicità o in base ai principi del
falsificazionismo e dell'inferenza forte.
Il falsificazionismo e l'inferenza forte sono delle strategie di ricerca che si basano sulle differenze
presenti nei modelli a confronto. Queste diffserenze determinano necessariamente delle differenti
risposte in situazioni specifiche; testando queste teorie in quelle determinate situazioni si possono notare
i punti di forza e di criticità dei vari modelli.
Nella generazione di un modello è importante esplicitare le assunzioni riguardo ai processi,
all'apprendimento, alle rappresentazioni e all'architettura.

Potrebbero piacerti anche