Sei sulla pagina 1di 14

INTELLIGENZA ARTIFICIALE

1. Da dove viene l’intelligenza artificiale (evoluzione storica: come e perché nasce)


2. Differenze tra IA classica e IA neurale (concezione di intelligenza, pensiero, riproduzione del
comportamento a computer, percorso di sviluppo delle teorie)
3. Caratteristiche e pionieri dell’approccio logico-simbolico (struttura, limitazioni e recenti
estensioni dell’IA simbolica)
4. Caratteristiche e pionieri dell’approccio neurale (connessionismo)
5. La frase: “I processi simbolici sono indipendenti dallo specifico medium su cui vengono
realizzati” è riferita all’ IA simbolica o connessionista?
6. La frase: ”I processi mentali emergono da uno specifico medium: neuroni collegati in una rete”
è riferita all’ IA simbolica o connessionista?

FONDAMENTI MATEMATICI

1. Cosa è e a che cosa serve la Teoria dei grafi?


2. Descrivi le immagini: che tipo di grafi?

3. Da cosa è definita l’architettura di una rete neurale?


4. Teoria della probabilità: perché si usa?
5. Quali sono gli elementi fondamentali della Teoria della probabilità?
6. Cosa si intende per Indipendenza statistica P(A|B) = P(A)?
7. Cosa sono la probabilità condizionata P(A|B)? E la probabilità congiunta P(A,B)?
8. Cosa si intende per Prospettiva Bayesiana nella teoria della probabilità?
9. Come si può definire l’Inferenza statistica?
10. A cosa serve l’algebra lineare?
11. Elementi fondamentali dell’algebra lineare: - Matrici, - Spazi vettoriali, - Iperpiano, -
Trasformazione lineare)
12. Elementi fondamentali dell’analisi matematica : - Derivate, - Gradiente, -Max e Min.
13. Cos'è il gradiente di una funzione e cosa si intende per discesa di gradiente?
14. Cos’è la Matrice dei pesi sinaptici?
15. Quali modelli servono per rappresentare un neurone artificiale?
16. Come si possono definire i Sistemi complessi non lineari?
17. Cos'è un Algoritmo?
18. Cos’è un algoritmo ad apprendimento automatico?

CONNESSIONISMO

1. Storia delle reti neurali artificiali


2. Descrivere le proprietà delle reti neurali artificiali
3. Cosa si intende per Computazione neurale (Neural computation)?
4. Descrivere l’esempio di Codifica dell’informazione nel neurone biologico
5. Quali sono gli elementi di base delle reti neurali?
6. Cos'è un neurone formale?
7. Descrivere i valori di attivazione del neurone e cosa rappresentano.
8. Descrivere i possibili pesi di una connessione
9. Descrivere l’architettura di una rete neurale: Topologia e schema di connettività
10. Quali sono gli elementi che sottolineano la differenza tra un neurone e una rete artificiale con
quelle biologiche?
11. Elaborazione gerarchica nelle reti biologiche
12. Elaborazione distribuita e parallela nelle reti artificiali
13. Cosa significa “simulare”?
14. Cosa si intende e quali sono gli aspetti centrali dell’apprendimento?
15. Quanti e quali tipi di apprendimento esistono?
16. Proprietà importanti dei sistemi di computazione neurale
17. Applicazione delle reti artificiali nell’ambito delle scienze cognitive
18. In quali branche si può suddividere il Machine Learning?
19. Cosa si intende per Shallow learning e Deep Learning?

APPRENDIMENTO SUPERVISIONATO

1. Machine Learning: tassonomia


2. Apprendimento supervisionato classificazione: descrivi e spiega le caratteristiche
3. Apprendimento supervisionato regressione: descrivi e spiega le caratteristiche
4. Esempi di algoritmi di apprendimento supervisionato
5. Ambiti di applicazione dell’apprendimento supervisionato
6. Quali sono i metodi statistici anche utilizzati nell’apprendimento supervisionato?
7. Apprendimento associativo: spiega la regola di Hebb
8. Spiega la formula di modifica del peso
9. Quali sono i limiti espressi dalla formula di modifica del peso?
10. Quali sono le varianti della regola di Hebb per l’apprendimento associativo?
11. Spiega la regola della covarianza; in cosa differisce dalla regola di Hebb a livello di reti artificiali?
12. Cosa si intende per correzione dell’ errore?
13. Descrivi le caratteristiche e le differenze Training set, Addestramento e Testing
14. Quale è il primo modello di reti neurali con pesi sinaptici modificabili da un algoritmo di
apprendimento?
15. Descrivi e spiega la formula legata al percettrone
16. Cosa indica il learning rate?
17. Come avviene l’apprendimento legato al percettrone
18. Cosa dice il teorema di convergenza del percettrone
19. Limiti relativi al percettrone
20. Concetto della separabilità lineare
21. Associatore lineare di configurazioni: descrivi e spiega le differenze rispetto al percettrone
22. Spiega la formula dell’associatore lineare di configurazioni
23. Spiega la regola delta
24. Quando è applicabile la regola delta?
25. In cosa consiste l’apprendimento secondo la regola delta?
26. Da cosa dipende l’apprendimento?
27. Cosa è l’epoca di apprendimento?
28. Quali reti risolvono i problemi linearmente separabili?
29. Quali reti risolvono i problemi linearmente Inseparabili?
30. Cosa sono gli hidden layers?
31. Quale rete è un approssimatore universale?
32. Definizione dell'algoritmo di apprendimento Error Back- propagation
33. Come funziona l’error back-propagation
34. Quali sono i due tipi di apprendimento in cui può avvenire l’aggiornamento dei pesi?
35. Come funziona l’apprendimento Batch?
36. Come funziona l’apprendimento Online?
37. Quale aggiornamento dei pesi avviene secondo una discesa del gradiente stocastica?
38. Definizione di Tasso di apprendimento
39. Definizione di Momentum
40. Definizione di Generalizzazione
41. Cosa sono la funzione vera e la funzione approssimata?
42. Definizione di capacità di estrapolazione e di interpolazione
43. Definizione del concetto di overfitting: quando e perché si verifica?
44. Descrivi esempi di overfitting: regressione e classificazione
45. Quali sono i metodi per evitare l’overfitting e per migliorare la generalizzazione
46. Definizione di Early stopping
47. Definizione di Weight decay
48. Descrivere la differenza tra Training test, Validation set e Test set : perchè esistono set diversi e
come suddividere i dati?
49. Cosa è la Tecnica di Cross- Validation?
50. Descrizione della Tecnica Cross-Validation leave-one-out
51. Quale metrica di usa per valutare la performance?
52. Descrizione della Matrice di confusione e degli indici di performance
53. Descrizione della curva ROC e AUC : a cosa servono?
54. Nell’apprendimento supervisionato sono necessarie delle etichette?

RETI PARZIALMENTE RICORRENTI

1. Perchè si usano le reti parzialmente ricorrenti?


2. Quali possono essere degli esempi di input/output che hanno una struttura temporale?
3. Come si possono apprendere compiti sequenziali?
4. Quali sono i limiti dell’approccio di trasformazione di tempo in spazio?
5. Descrizione di un esempio dell’approccio della finestra temporale: NET TALK
6. Da cosa dipendono le risposte delle reti ricorrenti?
7. Descrizione del funzionamento delle Reti di Jordan
8. Quando si aggiorna il neurone contesto?
9. Descrizione del funzionamento delle Reti di Elman
10. Quale è la differenza tra le Reti di Jordan e le Reti di Elman?
11. Come si addestrano le reti ricorrenti?
12. Quando si apprende attraverso le strutture temporali?
13. Descrivere l’esempio di apprendimento delle strutture temporali di ELman

DEEP LEARNING SUPERVISIONATO

1. Sviluppo che hanno consentito la rivoluzione del deep learning


2. In cosa consiste l’operazione di convoluzione
3. Descrivere il problema del vanishing gradiente
4. architettura di base di una rete convoluzionale

APPRENDIMENTO NON SUPERVISIONATO: concetti generali


1. Le caratteristiche dell’apprendimento non supervisionato: vantaggi e svantaggi
2. differenze principali tra apprendimento supervisionato e non supervisionato
3. Metodi e approcci per far sì che l’informazione non necessaria sia eliminata e la rete apprenda
rappresentazioni utili
4. come avviene la riduzione della dimensionalità con reti neurali tramite l’apprendimento
hebbiano?
5. spiega in che modo la regola di hebb scopre correlazione nei dati
6. spiega la dinamica definita “winner take all”
7. come funziona l’apprendimento nelle reti dette self-organizing maps (reti di Kohonen)
8. in cosa consiste la PCA e perchè si utilizza. quali sono i vantaggi?
9. Ambiti di applicazione delle reti di Kohonen

APPRENDIMENTO NON SUPERVISIONATO


1. Analogie tra meccanica statistica di Ising e reti di Hopfield
2. Architettura delle reti di Hopfield
3. perchè si definiscono memorie associative “energy-based”
4. Spiegare la formula dell’energia E di una certa configurazione, nelle reti di Hopfield
5. Come avviene l’apprendimento nelle reti di Hopfield?
6. Quale è lo scopo dell’apprendimento nelle reti di Hopfield?
7. Spiega la dinamica stocastica
8. Spiega il parametro temperatura: simulated annealing

MODELLI GENERATIVI: BOLTZMANN


1. spiega le dinamiche delle reti neurali generative sfruttando l’ottica bayesiana
2. differenze principali tra le reti di Hopfield e di Boltzmann
3. perchè si definisce RISTRETTA la macchina di boltzmann a meccanismi ristretti?
4. perchè è utile sovrapporre varie RBMs
5. districare manifolds: read out lineare come si ottiene
6. spiegare il meccanismo di apprendimento di rappresentazioni astratte con deep learning non
supervisionato
MODELLI COMPUTAZIONALI

1. Differenze tra modelli matematici e computazionali


2. descrizione del modello Pandemonium proposto da Selfridge
3. caratteristiche e problematiche tipiche dei modelli connessionisti localistici
4. caratteristiche e problematiche tipiche dei modelli connessionisti PDP
5. descrizione del Interactive Activation Model
6. spiega cosa sia l’effetto contesto e la formalizzazione in rete neurale dello stesso
7. Le fasi della modellizzazione
8. cosa si intende per adeguatezza descrittiva
9. spiega i principi di completezza e sufficienza
10. come scegliere tra due teorie apparentemente uguali?
11. Criteri di valutazione di un modello: quali sono
12. Quali fattori possono determinare il successo o il fallimento di un modello?
13. esempi di modelli computazionali
14. quali vantaggi offre l’estrazione di features visive naturali

DOMANDE
1. Spiega come la regola di Hebb possa essere utile per scoprire regolarità statistiche
2. perché l’apprendimento competitivo può essere definito una forma localistica di riduzione della
dimensionalità
3. apprendimento hebbiano: applicazioni nel campo dell’apprendimento supervisionato e non
supervisionato
4. spiega l’applicazione della tecnica simulated annealing nelle reti di Hopfield e nelle reti di
Boltzmann
5. quale è il vantaggio nell’utilizzo di una funzione stocastica (sigmoide) rispetto ad una funzione
deterministica (a scalino) nelle reti di Hopfield
6. i limiti principali delle reti di Hopfield e possibili modifiche per superarli
7. divergenza contrastiva: in cosa consiste. perché la fase positiva viene definita “data driven”,
mentre quella negativa “model driven”. come avviene l’aggiornamento dei pesi.
8. riporta l’esempio pratico di estrazione di features visive da immagini naturali
Definizione rete neurale artificiale
Una rete neurale non è altro che un algoritmo di natura statistica che dato in input un insieme di
dati ci fornisce in output un altro insieme di dati correlato all'input. La particolarità è che noi non
gli forniamo la funzione statistica che correla output a input: è la rete neurale stessa che la "scopre"
durante un processo che si chiama "fase di apprendimento".
• Ogni cerchio è un "neurone", che ha vari input e output (frecce nere);
• Ogni freccia indica il collegamento che c'è tra un neurone e l'altro, in pratica come ogni
informazione passa da un neurone all'altro. Non tutta l'informazione (rappresentata come un valore
numerico) viene passata al neurone successivo, ma essa viene moltiplicata per il "peso" del
collegamento.
• I neuroni sono raggruppati in livelli: quello di input, che riceve le informazioni di input, quello
"nascosto", e quello di output, con 2 neuroni in questo caso.
Durante la fase di apprendimento di una rete neurale, la rete neurale indovina la funzione statistica
di correlazione tra input e output andando ad agire sui pesi delle connessioni.

Spiegare come si passa matematicamente dall’input all’output


I neuroni di una rete hanno connessioni con gli altri neuroni. Le connessioni hanno associato un
peso sinaptico, cioè un valore numerico che definisce la forza della connessione tra neuroni. Per lo
strato iniziale, lo strato visibile (input layer) abbiamo un’inizializzazione casuale dei pesi, che verrà
mano a mano aggiustata tramite il calcolo della funzione d’errore. L’output di un neurone si calcola
con la funzione di attivazione (per esempio la funzione di attivazione sigmoide, continua) ed è
determinato dall’input totale del neurone, cioè dalla sommatoria di tutte le attivazioni dei neuroni
con cui è connesso.
Il formalismo matematico con cui spiegare questo concetto è il seguente ed è generale:
oi = f (neti )
dove i indica il neurone d’input. f la funzione d’attivazione della rete.
A seconda della tipologia di rete, variano i fattori che influiscono sull’output. In una rete neurale
semplice costituita da due strati, uno di input e uno di output, avremo che l’o. è determinato solo
dalla sommatoria delle attivazioni dei neuroni con cui è connesso, moltiplicati per i rispettivi pesi.
In una rete profonda, con un solo strato nascosto, l’output sarà determinato dall’attivazione dello
strato nascosto e i rispettivi pesi. In una rete ricorrente di Jordan l’output dello strato nascosto è
determinato sia dalle attivazioni dei neuroni dello strato di input, sia da quelli dello strato contesto.
Vale però sempre la regola per cui l’output è calcolato tramite la funzione di attivazione totale dei
neuroni connessi a quel neurone.
Spiega come la regola di hebb possa essere impiegata per ricercare regolarità statistiche.
Estrarre regolarità statistiche dai dati, nell’ambito del machine learning significa ridurre la
dimensionalità dei dati e quindi identificare l’insieme di features realmente indicative e descrittive
dell’input. La regola dell’apprendimento hebbiano è utilizzata nell’ambito del machine learning
per scoprire regolarità statistiche, ovvero le correlazioni tra dati, e la covarianza. Secondo tale
regola, infatti, neuroni che tendono ad essere contemporaneamente accesi (o spenti) sviluppano forti
connessioni eccitatorie, mentre neuroni con attivazione asincrona e discordante, sviluppano
connessioni inibitorie. Nel deep learning per ridurre la dimensionalità tramite apprendimento
hebbiano il clustering e l’estrazione di features. Tramite clustering si riduce il numero di esempi
raggruppandoli creando dei “prototipi” (da una griglia di dati si eliminano le righe, associate a
soggetti diversi); tramite estrazione di features si riduce il numero di descrittori, eliminando quelli
meno informativi o creandone di più astratti (da una griglia di dati si eliminano le colonne)

Meccanismo di apprendimento di rappresentazioni astratte con deep learning non supervisionato


Si definisce deep learning il meccanismo di apprendimento che prevede la presenza di neuroni
nascosti nella struttura della rete. I neuroni nascosti sono una stazione che mette in comunicazione
lo strato di input con quello di output. La complessità della rete è definita dalla quantità di neuroni
nascosti presenti. La caratteristica essenziale di questi è la capacità di estrarre dalle info in ingresso
regolarità statistiche sulla base delle quali creano una rappresentazione interna del pattern in input.
lo scopo dell’apprendimento con deep learning è proprio quello di creare rappresentazioni di
concetti sempre più sofisticate ed astratte, esattamente come è in gradi di fare il cervello biologico.
Nel Deep Learning, il sistema stesso identifica nei dati le caratteristiche distintive adeguate, senza
la necessità di una categorizzazione dall’esterno. L’addestramento da parte di uno sviluppatore non
è necessario.

Apprendimento supervisionato e non supervisionato


Nell’apprendimento supervisionato, lo scopo è quello di predire il valore in uscita sulla base di
caratteristiche e parametri in ingresso. Quando prediciamo output quantitativi parliamo di
regressione; al contrario per output qualitativo, categoriale parliamo di classificazione. Oltre che i
valori in input, etichettati da un teacher esterno, abbiamo a disposizione un insieme di valori della
misura di output desiderato. Un esempio classico sono i problemi di classificazione: dato un
insieme, vogliamo determinare un criterio per assegnare ad alcuni suoi elementi il valore 1, e ad
altri il valore 0 (o -1). Vogliamo cioè isolare un sottoinsieme del nostro dominio, di cui conosciamo
a priori solo alcuni elementi. Nel pratico si può considerare un’immagine e richiedere ad una
funzione di distinguere se contenga gatti o meno. Si basano tutti sull’idea di definire a priori una
funzione di costo C dipendente dalla differenza fra l’output desiderato e l’output calcolato dalla
rete, e poi minimizzare questa quantità modificando i pesi delle diverse connessioni.
Nell’apprendimento non supervisionato non c’è alcun valore da predire. L’obiettivo è descrivere
associazioni e relazioni tra variabili, mediante valori di ingresso. La modifica dei pesi, in questo
caso fa riferimento alle sole variabili di ingresso. Gli algoritmi di apprendimento non supervisionato
raggruppano i dati in ingresso individuando cluster cioè prototipi degli stessi o estraendone
caratteristiche descrittive, astratte e complesse.
Reti di Hopfield
Apprendimento non supervisionato: la regola di Hebb utilizzata in caso di memorie associative.
Le reti di Hopfield prendono ispirazione dalla meccanica statistica, in particolare dai modelli di
Ising. Le reti di Hopfield hanno un’architettura ricorrente, con neuroni totalmente connessi. I pesi
sono simmetrici e le connessioni bidirezionali. Non ci sono auto connessioni né neuroni nascosti.
Tutti i neuroni sono visibili. Ad ogni neurone corrisponde una variabile in input (un pattern di pixel
in ingresso). Una rete di H. può memorizzare e recuperare immagini basandosi su pattern rumorosi
o non completi. La memorizzazione avviene cambiando gradualmente la forza delle connessioni. Il
recupero, invece, avviene con la modifica e l’aggiornamento dello stato dei neuroni, fino al
raggiungimento di uno stato di equilibrio. La rete di hopfield si basa su funzione di energia (ripresa
appunto dalla meccanica di Ising). La funzione di energia viene definita dalla sommatoria della
coattivazione pesata di tutti i neuroni (coppia di neuroni). La funzione può essere immaginata come
un insieme di minimi e massimi locali. Lo scopo dell’apprendimento è quello di abbassare i livelli
di energia in funzione dei pattern da memorizzare (minimo locale= attrattore del pattern). Allo
stesso modo, ogni configurazione improbabile viene associata ad un elevato livello di energia. Ogni
minimo locale è considerato attrattore e associato ad uno specifico pattern che verrà recuperato
quando l’aggiornamento della funzione si assesta su tale minimo locale.
I neuroni hanno stati binari -1 o 1 e la loro attivazione si calcola tramite la funzione di soglia o
funzione di attivazione a scalino. Per impostare i pesi in maniera appropriata, garantendo la
possibilità che la rete converga sempre verso uno stato di equilibrio, si utilizza la regola di
apprendimento hebbiano.
Due limiti importanti delle reti di H. rigurdano
1) L’assenza di neuroni nascosti. Questo comporta l’incapacità della rete di estrarre features
complesse
2) Possono immagazzinare un numero limitato di pattern che corrisponde a 0,138*k dove k
rappresenta il numero di neuroni. Incrementando il numero di pattern da memorizzare rischiamo
che la rete apprenda memorie sbagliate, incappiamo cioè nel problema degli attrattori spuri: finti
minimi locali sui quali la funzione si assesta erroneamente.
Il primo problema può essere risolto aggiungendo alla rete unità nascoste, implementati nelle reti
di Boltzmann.
Inoltre per evitare di incappare in cattivi minimi locali, è possibile sostituire la funzione
deterministica con una funzione stocastica sigmoide, che considera il parametro temperatura.
Manipolando la temperatura che definisce quanto la dinamica del sistema sarà casuale/ rumorosa,
si varia la curvatura della sigmoide.
Il metodo simulated annealing inizia da una configurazione iniziale casuale, ad elevati livelli di
temperatura, in un sistema con energia E° e i pesi sono inizializzati casualmente. Vengono generate
configurazioni successive con piccole perturbazioni casuali della configurazione corrente,
diminuendo gradualmente la temperatura e dunque il livello di energia, fino a che non si assesta a
basse temperature e recupera il pattern.
Ad elevate temperature, tutti gli stati di energia e dunque tutte le configurazioni sono probabilmente
possibili; mentre a basse temperature il sistema si trova sicuramente a livelli bassi di energia.
Le reti di Boltzmann rientrano tra i modelli di deep learning non supervisionato. Sono modelli
generativi. In un primo momento l’architettura era costituita da due strati, uno di neuroni visibili e
uno di neuroni nascosti totalmente connessi. La rete risultava estremamente dispendiosa dal punto
di vista computazionale. Nel 2002, Hinton propone una modifica all’architettura eliminando le
connessioni intra-layer (ciò garantisce l’indipendenza dei neuroni nascosti e la possibilità di
calcolarne l’attivazione singolarmente). Questa nuova architettura prende il nome di Restricted
Boltzmann Machines. L’apprendimento prevede che la rete estragga features da immagini naturali
e che impari a manipolarle creandosi dei modelli interni e che generalizzi questi modelli.
L’addestramento avviene secondo una tecnica definita divergenza contrastiva: prevede una fase
positiva o data-driven e una fase negativa o model-driven. la modifica dei pesi delle connessioni,
avviene secondo uno schema preciso: viene fatto il confronto tra le attivazioni delle unità visibili e
quelle nascoste in fase positiva e in fase negativa. Durante la fase positiva la variabile in ingresso
viene registrata tale e quale nei neuroni in input e trasmessa alle unità nascoste. L’attivazione delle
unità nascoste si calcola tramite la funzione di attivazione stocastica. Si calcola dunque la
correlazione tra unità visibili e nascoste, in questa fase. Dopodiché dalle attivazioni delle unità
nascoste, si generano le attivazioni in input sempre tramite funzione di attivazione stocastica cioè
abbiamo la generazione top-down di input sensoriale. Partendo da queste nuove attivazioni visibili
si calcolano quelle nascoste. Viene calcolata la correlazione tra unità di input e output. È possibile
fare in modo che la macchina apprenda features sempre più complesse e astratte sovrapponendo
molteplici reti di B. in modo tale che l’output delle unità nascoste della prima funzionino da input
per i neuroni visibili della seconda (2006, Hinton). Nel 2012 Google ha sviluppato una rete neurale
così costruita, con 10 strati. Questa è stata sottoposta ad apprendimento intensivo per 3 giorni. Senza
supervisione, la rete ha imparato ad apprendere il concetto di faccia.

Reti parzialmente ricorrenti (o reti ricorrenti semplici)


Sono reti neurali in grado di elaborare sequenze temporali di input, grazie alla presenza di
connessioni ricorrenti tra neuroni dello stesso strato o di strati diversi. Lo stato S(t) di una rete
ricorrente dipende dallo stato S(t-1), cioè immediatamente precedente, ma anche dagli stati passati
che vengono “memorizzati” nella rete.
Le reti neurali ricorrenti permettono di ricordare dati che potrebbero risultare significativi nel corso
del processo che si vuole studiare.

Le reti di Jordan
Sono un esempio di reti neurali ricorrenti semplici. La connessione ricorrente parte dalle unità di
output e raggiunge i neuroni contesto, la cui attivazione è determinata dalle auto-connessioni che
ciascun neurone contesto ha con se stesso e dalle attivazioni che riceve dalle unità di output della
rete. Il neurone contesto si aggiorna sulla base dello stato precedente del neurone di output e sugli
stati passati. È possibile addestrare le reti di jordan tramite algoritmo di back-propagation,
trasformando le strutture ricorrenti in reti statiche feed-forward concatenate, in modo che l’output
della prima rete diventi l’input ricorrente nella seconda rete e ne influenzi le unità di input.
L’apprendimento avviene tramite aggiornamento dei pesi ad ogni livello. Ogni livello è un passo
nel tempo.
Applicazioni delle reti di jordan: riconoscimento del parlato, riconoscimento di azioni, predizione
dinamica di oggetti in movimento, generazione di testo o musica.
Le reti di Elman prevedono che le connessioni ricorrenti siano tra le unità nascoste e i neuroni
contesto. Dunque utilizzano le rappresentazioni interne che contengono sia lo stato precedente di
input sia lo stato futuro dell’output. Per ogni neurone presente nello strato nascosto si aggiunge
un’unità di contesto che riceve come input l’output del neurone nascosto corrispondente, e
restituisce il proprio output allo stesso neurone nascosto. L’idea alla base: ricevendo in input una
sequenza di dati si elabora una nuova sequenza di dati in output ottenuta ricalcolando
successivamente i dati degli stessi neuroni.

Le reti di kohonen o mappe auto-organizzanti sono reti neurali artificiali feed-forward addestrate
con algoritmi di apprendimento non supervisionato. Hanno due strati costituenti: uno strato di input
e un layer competitivo output i cui neuroni sono connessi gli uni con gli altri (con meccanismi di
inibizione laterale) e con sé stessi (autoconnessione). La struttura topologica dello strato
competitivo è definita da una funzione di vicinato rappresentata “a cappello messicano” o tramite
curva di gauss, in cui neuroni vicini avranno connessioni forti eccitatorie, che andranno ad
indebolirsi per neuroni sempre più lontani, fino a diventare inibitorie e poi nulle per i neuroni
estremamente lontani. L’apprendimento competitivo è definito dalla dinamica winner takes all: per
ogni input fornito alla rete, un solo neurone in output risulterà vincitore con il massimo
dell’attivazione (=1). Il neurone vincente identifica la classe d’appartenenza dell’input e
rappresenta il prototipo della variabile in ingresso. Lo scopo dell’apprendimento è avere per input
simili, neuroni vincenti vicini (individuare in un certo insieme, partizioni di dati omogenei). È un
esempio di funzione plausibile biologicamente: pensiamo alla corteccia somatosensoriale.

Sono molteplici i fattori che hanno contribuito allo sviluppo del deep learning:
- L’avvento dei big data, cioè grandi quantità di dati utilizzati come training set digitali
- L’ottimizzazione dei processori di calcolo. Pensiamo all’hardware GPU che oltre essere più
piccolo, maneggevole e veloce dei predecessori, permette un’elaborazione massiva di dati in
parallelo.
- L’attenzione al campo dell’ingegneria neuromorfica, il cui principio è quello di creare sistemi
artificiali che traggano ispirazione e si modellino sulla base dei neuroni biologici. i memristori sono
un tipo di semiconduttori la cui resistenza varia in funzione del flusso di corrente e della carica.
Questi componenti sono estremamente veloci e consumano molta meno energia.
- L’interesse per la computer vision ha stimolato e supportato lo sviluppo di reti sempre più
plausibili dal punto di vista biologico, un esempio sono le reti neurali convoluzionali.
Altri fattori che hanno contribuito: l’inizializzazione dei pesi non casuale, un learning rate in grado
di modificarsi in modo coerente con il gradiente, l’ingrandirsi delle macchine con un’ottimizzazione
delle tecniche di regolarizzazione, funzioni di attivazione che prevengono il vanishing gradient

PERCETTRONE
Per trovare un vettore che classifichi correttamente un insieme di esempi nasce la regola di
apprendimento del percettrone, una delle prime regole di apprendimento supervisionato per un
neurone artificiale. Consideriamo il neurone j da addestrare, che riceva n input reali e restituisca
output binario (anche se può essere usata una regola analoga nel caso di output bipolare). Scegliamo
il vettore di pesi iniziale e il bias iniziale. Per aggiornare i pesi, dato un esempio, se L’OUTPUT
DELLA RETE è UGUALE AL TARGET DESIDERATO , i pesi restano invariati; • se l’output
effettivo è diverso da quello desiderato, si aggiornano i pesi calcolando il prodotto tra il tasso di
apprendimento, il target e il valore di input.
Si può dimostrare che, qualora esistano un vettore di pesi e un bias che classificano correttamente
un insieme di esempi, l’algoritmo del percettrone converge a una soluzione in un numero finito di
passi. Questa regola è dunque molto utile nell’addestramento di separatori lineari, applicabile
esclusivamente a problemi linearmente separabili.

REGOLA DELTA
Metodo di addestramento della rete che punta alla minimizzazione dell’errore tramite discesa del
gradiente. Si basa sullo scarto quadratico medio tra output e target (output desiderato). Questo
metodo di aggiornamento dei pesi permette di ottenere in output una soluzione che approssimi al
meglio il concetto target. Si sceglie un punto di partenza w0 nel dominio, poi ci si muove
iterativamente nella direzione opposta al gradiente (che indica direzione di crescita di E[w]. È
possibile addestrare una rete cercando di minimizzare contemporaneamente tutti gli addendi che
compongono E, nel qual caso si parla di addestramento batch, oppure si considera gli esempi in
modo isolato e si calcolano gli output effettivi uno per volta, nel qual caso si parla di addestramento
online.

Un primo problema comune ad ogni applicazione del metodo dei gradienti: questo metodo cerca
iterativamente un minimo di una funzione "scorrendo" il grafico, ma si può facilmente incastrare in
minimi locali. una possibile tecnica per evitare i minimi locali è modificare il metodo aggiungendo
una componente di "rumore artificiale" con distribuzione gaussiana, la cui media sia nulla e la cui
varianza diminuisca con l’avanzare delle iterazioni (annealing). Questo rumore permette di evitare
soluzioni subottimali, permettendo di evitare le valli del grafico che non siano dei minimi globali,
e la diminuzione graduale della componente stocastica fa sì che questa non comprometta la
convergenza. Un secondo problema è la scelta del tasso di apprendimento η: un tasso troppo grande
può risultare nella mancata convergenza del metodo, mentre un tasso troppo piccolo rende la
convergenza più probabile, ma anche molto più lenta. Per affrontare questo problema sono state
proposte varianti del metodo in cui ad ogni modifica del peso si aggiunge una componente che
rappresenta una sorta di "quantità di moto" (momentum) secondo la formula con α costante che
determina l’effetto di ogni passo del cambiamento di peso sul passo successivo. Questo
cambiamento permette di evitare grandi oscillazioni qualora si scelga un tasso di apprendimento
alto, consentendo di accelerare il processo di minimizzazione evitando rischi

Backpropagation
La backpropagation, semplificando e senza entrare nei dettagli matematici, non è altro che un
metodo di apprendimento delle reti neurali che funziona in questo modo:
1. Dò alla rete neurale l'input e calcolo l'output con pesi random.
2. Calcolo la differenza tra output ottenuto e output atteso (Errore della rete).
3. Con questo errore vado a modificare i pesi dei livelli nascosti e poi dell'input, prima agendo su
quelli più vicini all'output e poi man mano sempre più lontani, andando all'indietro rispetto a come
si muove normalmente l'informazione all'interno di una rete (input -> output).
4. Ricomincio dal punto 1 con una nuova coppia di input-output, senza però randomizzare i pesi.

Il problema della scomparsa del gradiente ( vanishing gradient problem) è un fenomeno che crea
difficoltà nell'addestramento delle reti neurali profonde tramite retropropagazione dell'errore
mediante discesa stocastica del gradiente. Il gradiente diminuisce col passare del tempo e delle
iterazioni, fino a diventare così piccolo da svanire, non riuscendo quindi ad aggiornare i pesi. Se
aggiungiamo molteplici strati nascosti, il segnale d’errore dovrà superare più livelli di retro-
propagazione prima di arrivare a quelli di input. In particolare il problema è evidente con la funzione
di attivazione sigmoide che tende a saturare, e quindi tende a zero, quando la somma pesata degli
input è troppo grande o piccola. Il cambiamento di peso è proporzionale alla derivata della funzione
di attivazione calcolata nello stato interno del neurone. Questo significa che nel momento in cui i
pesi diventano molto grandi, la derivata della funzione di attivazione tenda a zero, portando i
cambiamenti nei pesi a diventare sempre più piccoli. Questo fa sì che il neurone diventi lento ad
imparare dopo una certa quantità di esempi.

Potrebbero piacerti anche