Uploaded by Riccardo Cataldi

Appunti SI completi

advertisement
Appunti di Sistemi Intelligenti
Marco Gasparri
(capitolo 6 e alcune aggiunte a tutti gli altri,
raccolta materiale e integrazione)
Silvio Bernardinello
(capitoli 1, 3 e 4)
Laura Renoldi, Simone Oberti, Riccardo Perego
(parti dei capitoli 2, 5 e 7)
Sconosciuto
(capitolo 8 e molte informazioni integrate specifiche
per rispondere alle domande maggiormente frequenti)
17 febbraio 2014
2
Indice
1 Introduzione
1.1 Sistemi intelligenti . . . . . . . . . . . . .
1.1.1 Intelligenza . . . . . . . . . . . . .
1.1.2 Intelligenza nelle macchine . . . .
1.2 La macchina di Turing . . . . . . . . . . .
1.2.1 Tesi di Church . . . . . . . . . . .
1.2.2 Dimostrazione di Turing . . . . . .
1.2.3 Struttura della macchina di Turing
1.2.4 Conclusioni . . . . . . . . . . . . .
1.3 Macchine e mente . . . . . . . . . . . . . .
1.3.1 Intelligenza classica . . . . . . . .
1.3.2 Critiche all’AI classica . . . . . . .
1.3.3 Searle e la stanza cinese . . . . . .
1.3.4 Un contradditorio . . . . . . . . .
1.3.5 Emergenza dell’ipotesi forte dell’AI
1.4 Riassunto (utile per esame) . . . . . . . .
1.4.1 Test di Turing . . . . . . . . . . .
1.4.2 Stanza cinese . . . . . . . . . . . .
1.4.3 Ipotesi forte AI . . . . . . . . . . .
1.4.4 Ipotesi debole AI . . . . . . . . . .
1.4.5 Contradditorio . . . . . . . . . . .
1.4.6 Prostgetic experiment . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
7
8
8
8
9
10
10
10
11
12
12
13
14
14
15
15
16
16
16
2 Fuzzy Systems
2.1 Logica Fuzzy . . . . . . . . . . . . . . .
2.1.1 Cenni introduttivi . . . . . . . .
2.1.2 Fuzzy Set . . . . . . . . . . . . .
2.1.3 Fuzzyness vs Probabilità . . . . .
2.1.4 T-norm . . . . . . . . . . . . . .
2.1.5 Entropia e Distanza Fuzzy . . . .
2.2 Sistemi Fuzzy . . . . . . . . . . . . . . .
2.2.1 Introduzione . . . . . . . . . . .
2.2.2 FAM: Fuzzy Associative Memory
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
19
21
21
21
23
23
23
3
.
.
.
.
.
.
.
.
.
4
INDICE
3 Apprendimento con rinforzo
25
3.1 Elementi dell’apprendimento con rinforzo . . . . . . . . . . . . . 26
4 Evaluative Feedback
4.1 Apprendimento in un setting non associativo
4.2 N -Armed Bandit Problem . . . . . . . . . . .
4.3 Action-Value Methods . . . . . . . . . . . . .
4.4 Incremental Implementation . . . . . . . . . .
4.5 Tracking a NonStationary Problem . . . . . .
4.6 Optimistic Initial Values . . . . . . . . . . . .
4.7 Pursuit Methods . . . . . . . . . . . . . . . .
5 The
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
29
30
31
32
32
33
Reinforcemente Learning Problem
The Agent - Environment Interface . . . . . . . . . .
Goals and Rewards . . . . . . . . . . . . . . . . . . .
Returns . . . . . . . . . . . . . . . . . . . . . . . . .
Unified Notation for Episodic and Continuing Tasks
The Markov Property . . . . . . . . . . . . . . . . .
5.5.1 Markov Property . . . . . . . . . . . . . . . .
Markov Decision Processes . . . . . . . . . . . . . . .
Value Functions . . . . . . . . . . . . . . . . . . . . .
5.7.1 State value Function . . . . . . . . . . . . . .
5.7.2 Bellman equation for V π . . . . . . . . . . .
Optimal Value Functions . . . . . . . . . . . . . . . .
5.8.1 Esempio 3.9 Golf . . . . . . . . . . . . . . . .
Policy Evaluation . . . . . . . . . . . . . . . . . . . .
5.9.1 Esempio: griglia . . . . . . . . . . . . . . . .
Temporal Difference (TD) . . . . . . . . . . . . . . .
Esempio: guida verso casa . . . . . . . . . . . . . . .
Algoritmo SARSA . . . . . . . . . . . . . . . . . . .
5.12.1 Algoritmo . . . . . . . . . . . . . . . . . . . .
5.12.2 Condizioni iniziali Q(s0 , a0 ) . . . . . . . . . .
Algoritmo Q-Learning . . . . . . . . . . . . . . . . .
5.13.1 Algoritmo . . . . . . . . . . . . . . . . . . . .
Elegibility trace e TD(λ) . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
36
36
37
38
39
40
41
41
42
43
44
44
46
48
50
52
52
53
54
54
55
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Intelligenza biologica
59
6.1 Il neurone biologico . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.1.1 Struttura del neurone . . . . . . . . . . . . . . . . . . . . 60
6.1.2 Sinapsi (trasmissione dell’informazione tra neuroni) . . . 61
6.1.3 Funzionamento sopra e sotto soglia (trasmissione dell’informazione all’interno del neurone) . . . . . . . . . . . . . 62
6.1.4 Potenziale recettoriale . . . . . . . . . . . . . . . . . . . . 62
6.1.5 Classificazione dei neuroni . . . . . . . . . . . . . . . . . . 62
6.1.6 Aree cerebrali principali . . . . . . . . . . . . . . . . . . . 63
6.1.7 Elaborazione di uno stimolo . . . . . . . . . . . . . . . . . 63
INDICE
6.2
6.3
5
6.1.8 Esecuzione dei movimenti volontari di uno
6.1.9 Codice di popolazione . . . . . . . . . . .
6.1.10 I neuroni-specchio . . . . . . . . . . . . .
Algoritmi genetici . . . . . . . . . . . . . . . . . .
6.2.1 Evoluzione e terminologia . . . . . . . . .
6.2.2 Algoritmi genetici . . . . . . . . . . . . .
6.2.3 Ottimizzazione evoluzionistica . . . . . .
Reti neurali . . . . . . . . . . . . . . . . . . . . .
6.3.1 Introduzione . . . . . . . . . . . . . . . .
6.3.2 Dal neurone artificiale alle reti neurali . .
6.3.3 Modello di McCulloch-Pitts (1943) . . . .
6.3.4 Spiking neurons . . . . . . . . . . . . . . .
6.3.5 Rete neurale a più livelli . . . . . . . . . .
6.3.6 L’apprendimento in reti di perceptroni . .
6.3.7 Caso lineare e non lineare . . . . . . . . .
6.3.8 Termine dell’apprendimento . . . . . . . .
6.3.9 Riepilogo . . . . . . . . . . . . . . . . . .
stimolo
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
7 Apprendimento e Clustering
7.1 Apprendimento . . . . . . . . . . . . . . . . . . . .
7.1.1 Tipologie . . . . . . . . . . . . . . . . . . .
7.2 Clustering . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Clustering e classificazione . . . . . . . . . .
7.2.2 Tipologie principali di clustering . . . . . .
7.2.3 Altre tipologie di clustering . . . . . . . . .
7.2.4 Algoritmi di clustering . . . . . . . . . . . .
7.2.5 Regressione (predictive learning) e modelli .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
64
64
65
66
66
67
68
70
70
70
71
72
73
74
76
77
78
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
79
80
80
81
82
82
85
8 Realtà virtuale
87
8.1 Componenti principali . . . . . . . . . . . . . . . . . . . . . . . . 87
8.2 Descrizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.3 L’ambiente virtuale . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6
INDICE
Capitolo 1
Un sistema intelligente è un software in grado di analizzare
l'ambiente circostante, decidere un piano d'azione razionale e
apprendere conoscenza nel corso del tempo.
Introduzione
1.1
1.1.1
Sistemi intelligenti
Intelligenza
Esistono diversi tipi di intelligenze. Per citarne qualcuna
• linguistico-verbale
• logico-matematica
• musicale
• ...
In termini più operativi, l’intelligenza è una funzione attiva che consente
a breve termine di trovare soluzioni nuove a problemi di interazione con
l’ambiente. Essa è la capacità di destreggiarsi in situazioni nuove o insolite
cogliendo i significati e relazioni tra gli oggetti senza passare necessariamente
per tentativi o addestramento, dove
• destreggiarsi significa agire congruentemente con un’analisi della situazione
• cogliere le relazioni tra oggetti o situazioni significa riuscire a creare associazioni tra situazioni simili
1.1.2
Intelligenza nelle macchine
L’intelligenza relativa alle macchine si può suddividere in due tipi: forte o debole.
• AI debole significa dotare la macchina di capacità di risolvere i problemi,
ovvero implementando al suo interno algoritmi o ragionamenti espliciti
(inferenza logica)
7
8
CAPITOLO 1. INTRODUZIONE
• AI forte significa invece dotarle di una struttura per auto-apprendere la
soluzione dei problemi (apprendimento sub-simbolico)
1.2
La macchina di Turing
Sin dai primi del ’900, ci si chiedeva in ambito matematico se fosse possibile
automatizzare le dimostrazioni (Hilbert). In particolare, si cercava di creare un
ponte tra la logica e la matematica, ovvero si voleva esprimere espressioni matematiche come espressioni logiche in modo che la dimostrazione di tali espressioni
logiche potesse portare alla dimostrazione di teoremi.
Problema: teorema di incompletezza di Godel : Qualunque sistema
coerente di logica formale deve comprendere enunciati veri di cui non è possibile
dare una dimostrazione
Ciò ha spostato l’attenzione della logica dal concetto di verità a quello di
provabilità.
1.2.1
Tesi di Church
Ogni funzione che sia effettivamente calcolabile è ricorsivamente calcolabile.
• effettivamente significa che esiste una procedura meccanica in grado di
calcolare la funzione in tempo finito
• ricorsivamente significa che esiste un insieme finito di operazioni aritmetiche elementari che, applicate all’ingresso e poi ai risultati successivi delle
operazioni stesse, conducono in un tempo finito al valore della funzione
1.2.2
Dimostrazione di Turing
Qualsiasi funzione ricorsivamente computabile può essere calcolata in un tempo
finito da una macchina manipolatrice di simboli (macchina universale di
Turing).
Un algoritmo eseguibile dalla macchina di Turing è detto esattamente computabile.
Per rispondere alla domanda originaria (Si può arrivare alle dimostrazioni
automatiche? ) si cerca quindi di seguire il seguente procedimento:
1. Soluzione matematica di un problema
2. Computazione
3. Metodo di computazione (un algoritmo)
4. Macchina computazionale
1.2. LA MACCHINA DI TURING
9
Il metodo di computazione è un algoritmo, ovvero un insieme di passi elementari automatici. Dato un tempo finito, la macchina di Turing è in grado di
effettuare qualunque calcolo che possa essere eseguito da un moderno calcolatore digitale, di qualunque potenza esso sia. La macchina di Turing realizza un
algoritmo, computabile.
Un calcolatore digitale tradizionale, purché abbia il programma giusto, una
memoria abbastanza grande e tempo a sufficienza, può calcolare qualsiasi funzione tra ingresso ed uscita governata da regole (che siano meccaniche e deterministiche). Può cioè fornire in ogni caso un’uscita adeguata in funzione
degli input forniti dall’ambiente e dallo stato (che riassume la storia degli input
dell’ambiente). Il problema diventa quindi definire il programma, ovvero dare una definizione simbolica (algoritmo) o sub-simbolica (definire un linguaggio
macchina).
1.2.3
Struttura della macchina di Turing
Una possibile implementazione della macchina di Turing è formata da
1. una testina di scrittura e lettura
2. un nastro infinito (suddiviso in celle)
3. un sistema di controllo dello spostamento
4. un alfabeto A[a0 , a1 , ..., an ]
5. uno stato S[s0 , s1 , ..., sn ]: ciascuno stato viene definito mediante gli effetti
che un’azione ha sulla macchina stessa
6. un’insieme di direzioni per la testina (sx, dx, stop): d[d1 , d2 , d3 ]
7. un’insieme di istruzioni (che sono una terna di valori) I = {Ij (sj , aj →
sk , ak , dk ), ∀j}, dove sk , ak , dk sono delle opportune funzioni, ovvero
• sk = f (sj , aj )
• ak = g(sj , aj )
• dk = h(sj , aj )
10
CAPITOLO 1. INTRODUZIONE
Proprietà
:
• non ci sono limiti alla lunghezza della parola
• ogni simbolo occupa una ed una sola cella
• la testina può cancellare o leggere un simbolo per volta
Dato quindi un problema, ∃ 3 funzioni che risolvono automaticamente il
problema. Per far risolvere il problema alla macchina, occorre determinare
queste tre funzioni.
La macchina universale di Turing : È stato dimostrato che ∃ una macchina universale alla quale possono corrispondere diverse macchine di Turing
equivalenti.
1.2.4
Conclusioni
La macchina di Turing universale consente di rappresentare un qualunque algoritmo ed una qualunque funzione computabile. Essa è basata su operazioni elementari su un alfabeto di simboli, molto simile al funzionamento di un
calcolatore elettronico.
La macchina di Turing si pone quindi come soluzione operativa di un qualsiasi
problema risolvibile. Che relazione ha questa proprietà con l’intelligenza? La
macchina di Turing è uno strumento intelligente o no?
1.3
Macchine e mente
1.3.1
Intelligenza classica
L’intelligenza artificiale classica si basa pesantemente sulla tesi di Church
e sulla macchina di Turing: un sistema intelligente è in quest’ambito nient’altro che una funzione (complessa a piacere) da identificare ed implementarla in
software.
Test di Turing - 1950 : Turing creò anche un test per determinare se un
sistema è intelligente. Il test è composto da tre attori:
1. una persona
2. un sistema da definire se intelligente o meno
3. un osservatore esterno che ascolta la comunicazione tra gli altri due attori
L’osservatore non sa chi è la macchina è chi l’uomo. Se ascoltando la comunicazione non capisce chi sia chi, allora la macchina si può definire intelligente.
Questa rappresentazione di un sistema intelligente consiste solo nel trovare una funzione complessa a piacere. Tale funzione non deve necessariamente
funzionare come la mente umana, ma dev’essere funzionale all’hardware.
1.3. MACCHINE E MENTE
11
Intelligenza : l’unico problema è di identificare la funzione, indubbiamente
complessa, che governa la struttura delle risposte umane all’ambiente e poi scrivere il programma (ovvero l’insieme delle regole applicabili ricorsivamente) per
mezzo del quale la macchina la calcola.
L’ipotesi di base (ipotesi debole o cauta sull’IA) è che il cervello e la
macchina di Turing sono molto diversi.
Questa visione ha portato, con il tempo, a delle critiche.
1.3.2
Critiche all’AI classica
Dreyfus - 1972
Ad una macchina manca il vasto cumulo di conoscenze di base inarticolate che
ogni persona possiede e la capacità che ha il buon senso di sfruttare gli aspetti
utili di tale conoscenze al mutare delle circostanze. Pensiero ed intelligenza
non possono ridursi solamente alla manipolazione di simboli mediante regole
applicabili ricorsivamente (intuito, istinto, pensiero non razionale, associatività).
• Una macchina non può originare nulla di nuovo, esegue solo dei programmi. Una cosa che però una macchina può fare è imparare dall’esperienza
(vedi programmi di scacchi). Sono implementazioni di algoritmi per la
valutazione delle sequenze di mosse e da qui il miglioramento della strategia di gioco. Questo ramo si divide in Machine Learning e Reinforcement
learning.
• Il comportamento intelligente non può essere completamente replicato
(argument for disability)
• Il comportamento intelligente non può essere completamente catturato
da regole formali (argument for informality). Il comportamento umano
è troppo complesso per essere codificato in regole formali. Inoltre la conoscenza non è sempre codificabile in forma simbolica. Una soluzione
potrebbe essere rappresentare la conoscenza in maniera sub-simbolica, ovvero far emergere l’intelligenza da un’architettura neurale, sfruttando la
struttura, i collegamenti ed il funzionamento dei vari componenti.
Inoltre, c’è intelligenza anche se la conoscenza non è espressa in modo
simbolico esplicito (conoscenza sub-simbolica).
• Anche se un computer si comportasse in modo da superare il test di Turing,
non sarebbe comunque classificato come intelligente. Manca infatti di
coscienza.
L’omuncolo di Dennet
: una soluzione potrebbe essere non chiedersi come la macchina elabora certe
informazioni. Potrebbe bastare replicare il comportamento senza conoscerne il
funzionamento.
La stanza di Maxwell?
12
CAPITOLO 1. INTRODUZIONE
1.3.3
Searle e la stanza cinese
Una manipolazione adeguata di simboli strutturali tramite l’applicazione ricorsiva di regole che tengano conto della struttura non può produrre un’intelligente
cosciente. Da questa osservazione e dal fatto che un calcolatore potrebbe superare il test di Turing e dimostrarsi intelligente pur non comprendendo nulla,
viene sviluppato un nuovo ”modello” di macchina, quello della stanza cinese.
Questo modello è formato da
1. una persona (CPU)
2. un libro di regole (il programma)
3. un pacco di fogli (la memoria)
alla persona vengono passate frasi in cinese che lui non conosce. Ciò che si
limita a fare è usare il libro di regole per tradurle. Risolvere un problema non
significa quindi capirlo! Ovvero non si può generare la semantica dalla sintassi.
Osservazioni Gli elementi dell’intelligenza cosciente devono possedere un contenuto semantico reale (ciò è detto criterio non comportamentale per l’intelligenza).
La sintassi di per sé non è condizione necessaria né sufficiente per la determinazione della semantica.
I programmi non sono condizione necessaria né sufficiente perché sia data
una mente.
1.3.4
Un contradditorio
Seguendo il seguente ragionamento (prendendo la stanza cinese come esempio):
1. Alcuni oggetti non sono capaci di comprensione (del cinese)
2. La persona nella stanza, il libro di regole e la pila di fogli sono oggetti di
questo tipo
3. Se ciascuno di questi oggetti è privo di comprensione, allora un qualsiasi
sistema costruito con questi oggetti è privo di comprensione
4. Quindi non c’è conoscenza nella stanza
Si potrebbe quindi dedurre che, dato che gli uomini sono costituiti da molecole e le molecole non hanno coscienza, l’uomo non ha coscienza.
La stanza di Maxwell Un altro esperimento fu condotto da Maxwell. Tale
esperimento vuole dimostrare che il fatto che qualcosa non si veda, non significa
che non ci sia!
1.3. MACCHINE E MENTE
13
Una spiegazione possibile al contradditorio è considerare la coscienza come
una proprietà emergente di sistemi di neuroni, propriamente disposti ed attivi.
Per esempio, un bambino che studia una lingua straniera non è molto diverso
dalla stanza cinese.
1.3.5
Emergenza dell’ipotesi forte dell’AI
L’architettura funzionale delle macchine di Turing classiche non è adatta a svolgere compiti molto impegnativi. Per scoprire architettura diverse, ci si può
ispirare al cervello umano (reti neurali, ...).
Le ipotesi sull’AI
Esistono due posizioni:
1. Weak AI Position: le macchine possono essere costruire per agire come
se fossero intelligenti. Thinking rationally (logica, AI): il calcolatore è
uno strumento molto potente per lo studio e la replicazione della mente
umana.
2. Strong AI Position: le macchine che agiscono intelligentemente hanno una
mente (reale e conscia). Obiettivo: Thinking humanly (cognitive science),
ovvero considerare il calcolatore, convenientemente programmato, come
una mente di per sı̀, in grado di comprendere e di avere altri stati cognitivi
diversi (inferiori) a quelli del cervello umano.
Per poter implementare un’architettura basata sulla mente umana, occorre
chiedersi com’è fatta la mente. Esistono due tipi di risposta a questa domanda:
1. risposta funzionalista: la mente è una scatola nera, i costituenti possono
essere diversi ma la mente rimane)
2. risposta strutturalista: ad un certo punto la coscienza svanisce se si tolgono
determinati costituenti
Un’ulteriore differenza tra l’AI e l’intelligenza biologica è come fa il cervello a
pensare. Riprodurre il suo funzionamento è un requisito necessario per poter far
funzionare correttamente un sistema intelligente. Pur essendo riusciti a ricreare
una struttura simile al cervello umano (le reti neurali), il problema rimane
l’apprendimento.
Pro e contro
1. L’architettura parallela incrementa la velocità e non soffre di colli di
bottiglia.
2. Resistente ai danni.
14
CAPITOLO 1. INTRODUZIONE
3. L’informazione (conoscenza) è distribuita e multi-chiave. È possibile l’accesso parallelo.
4. Rappresentazione di funzioni mediamente parametri (rappresentazione parametrica).
5. Funziona male per problemi che devono essere risolti in modo ricorsivo e
non possono essere parallelizzati (come il calcolo di funzioni).
6. Funziona bene per tutte le attività che richiedono parallelismo, come
elaborazione sensoriale, pianificazione e ragionamento.
7. Rappresentazione di funzioni in modo esplicito, mediante le funzioni stato
prossimo ed uscita.
Questa è un’importante differenza rispetto alla macchina di Turing, in quanto essa manipola i simboli di cui non conosce il significato, a differenza della
mente umana.
1.4
1.4.1
Riassunto (utile per esame)
Test di Turing
Il test di Turing (1950) è un criterio per determinare se una macchina sia in
grado di pensare. Basato sul “gioco dell’imitazione” a tre partecipanti: un
uomo A, una donna B e una terza persona C. C è tenuto separato da A e B e
tramite delle domande deve stabilire quale è l’uomo e quale la donna. A deve
ingannare C portandolo ad una identificazione errata, B deve invece aiutarlo.
Le risposte vengono dattiloscritte. Il test di Turing che si basa su questo gioco
sostituisce A con una machina. Se la percentuale di volte in cui C indovina
chi sia l’uomo e chi la donna è simile prima e dopo la sostituzione di A con la
macchina, allora la macchina stessa dovrebbe essere considerata intelligente, dal
momento che, in questa situazione, sarebbe indistinguibile da un essere umano.
Il test di Turing si svolge con due persone e una macchina intelligente. Una delle
due persone deve riuscire ad indovinare facendo domande e ricevendo le risposte
chi è la macchina e chi la persona umana. Il test viene ripetuto sostituendo alla
macchina una persona e l’esaminatore deve indovinare chi tra le due persone
mente. Il test di Turing viene considerato superato soltanto se il numero di
volte in cui l’esaminatore scopre la macchina è pari al numero di volte il cui
l’esaminatore scopre la persona che mente. Per macchina intelligente Turing ne
intende una in grado di pensare, ossia capace di concatenare idee e di esprimerle.
Per Turing, quindi, tutto si limita alla produzione di espressioni non prive di
significato. Turing scrive: “Secondo la forma più estrema di questa opinione,
il solo modo per cui si potrebbe essere sicuri che una macchina pensa è quello
di essere la macchina stessa e sentire se si stesse pensando [. . . ] Allo stesso
modo, la sola via per sapere che un uomo pensa è quello di essere quell’uomo in
particolare. [. . . ]. Probabilmente A crederà “A pensa, mentre B no”, mentre per
1.4. RIASSUNTO (UTILE PER ESAME)
15
B è l’esatto opposto “B pensa, ma A no”. Invece di discutere in continuazione su
questo punto, è normale attenersi alla educata convenzione che ognuno pensi.”
1.4.2
Stanza cinese
La stanza cinese (1980) è un esperimento mentale ideato da John Searle. E’ un
controesempio alla teoria dell’intelligenza artificiale forte. La base del ragionamento di Searle è che la sintassi (grammatica) non è equivalente alla semantica
(significato). I sostenitori dell’intelligenza artificiale forte sostengono che un
computer opportunamente programmato non sia solo la simulazione o un modello della mente, ma che esso possa essere una mente. Esso cioè capisce, ha
condizioni conoscitive e può pensare. Si supponga che, nel futuro, si possa costruire un computer che si comporti come se capisse il cinese. In altre parole, il
computer prenderebbe dei simboli cinesi in ingresso, consulterebbe una grande
tabella che gli consenta di produrre altri simboli cinesi in uscita. Si supponga
che il comportamento di questo computer sia cosı̀ convincente da poter facilmente superare il test di Turing. In altre parole, il computer possa convincere
un uomo che parla correttamente cinese (per esempio un cinese) di parlare con
un altro uomo che parla correttamente cinese, mentre in realtà sta parlando
con un calcolatore. A tutte le domande dell’umano il computer risponderebbe appropriatamente, in modo che l’umano si convinca di parlare con un altro
umano che parla correttamente cinese. I sostenitori dell’intelligenza artificiale
forte concludono che il computer capisce la lingua cinese, come farebbe una
persona, in quanto non c’è nessuna differenza tra il comportamento della macchina e di un uomo che conosce il cinese. Ora, Searle chiede di supporre che
lui si sieda all’interno del calcolatore. In altre parole, egli si immagina in una
piccola stanza (la stanza cinese) dalla quale riceva dei simboli cinesi, e una tabella che gli consenta di produrre dei simboli cinesi in uscita in modo identico
a quanto faceva il programma seguı̀to dal calcolatore. Searle fa notare che egli
non capisce i simboli cinesi. Quindi la sua mancanza di comprensione dimostra
che il calcolatore non può comprendere il cinese, poiché esso è nella sua stessa
situazione. Il calcolatore è un semplice manipolatore di simboli, esattamente
come lo è lui nella stanza cinese – e quindi i calcolatori non capiscono quello che
stanno dicendo tanto quanto lui.
1.4.3
Ipotesi forte AI
L’intelligenza artificiale forte sostiene che è possibile per le macchine diventare
sapienti o coscienti di sé, senza necessariamente mostrare processi di pensiero
simili a quelli umani. Il termine intelligenza artificiale forte fu originalmente coniato da John Searle, che scrisse: “Secondo l’intelligenza artificiale forte, il computer non sarebbe soltanto, nello studio della mente, uno strumento; piuttosto,
un computer programmato opportunamente è davvero una mente”
16
CAPITOLO 1. INTRODUZIONE
1.4.4
Ipotesi debole AI
L’intelligenza artificiale debole si riferisce all’uso di programmi per studiare o risolvere specifici problemi o ragionamenti che non possono essere compresi pienamente (o in alcuni casi, sono completamente al di fuori) nei limiti delle capacità
cognitive umane. Un esempio di programma di intelligenza artificiale debole
è un algoritmo per il gioco degli scacchi (si ricordi, ad esempio, Deep Blue).
Diversamente dall’intelligenza artificiale forte, quella debole non realizza un’autoconsapevolezza e non dimostra il largo intervallo di livelli di abilità cognitive
proprio dell’uomo, ma è esclusivamente un problem-solver (risolutore di problemi) specifico e, parzialmente, intelligente. Alcuni sostengono che i programmi
di intelligenza artificiale debole non possano essere chiamati propriamente intelligenti, in quanto non possono realmente pensare. Molti fra coloro che avanzano
queste critiche riconoscono l’IA debole come l’unica possibile, affermando che
le macchine non potranno mai divenire realmente intelligenti. Al contrario, i
sostenitori della IA forte teorizzano la vera coscienza di sé ed il pensiero per
come lo intendiamo ora possano richiedere uno speciale algoritmo progettato
per osservare e prendere in considerazione i processi della propria stessa mente.
Secondo alcuni psicologi dell’evoluzione gli umani potrebbero aver sviluppato un
algoritmo di questo tipo, particolarmente avanzato, specificamente per l’interazione sociale o la mistificazione, due attività in cui il genere umano si dimostra
nettamente superiore rispetto ad altre specie.
1.4.5
Contradditorio
1. Una macchina non può originare nulla di nuovo, esegue dei programmi.
2. Il comportamento intelligente non può essere completamente replicato.
3. Il comportamento intelligente non può essere completamente catturato da
regole formali (argument for informality).
4. Anche se un computer si comportasse in modo da superare il test di Turing,
non sarebbe comunque classificato come intelligente.
1.4.6
A cosa serve?
A smentire qualcuno dei
4 punti sopra?
Prostgetic experiment
Supponiamo di essere capaci di sostituire i neuroni con dei dispositivi elettronici che ne replichino il comportamento e di conoscere alla perfezione tutte le
connessioni di tutti i neuroni all’interno del cervello. L’esperimento consiste
nello scambiare gradualmente tutti i neuroni con i dispositivi elettronici e poi
invertire il processo per far tornare il soggetto allo stato biologico originale.
Concentrandoci sul comportamento esterno e interno del soggetto sia durante
che dopo l’operazione. Il comportamento esterno del soggetto DEVE rimanere
lo stesso di quello osservato se l’esperimento non fosse eseguito. Il soggetto deve
essere capace di ricordare ogni cambiamento della propria coscienza. Ci sono
due risposte a questo esperimento, Risposta funzionalista: dopo l’esperimento la
1.4. RIASSUNTO (UTILE PER ESAME)
17
coscienza non viene alterata e il soggetto non è in grado di dirci che l’esperimento è stato effettuato; la mente è una scatola nera, non importa cosa contiene, la
mente rimane. Risposta strutturalista: ad un certo punto la persona si accorge
che la propria coscienza svanisce, ma il comportamento esterno osservato rimane
lo stesso.
18
CAPITOLO 1. INTRODUZIONE
Capitolo 2
Fuzzy Systems
2.1
2.1.1
Logica Fuzzy
Cenni introduttivi
La logica classica è una logica bivalente, che ammette solo due valori di verità:
{1, 0}, {T, F }, {Bianco, N ero}, etc.. La funzione T : {proposizione} → {0, 1}
definisce la logica classica e può essere implementata come una tabella della
verità, una descrizione esaustiva del funzionamento della funzione per tutti i
possibili
n valori in ingresso (n discreto). Valgono inoltre le proprietà:
T
A Ac = ∅
A = T ⇔ Ac = F
Nella logica fuzzy tutto è questione di gradazione, e ogni proposizione può assumere un valore di verità compreso tra VERO e FALSO. Più analiticamente
T : {proposizione} → [0, 1].
Vengono
inoltre violate le leggi di non contraddizione e del terzo incluso:
T
A S Ac 6= ∅
A Ac 6= X
2.1.2
Fuzzy Set
Per capire cosa sia un fuzzy set utilizziamo un esempio.
Costruiamo una montagnetta di granelli di sabbia, e S: ӏ una montagnetta di
sabbia” è un’affermazione in funzione del numero di granelli d. L’affermazione
può essere ovviamente vera o falsa: sarà falsa quando non ci sono abbastanza granelli da poter far constatare che quella sia realmente una montagnetta,
vera altrimenti. Tuttavia non esiste un numero g definito di granelli tale che
può accadere che V (g)=F e V (g + 1)=T. Esiste quindi una gradazione di verità
chiamata grado di membership o grado di fitness.
Va specificato inoltre che possono esistere più classi fuzzy per un problema.
Nell’esempio della montagnetta le due classi erano rappresentate dall’essere o
19
20
CAPITOLO 2. FUZZY SYSTEMS
meno una montagnetta. Tuttavia si potrebbe pensare, ad esempio, a suddividere
il problema in tre classi: montagnetta alta, media, o bassa. Valutando la domana ”quanto è alta la montagnetta?”, si potrebbe associare l’altezza alle diverse
classe fuzzy, e per ognuna di esse ci sarebbe un diverso grado di membership
∈ [0, 1].
(2.1)
(2.2)
2.1. LOGICA FUZZY
21
(2.3)
2.1.3
Fuzzyness vs Probabilità
La fuzzyness descrive l’ambiguità insita in un evento, mentre la probabilità
descrive l’incertezza che l’evento avvenga. Il fatto che accada o no è questione di
probabilità, mentre in quale misura accada è questione di fuzzyness. Esempio:
”C’è una mela in frigorifero?”, apro e ne trovo mezza. Dopo che un evento
è avvenuto, la sua probabilità svanisce, la fuzzyness no. La fuzzyness è un
incertezza deterministica.
2.1.4
T-norm
T (AANDB) = min(T (A), T (B))
T (AORB) = max(T (A), T (B))
T (NOT(A)) = 1 − T (A))
T (AANDAc ) + T (AORAc ) = 1
2.1.5
Entropia e Distanza Fuzzy
L’entropia fuzzy è la misura della fuzzyness complessiva di un insieme fuzzy.
Per calcolarla si costruisce un ipercubo di lato 1 nel quale ogni dimensione rappresenta uno degli elementi dell’insieme. Si rappresenta quindi l’insieme come
un punto all’interno dell’ipercubo che ha per coordinate i volori di fuzzyness
degli elementi. Il rapporto tra la distanza dal vertice più vicino e la distanza
dal vertice più lontano dell’ipercubo sarà l’entropia dell’insieme fuzzy(ragion
per cui i possibili valori dell’entropia vanno da 0 a 1).
La distanza utilizzata per il calcolo dell’entropia, e in generale la distanza parlando di fuzzyness, non si misura secondo il metodo euclideo, ma come la minima
distanza muovendosi lungo gli assi dell’ipercubo.
22
CAPITOLO 2. FUZZY SYSTEMS
P
Distanza di Hamming: l1 = p
mP
A (xi )
n
2
Distanza fuzzy euclidea: l2 = 2
i=1 |ma (xi )|
a
E(A) = b , 0 ≤ E(A) ≤ 1
a= distanza dal vertice più vicino
b= distanza dal vertice più lontano
(2.4)
(2.5)
2.2. SISTEMI FUZZY
2.2
2.2.1
23
Sistemi Fuzzy
Introduzione
Un sistema fuzzy (sistema esperto) è basato su un insieme di regole in parallelo (legata da AND e OR) che rappresentano la conoscenza. Le regole sono
elaborate da un motore inferenziale del tipo IF ... THEN ... ELSE ... (intelligenza artificiale). La risposta è del tipo T o F.
Il funzionamento si basa sul fatto che l’output di una regola attivata sia considerato con un certo grado di membership. Il grado di membership dipende da
quanto la regola influisca sulla formazione dell’output.
2.2.2
FAM: Fuzzy Associative Memory
(2.6)
Una FAM può essere vista come una funzione non lineare che mappa un
certo numero di variabili di ingresso(dati reali e quindi crisp) in una serie di
variabili di uscita(anche esse crisp) usando una serie di regole fuzzy.
Nella definizione di un sistema fuzzy alcuni passi sono fondamentali:
1. Identificazione delle variabili di sistema e del loro range(iinput e output
nella loro forma crisp).
2. Identificazione delle classi fuzzy nelle quali modellare l’input e l’output.
3. Definizione delle regole della FAM. Per ogni insieme di classi fuzzy di input
deve esssere possibile definire una classe di output.
4. Identificazione delle regole attivate da un certo insieme fuzzy in ingresso.
5. Valutazione del grado di fitness di ogni regola.
24
CAPITOLO 2. FUZZY SYSTEMS
6. Unione degli insiemi fuzzy di output risultanti.
7. Calcolo del centroide degli insiemi risultanti.
Le parti critiche sono le definizione delle classi e le funzioni che fuzzyficano e
defuzzificano. In queste fasi è determinante l’intervento dell’esperto, umano ovviamente, che può definire correttamente tutti questi parametri.
I sistemi fuzzy funzionano bene in tutti quegli ambiti nei quali è necessario
trattare con insiemi/proprietà che non possono essere modellati e trattati come
variabili della logica proposizionale usando valori booleani.
I sistemi fuzzy si articolano in 3 fasi:
• Fuzzyficazione: l’input deve essere trasformato nel rispettivo grado di
apparteneza all’insieme fuzzy in uso;
• Inferenza: vengono applicate le regole(che compongono la fuzzy associative memory) sull’input fuzzyficato;
• Defuzzificazione: l’output fuzzy della fam deve essere ritrasformato in
valori crisp per generare l’output vero e proprio del sistema;
Defuzzificazione
Con la fam abbiamo attivato più classi, ma è necessario avere un solo output.
1. Defuzzyfuicazione mediante massimo.
P
i
(Fi peso della regola
2. Defuzzyficazione mediante media pesata y = PFiF∗y
i
i attivata, fit della regola, yi azione associata alla regola (Ai ,Bi )) L’uscita
di ciascuna regola viene pesata con il grado di fit della classe in ingresso
alla regola. Tanto maggiore è il grado di fit, di verosimiglianza, della
variabile in ingresso, tanto maggiore sarà il peso dell’azione intrapresa in
funzione di quella variabile.
3. Defuzzyficazione mediante media pesata con le aree. La tecnica della
media pesata non tiene conto della forma delle classi associate alle variabili
di uscita: una classe molto ampia ha lo stesso peso di una classe molto
stretta. Si preferisce perciò utilizzare il criterio di fitness della variabile in
ingresso
per individuare un’area nella classe di uscita.
R
y∗mb (y)dy
R
y = mb (y)dy
Capitolo 3
Apprendimento con rinforzo
Idea: imparare interagendo con l’ambiente. L’apprendimento con rinforzo è imparare cosa fare (come mappare situazioni in azioni) al fine di massimizzare un
segnale di ricompensa numerico. Non si dice all’agente quale azione eseguire, ma
invece deve scoprire quali azioni portano alla migliore ricompensa provandole.
Nei casi più interessanti, le azioni potrebbero non avere effetto solo nella ricompensa immediata, ma anche nelle successive. Le due caratteristiche principali
dell’apprendimento con rinforzo sono
• trial and error search
ricerca per tentativi ad errori
• delayed reward
ricompensa ritardata
L’apprendimento con rinforzo è definito non caratterizzando i metodi di
apprendimento, ma caratterizzando un problema di apprendimento. Qualsiasi
metodo buono a risolvere quel problema sarà considerato un metodo di apprendimento con rinforzo. L’idea di base è semplicemente catturare i più importanti
aspetti di un problema reale che vede un agente interagire con un ambiente per
ottenere un goal. Ovviamente un tale agente deve essere in grado di percepire
lo stato dell’ambiente e deve essere in grado di prendere le decisioni per modificare lo stato. L’agente deve inoltre avere uno o più obiettivi riguardo lo stato
dell’ambiente.
L’apprendimento con rinforzo è differente dall’apprendimento supervisionato: quest’ultimo è apprendere da esempi forniti da un supervisore esterno intelligente e ben informato. Questo tipo di apprendimento è importante, ma da
solo non è adeguato per imparare tramite interazione. Nei problemi interattivi
è spesso poco pratico ottenere esempi del comportamento desiderato che siano
entrambi corretti e rappresentativi di tutte le situazioni in cui l’agente si deve
comportare.
Uno dei challenge nell’ambito dell’apprendimento con rinforzo è il trade-off
tra exploration e exploitation. Per ottenere molti reward, un agente deve preferire quelle azioni che ha già provato in passato e che sa portare a produrre un
buon reward. Ma per scoprire tali azioni, deve anche tentare azioni che non sono
25
26
CAPITOLO 3. APPRENDIMENTO CON RINFORZO
state scelte prima. L’agente deve quindi exploitare ciò che già conosce per ottenere la ricompensa, ma deve anche esplorare per poter scegliere azioni migliori
per il futuro. Il dilemma è che né l’esplorazione né l’exploitation possono essere
perseguite esclusivamente senza perdere l’obiettivo. L’agente deve provare varie
azioni e progressivamente favorire quelle che sembrano essere le migliori. Su
un approccio stocastico, ogni azione dev’essere provata molte volte per ottenere
una stima affidabile del suo reward aspettato.
Un’altra caratteristica chiave dell’apprendimento con rinforzo è che esso
esplicitamente considera l’intero problema di un agente con un obiettivo specifico il quale interagisce con un ambiente non noto. Ciò è in contrasto con molti
approcci che considerano sotto-problemi senza specificare come essi potrebbero
posizionarsi all’interno di un quadro più grande.
L’apprendimento con rinforzo adotta una linea di condotta diametralmente opposta, partendo con un agente completo, interattivo ed alla ricerca di un
goal. Tutti questi agenti hanno goal espliciti, possono percepire aspetti dei loro
ambienti e possono scegliere le azioni per influenzarli. Inoltre si assume sin dall’inizio che l’agente deve operare a dispetto di un’incertezza significante riguardo
all’ambiente con cui deve interfacciarsi. Quando l’apprendimento con rinforzo
riguarda la pianificazione, esso deve pensare alla relazioni tra pianificazione e
decisioni attive in tempo reale, tanto quanto la domanda su come i modelli
ambientali sono acquisiti e migliorati. Quando l’apprendimento con rinforzo
implica apprendimento supervisionato, si comporta cosı̀ per ragioni specifiche
che determinano quali capacità sono critiche e quali no.
3.1
Elementi dell’apprendimento con rinforzo
Oltre all’agente ed all’ambiente, si possono identificare quattro principali sotto
elementi di un sistema di apprendimento con rinforzo:
• policy
• reward function
• value function
• modello dell’ambiente (opzionale)
Policy Una policy definisce il modo di comportarsi dell’agente in un determinato tempo. In parole povere, una policy è un mapping tra gli stati percepiti
dell’ambiente e le azioni che devono essere intraprese nel momento in cui si viene
a trovarsi in tali stati. Corrisponde a ciò che in psicologia sarebbe chiamato un
insieme di stimoli - regole di risposta o associazioni. In alcuni casi la policy
potrebbe essere una semplice funzione, mentre in altri potrebbe comprendere
computazioni intensive come processi di ricerca. La policy è il cuore di un agente
che apprende tramite rinforzo, nel senso che essa sola è in grado di determinare
il comportamento. In genere, le policy possono essere stocastiche.
casuale
3.1. ELEMENTI DELL’APPRENDIMENTO CON RINFORZO
27
Reward function Una funzione di reward definisce l’obiettivo in un problema di apprendimento con rinforzo. Essa mappa ogni stato percepito (o la coppia
stato - azione) dell’ambiente in un singolo numero (detto reward ), che indica
la l’intrinseca desiderabilità dello stato. Il solo obiettivo di un agente è di massimizzare il reward totale che si riceve a lungo termine. La funzione di reward
definisce quali sono gli eventi buoni e no per l’agente. In un sistema biologico,
sarebbe appropriato identificare le ricompense con piacere e sofferenza. Essi
sono immediati e definisco le caratteristiche di un problema affrontato da un
agente. Per questi motivi, tale funzione deve necessariamente essere inalterabile
dall’agente. Potrebbe comunque servire come base per alterare una policy. Per
esempio, se un’azione scelta da una policy è seguita da un basso reward, allora
la policy potrebbe essere cambiata per scegliere alcune altre azioni in situazioni
future. In genere, la reward function è stocastica.
Value function Se la reward function indica ciò che è bene in un immediato
istante, la value function specifica ciò che è bene a lungo termine. Il valore
di uno stato è l’ammontare totale di reward che un agente può aspettarsi di
accumulare nel futuro. Se i reward determinano l’immediata ed intrinseca desiderabilità degli stati dell’ambiente, i valori indicano la desiderabilità a lungo
termine degli stati dopo aver considerato gli stati che sono più probabili da
scegliere ed i reward disponibili in tali stati. Per esempio, uno stato potrebbe
sempre condurre ad un reward immediato basso, ma ancora avere un alto valore
perché è seguite regolarmente da altri stati che portano ad alti reward.
I reward sono ciò che viene collezionato per prima cosa, mentre valori (intesi
come predizioni dei reward) sono secondari. Senza reward non potrebbero esserci valori ed il solo obiettivo di stimare valori è di ottenere più reward. Tuttavia,
sono i valori i principali oggetti su cui ci preoccupiamo quando dobbiamo fare
o valutare decisioni. Le scelte di azioni sono basate su giudizi sui valori. Si
perseguono le azioni che portano in stati al valore più alto, non al reward più
alto, perché queste azioni ottengono il più grande ammontare di reward a lungo
termine. Sfortunatamente, determinare i valori è molto più difficile che determinare i reward. I reward sono generalmente dati dall’ambiente, mentre i valori
devono essere stimati in continuazione dalle successive osservazioni che l’agente
fa nel corso di tutta la sua vita. In fatti, il più importante componente di tutti
gli algoritmi di reinforcemente learning è il metodo per stimare efficacemente i
valori.
Metodi evoluzionistici Sebbene cercare di stimare la value function è sicuramente importante e fondamentale, esistono diverse tecniche, basate su algoritmi genetici e funzioni di ottimizzazione usati per risolvere efficacemente il
problema. Tali metodologie cercano direttamente nello spazio delle policy senza
interessarsi alle value functions. Questi metodi sono detti evolutionary perché
le loro operazioni sono analoghe al modo in cui l’evoluzione biologica produce
organismi che mostrano un’abilità nel comportamento innata. Se lo spazio delle
28
CAPITOLO 3. APPRENDIMENTO CON RINFORZO
policy è sufficientemente piccolo o ben strutturato in modo che le buone policy
sono comuni o facili da trovare, allora i metodi evoluzionistici possono essere
efficaci. Inoltre, tali metodi sono efficaci in problemi nei quali l’agente non può
accuratamente stimare lo stato del suo ambiente.
D’altra parte, tali metodi non prevedono l’interazione con l’ambiente, la
quale è fondamentale e molto più efficiente.
Modello dell’ambiente È ciò che mima il comportamento dell’ambiente. I
modelli sono usati per il planning. Con planning si intende un modo di decidere una linea di condotta prendendo in considerazione eventuali situazioni future prima che diventino effettivamente parte del bagaglio di esperienze.
In opposizione al planning si intendono quelli agenti che imparano mediante
trial-and-error.
Capitolo 4
Evaluative Feedback
4.1
Apprendimento in un setting non associativo
La più importante caratteristiche che distingue l’apprendimento con rinforzo da
altri tipi di apprendimento è che esso usa l’informazione che valuta le azioni
scelte piuttosto che istruire dando la corretta azione. Questo è ciò che crea la
necessità per un esplorazione attiva. Un feedback valutativo puro indica quanto
bene un’azione è stata intrapresa, ma non se essa è la migliore o la peggiore
azione possibile. Evalutative feedback è alla base di metodi per l’ottimizzazione di funzioni, che includono i metodi evolutivi. Feedback istruttivi puri
invece indicano la corretta azione da prendere, indipendentemente dall’azione
attualmente scelta. Questo tipo di feedback è alla base dell’apprendimento supervisionato, che include gran parte della classificazione di pattern, reti neurali
artificiali e sistemi di identificazione. Nella loro forma più pura, questi due
tipi di feedback sono molto distinti: evalutative feedback dipendono interamente dall’azione scelta, mentre instructive feedback sono indipendenti dall’azione
intrapresa.
4.2
N -Armed Bandit Problem
Consideriamo il seguente problema di apprendimento: ci si ritrova ripetutamente a scegliere tra n differenti opzioni o azioni. Dopo ogni scelta viene dato un
reward numerico preso da una distribuzione di probabilità stazionaria che dipende dall’azione scelta. L’obiettivo è massimizzare il reward atteso totale in
un periodo di tempo fissato, per esempio 1000 diverse scelte di azioni. Ogni
scelta di un’azione è detta play.
In questo problema, ogni azione ha un reward atteso dato che quella tale
azione è scelta: chiamiamo ciò value di quell’azione. Se si conoscessero i valori
di ogni azioni, allora sarebbe semplice risolvere il problema: ogni volta si sceglie
29
30
CAPITOLO 4. EVALUATIVE FEEDBACK
l’azione con il più alto value. Assumiamo che non si conoscano i values associati
alle azioni con certezza, sebbene si sia in possesso delle stime.
Se vengono mantenute le stime dei valori associati alle azioni, c’è sempre
almeno un’azione il cui valore atteso è maggiore. Definiamo questa una azione
greedy. Scegliendola, si sta facendo exploiting della conoscenza corrente dei
valori delle azioni. Se invece si sceglie un’azione non greedy, allora diciamo che
stiamo facendo exploring, perché ciò permette di migliorare la stima del valore
dell’azione non greedy. Exploitation è la cosa migliore da fare per massimizzare
il valore atteso per un solo play, ma exploration potrebbe produrre un reward
totale più grande a lungo termine.
4.3
La lettera Q cosa
rappresenta?
Action-Value Methods
Iniziamo a guardare più da vicino ad alcuni semplici metodi per stimare i valori
delle azioni e per usare i valori delle stime per prendere decisioni sulla selezione
delle azioni. Indichiamo con Q∗ (a) il valore vero (attuale) dell’azione a e con
Qt (a) la stima del valore di a alla t-esima play.
Il valore vero di un’azione è la ricompensa media ricevuta quando tale azione
è stata selezionata. Un metodo naturale per stimare ciò è calcolare la media dei
reward finora ricevuti quando l’azione è stata selezionata. In altre parole, se al
play t l’azione a è stata scelta ka volte prima di t fornendo r1 , r2 , ..., rka reward,
allora la stima di tale valore è
Qt (a) =
r1 +r2 +...+rka
ka
Se ka = 0, allora definiamo Qt (a) con un valore predefinito, come Q0 (a) = 0.
Osserviamo che limka →∞ Qt a = Q∗ (a).
Definiamo questo metodo per stimare i valori associati alle azioni come metodo sample − average, perché ogni stima è una semplice media del campione
di reward rilevanti.
Come usare tali stime per scegliere le azioni? La più semplice regola per
scegliere un’azione è scegliere l’azione (o una delle azioni) con il più alto stimato
valore di azione, ovvero scegliere al play t una delle azioni greedy, sia essa a∗
tale che Qt (a∗ ) = maxa Qt (a). Questo metodo sfrutta la conoscenza corrente
per massimizzare il reward immediato; esso non spende tempo ad analizzare
altre azioni per vedere se potrebbero portare a qualcosa di meglio.
Una semplice alternativa è comportarsi in maniera greedy per la maggior
parte del tempo, ma ogni tanto, diciamo con una piccola probabilità , scegliere
un’azione random, uniformemente, indipendentemente dalla stima del valoreazione. Definiamo i metodi che usano questa regola di selezione quasi greedy
come -greedy. Il vantaggio di questi metodi è che, al crescere del numero di
play, ogni azione verrà campionata un numero infinito di volte, garantendo che
∗
l''azione è stata scelta per ka → ∞ ∀a, assicurando cosı̀ che Qt (a) converga a Q (a).
tutte le possibili azioni di a
4.4. INCREMENTAL IMPLEMENTATION
31
Ciò implica che la probabilità di scegliere l’azione ottimale converge al più
a 1 − , cioè vicino alla certezza. Queste sono solo garanzie asintotiche (poco
pratiche).
4.4
Incremental Implementation
I metodi azione-valore stimano i valori delle azioni semplicemente come media
dei reward osservati. Un’implementazione ovvia è mantenere, per ogni azione a,
mantenere un record di tutti i reward che sono seguiti la selezione di tale azione. Quando
la stima della value function è richiesta al tempo t, allora viene computata
Qt (a) =
r1 +r2 +...+rka
ka
dove r1 , r2 , ..., rka sono tutti i reward ricevuti seguendo tutte le selezioni
dell’azione a prima della giocata t. Un problema con questa implementazione
è che la memoria e le risorse computazionali crescono senza limite nel tempo.
Ovvero, ogni reward che segue la scelta di un’azione a richiede più spazio in
memoria e più computazione per determinare Qt (a).
Esiste un metodo più efficace. Per qualche azione, sia Qk la media dei
suoi primi k reward (attenzione: da non confondersi con Qk (a), che è la media
per l’azione a alla k-esima giocata). Data tale media, il reward rk+1 della
(k + 1)-esima giocata, allora la media di tutti i k + 1 reward può essere calcolata
cosı̀:
k+1
Qk+1 =
=
1 X
ri
k + 1 i=1
k
X
1
ri )
(rk+1 +
k+1
i=1
1
(rk+1 + kQk + Qk − Qk )
k+1
1
=
(rk+1 + (k + 1)Qk − Qk )
k+1
1
[rk+1 − Qk ]
= Qk +
k+1
=
(4.1)
Quest’implementazione richiede memoria solo per Qk e k. Inoltre è richiesta solo una piccola computazione per ogni nuovo reward. Questa regola di
aggiornamento, nella sua forma generale, è:
N ewEstimate ← OldEstimate + StepSize[T arget − OldEstimate]
L’espressione T arget − OldEstimate] rappresenta l’errore nella stima. Essa è
ridotta facendo un passo vero il ”target”. Si presume che il target indichi la
direzione desiderabile verso la quale muoversi.
32
CAPITOLO 4. EVALUATIVE FEEDBACK
4.5
Tracking a NonStationary Problem
I metodi per calcolare la media discussi prima sono appropriati in un ambiente stazionario, ma non dinamico. In questo tipo di problemi, avrebbe senso
assegnare un peso più pesante ai reward più recenti piuttosto che a quelli più
lontani cronologicamente. Uno dei metodi più famosi per fare ciò è di usare un
parametro costante. In questo caso occorre modificare la formula 4.1:
Qk+1 = Qk + α[rk+1 − Qk ]
(4.2)
dove α, 0 < α ≤ 1, è una costante. Questo comporta che Qk diventa una
media pesata dei reward passati e della stima iniziale Q0 .
Qk = Qk−1 + α[rk − Qk−1 ]
= αrk + (1 − α)Qk−1
= αrk + (1 − α)αrk−1 + (1 − α)2 Qk−2
= αrk + (1 − α)αrk−1 + (1 − α)2 αrk−2 +
+ ... + (1 − α)k−1 αr1 + (1 − α)k Q0
k
= (1 − α) Q0 +
k
X
α(1 − α)k−i ri
(4.3)
i=1
Diciamo che tale somma è una media pesata in quanto
P
(1 − α)k + i=1 kα(1 − α)k−i = 1
dell'azione a
Il peso α(1 − α)k−i dato al reward r1 dipende da quante ricompense fa, k − i,
è stato osservato. La quantità 1 − α < 1, cosı̀ che il peso dato a ri decresce
all’aumentare del numero di premi intermedi. Infatti il peso decresce esponenzialmente secondo l’esponente su 1 − α. Questa media è solitamente detta
exponential, recency weighted average. media ponderata esponenziale e recente
Ogni tanto conviene variare il parametro di StepSize, passo per passo. Sia
αk (a) il parametro di StepSize usato per processare il reward ricevuto dopo
la kesima scelta dell’azione a. La scelta αk (a) = 1/k risultato del metodo di
media semplice, garantisce la convergenza della serie al valore vero dell’azione,
per la legge dei grandi numeri. Ma certamente la convergenza non è garantita
per tutte le scelte della sequenza {αk (a)}.
4.6
Cos'è la distorsione?
Optimistic Initial Values
Tutti i metodi discussi finora dipendono finora sulle stime iniziali delle coppie
azione - valore, Q0 (a). Nel statistica, questi metodi sono influenzati dalle loro
stime iniziali. Per i metodi di media semplice, la distorsione scompare ogni volta
che tutte le azioni sono state selezionate almeno una volta. Per i metodi che
hanno α costante, la distorsione è permanente, anche se decrescente man mano
4.7. PURSUIT METHODS
33
che passa il tempo, come descritto dalla formula 4.3. In genere, questo tipo di
distorsione non è un problema e può essere a volte molto utile. Lo svantaggio è
che le stime iniziali diventano un insieme di parametri che devono essere presi in
considerazione dall’utente, anche se solo per settarli tutti a 0. Il lato positivo è
che esse forniscono un meccanismo facile per dare un po’ di conoscenza a priori
riguardo quale livello di ricompense ci si può aspettare.
I valori delle azioni iniziali possono anche essere usati come un metodo semplice per incoraggiare l’esplorazione. Il metodo consiste nel settare le stime iniziali
non a 0, ma ad un valore positivo, forzando quindi un’esplorazione. All’inizio,
tale metodo ottimistico frutterà di meno perché esplora di più, ma potrebbe
dare migliori risultati perché l’esplorazione cala nel tempo. Questa tecnica di
incoraggiamento dell’esplorazione è detta optimistic initial values.
4.7
Pursuit Methods
Un’altra classe di metodi di apprendimento efficaci per il problema del bandito n
armato sono i metodi pursuit. Pursuit Methods mantengono sia le stime azione
- valore sia le preferenze delle azioni, le quali continuano a perseguire l’azione
che è greedy secondo le stime della corrente azione - valore. Nel metodo pursuit
più semplice, le preferenze delle azioni sono le probabilità, πt (a), con cui ogni
azione, a, viene scelta al gioco t.
Dopo ogni giocata, vengono aggiornate le probabilità in modo da far selezionare l’azione greedy con probabilità maggiore. Dopo la giocata t, denotiamo con
a∗t+1 = argmaxa Qt+1 (a) l’azione greedy (oppure una scelta casuale fra le azioni
greedy se c’è n’è più di una) per la giocata t + 1. La probabilità di selezionare
at+1 = a∗t+1 è incrementata di una frazione β verso 1
πt+1 (a∗t+1 ) = πt (a∗t+1 ) + β[1 − πt (a∗t+1 )]
(4.4)
34
CAPITOLO 4. EVALUATIVE FEEDBACK
mentre le probabilità di scegliere le altre azioni sono decrementate verso 0
πt+1 (a) = πt (a) + β[0 − πt (a)], ∀a 6= a∗t+1
(4.5)
I valori delle azioni, Qt+1 (a), sono aggiornati in uno dei modi descritti
precedentemente.
Capitolo 5
The Reinforcemente
Learning Problem
5.1
The Agent - Environment Interface
Il problema dell’apprendimento con rinforzo è destinato essere una semplice inquadratura del problema dell’apprendimento da interazione con lo scopo
di ottenere un certo obiettivo. Colui che impara e prende le decisioni è detto
agente, ciò cui cui l’agente interagisce e tutto ciò che è fuori dall’agente è detto
ambiente. Queste due entità interagiscono continuamente, l’agente selezionando azioni e l’ambiente rispondendo a tali azioni e presentando nuove situazioni
all’agente. Inoltre l’ambiente fornisce premi, speciali valori numerici che l’agente
cerca di massimizzare nel tempo. Una specifica completa dell’ambiente definisce
un task, un’istanza del problema di apprendimento con rinforzo.
Più in dettaglio, l’agente e l’ambiente interagiscono tra loro tramite una
sequenza discreta di tempi t = 0, 1, 2, 3, . . . . Ad ogni passo t, l’agente riceve
una certa rappresentazione dello stato dell’ambiente, st ∈ S, dove S è l’insieme
dei possibili stati, e su tale stato l’agente sceglie un’azione, at ∈ A(st ), dove
A(st ) è l’insieme delle azioni disponibili allo stato st . In un secondo momento,
in parte come conseguenza della sua azione, l’agente riceve un reward numerico,
rt+1 ∈ R, e si ritrova in un nuovo stato, st+1 .
35
36
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
Ad ogni passo, l’agente implementa un mapping tra gli stati e le probabilità
di selezionare ogni possibile azione. Tale mapping è la policy dell’agente, ed è
indicata con πt , dove πt (s, a) è la probabilità che at = a se st = s. I metodi
di apprendimento con rinforzo specificano in che modo l’agente debba cambiare
la sua policy come risultato della sua esperienza. Il goal dell’agente, in parole
povere, è di massimizzare l’ammontare totale di reward che riceve nel lungo
tempo.
Questo framework è astratto e flessibili, può essere applicato ad una vasta
gamma di problemi in modi diversi.
5.2
Goals and Rewards
Nell’apprendimento con rinforzo, lo scopo o goal dell’agente è formalizzato in
termini di un segnale di ricompensa speciale, che passa dall’ambiente all’agente. Ad ogni passo, il reward è un semplice numero, rt ∈ R. Informalmente,
l’obiettivo dell’agente è massimizzare l’ammontare totale di reward che riceve.
Questo significa non massimizzare il reward istantaneo, ma quello cumulativo a
lungo termine.
Usare il segnale di reward per formalizzare l’idea del goal è una delle caratteristiche dell’apprendimento con rinforzo. Sebbene la strada di formalizzare
gli obiettivi potrebbe apparire limitante, in pratica si è dimostrata altamente
flessibile da applicare in diverse occasioni.
Il problema del Credit Assignment riguarda quegli ambienti nei quali il
reward è tutto concentrato in un unico stato finale. Il problema è comprendere
data una sequenza di azioni e stati che hanno portato a quello stato, a quali
azioni e a quali stati accreditarne il merito. Il problema può riguardare sia la
dimensione spaziale (per esempio nelle reti neurali artificiali), sia la dimensione
temporale (per esempio, nella scoperta di un cammino, capire quali siano stati
i passi che hanno portato all’arrivo, ad esempio i primi, o gli ultimi).
5.3
Returns
Come possiamo definire formalmente il fatto che l’obiettivo dell’agente è massimizzare il reward ottenuto a lungo termine? Se la sequenza di reward ottenuti
dopo il tempo t la denotiamo con rt+1 , rt+2 , rt+3 , . . . , allora cosa di questa sequenza ci aspettiamo di voler davvero massimizzare? In generale, cerchiamo
di massimizzare il valore atteso, dove il ritorno Rt è definito come una qualche
funzione specifica della sequenza di reward. Nel caso più semplice, il ritorno è
la somma di tutti i reward
Rt = rt+1 + rt+2 + rt+3 + · · · + rT
(5.1)
dove T è il tempo finale. Quest’approccio ha senso in applicazioni in cui c’è
una nozione naturale di tempo finale, ovvero quando l’interazione tra agente ed
ambiente si divide naturalmente in sotto.sequenze, dette episodi, per esempio
5.4. UNIFIED NOTATION FOR EPISODIC AND CONTINUING TASKS37
partite di un gioco: in genere, ogni tipo di interazione ripetuta. Ogni episodio
termina in uno stato speciale detto stato terminatore, seguito da un reset allo
stato di partenza o da un rappresentante dell’insieme di stati di partenza. I tasks
con episodi di questo tipo sono detti episodic tasks. Negli episodic tasks occorre
distinguere tra l’insieme di stati non terminali (indicato con S) e l’insieme di
tutti gli stati più quelli terminali (denotato con S + ).
D’altra parte, in molti casi, l’interazione tra agente ed ambiente non è suddivisibile in modo naturale in episodi identificabili, ma continua nel tempo senza
limite. Per esempio, questo potrebbe rappresentare un sistema continuo di
controllo dei processi. Questi sono detti continuing tasks. Il reward totale (o
ritorno, 5.1) è problematica per task continuativi, perché il passo finale sarebbe T = ∞, ed il valore R, che abbiamo intenzione di massimizzare, potrebbe
facilmente essere infinito.
Discounting Un’altro concetto di cui abbiamo bisogno è quello di discounting,
ovvero sconto. Secondo questo approccio, l’agente cerca di selezionare le azioni
tali che la somma dei reward scontati che riceve sia massimizzata. In particolare,
sceglie le azioni at per massimizzare il discounted return
2
Rt = rt+1 + γrt+2 + γ rt+3 + · · · =
∞
X
γ k rt+k+1
(5.2)
k=0
dove γ è un parametro 0 ≤ γ ≤ 1 detto discount rate.
Il discount rate determina il valore presente dei futuri reward: un reward ricevuto dopo k passi di tempo nel futuro vale solo γ k−1 volte quello che varrebbe
se fosse stato ricevuto immediatamente. Se γ < 1, la sommatoria ha un valore
finito fintanto che la sequenza di reward {rk } è limitata. Se γ = 0, l’agente è
”miope”, nel senso che è concentrato solo nel massimizzare i reward immediati:
il suo obiettivo in questo caso è di imparare come scegliere at im modo da massimizzare solo rt+1 . Se ciascuna delle azioni dell’agente influisce solo il reward
immediato e non quello futuri, allora un agente miope può massimizzare 5.2
massimizzando separatamente ogni reward immediato. Ma in generale, massimizzare i reward immediati non è efficiente. Più γ si avvicina a 1, più l’agente
diventa lungimirante prendendo in considerazione i reward futuri.
5.4
Unified Notation for Episodic and Continuing
Tasks
Nella sezione precedente sono stati descritti due tipi di compiti dell’apprendimento con rinforzo, uno in cui l’interazione agente-ambiente si scinde in una
sequenza di episodi separati (episodic tasks) e l’altra in cui ciò non succede
(continuing tasks). Il caso più formale è matematicamente più facile, perché
ogni azione ha effetto solo sul numero finito di reward ricevuti in successione
durante un episodio.
38
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
Per essere precisi riguardo gli episodic tasks, occorre introdurre della notazione. Piuttosto che una lunga sequenza di intervalli di tempo, consideriamo
una serie di episodi, ognuno dei quali consiste di una sequenza finita di intervalli
di tempo. Numeriamo tali intervalli di ogni episodio partendo da zero. Inoltre,
non basta riferirsi solo a St , la rappresentazione dello stato al tempo t, ma a
St,i , la rappresentazione dello stato al tempo t dell’episodio i. Quando parliamo
di episodic tasks, non dovremo mai distinguere tra i differenti episodi. Considereremo sempre un solo e particolare episodio oppure affermeremo proprietà
valide per tutti gli episodi. Per comodità di scrittura, ci riferiremo all’episodio
St,i scrivendo Si .
Occorre un’altra convenzione per ottenere una singola notazione che copra
sia gli episodic tasks sia quelli continui. Occorre definire il return come una
summa su un finito numero di termini in un caso (5.1), mentre nell’altro come
una somma su infiniti termini (5.2). Ciò può essere unificato considerando la
terminazione di un episodio come l’entrata in uno stato speciale: absorbing
state), che ha transizioni solo su se stesso e che genera solo reward 0. Tale stato
rappresenta la fine di un episodio.
In questo modo possiamo definire il return in generale usando la convenzione
di omettere il numero degli episodi quando non sono necessari ed includendo
la possibilità che γ = 1 se la somma rimane finita (perché tutti gli episodi
terminano). Ovvero, si può scrivere
Rt =
T
X
γ k rt+k+1
(5.3)
k=0
includendo la possibilità che T = ∞ o γ = 1, ma non entrambe.
5.5
The Markov Property
Nell’apprendimento con rinforzo, l’agente prende decisioni in funzione di un
segnale dall’ambiente detto stato dell’ambiente. Con la parola stato indicheremo
qualsiasi informazione disponibile all’agente. Assumeremo che lo stato è dato
da un qualche sistema di preprocessing che è parte integrante dell’ambiente.
Certamente il segnale di stato potrebbe includere anche misure dei sensori,
ma anche molto di più. Le rappresentazioni di stati possono essere versioni
molto diverse dalla loro ricezione originaria, oppure possono essere strutture
complesse costruite nel tempo a partire dalla sequenza di sensazioni percepite.
Per esempio, possiamo guardare un oggetto e poi volgere altrove lo sguardo e
sapere che tale oggetto è ancora lı̀, oppure un sistema di controllo può misurare
la posizione tra due punti diversi e produrre una rappresentazione dello stato che
include anche la velocità. In tutti questi casi, lo stato è costruito e mantenuto
sulla base di sensazioni immediate insieme con lo stato precedente o qualche
altra memoria di sensazioni passate.
In altre occasioni invece ci si aspetta che sia il segnale di stato ad informare l’agente di qualcosa riguardo all’ambiente oppure a qualsiasi cosa utile per
5.5. THE MARKOV PROPERTY
39
prendere decisioni. Se l’agente è un programma che gioca a blackjack, non ci
aspettiamo in anticipo di conoscere quale sarà la prossima carta del mazzo. Oppure se l’agente sta rispondendo al telefono, non ci aspettiamo che sappia già
chi sta telefonando. In tutti questi casi, c’è un’informazione di stato nascosta
nell’ambiente, e questa informazione sarebbe utile all’agente per conoscerlo, ma
l’agente non può conoscerlo perché non ha mai ricevuto nessuna informazione rilevante. In definitiva, non incolpiamo l’agente per non conoscere qualcosa
di importante, ma solo per aver saputo qualcosa di importante e poi averlo
dimenticato!
Ciò che ci piacerebbe è un segnale di stato che riassuma in modo compatto
le sensazioni passate, in modo da mantenere tutte le informazioni rilevanti. Ciò
richiede qualcosa di più delle sensazioni immediate, ma non più della cronologia
completa di tutte le sensazioni passate. Un segnale di stato che riesce a mantenere tutte le informazioni pertinenti è detto segnale di Markov, oppure di avere
la proprietà di Markov. Ad esempio nella dama, la configurazione corrente di
tutti i pezzi nella scacchiera potrebbe essere uno stato di Markov perché riassume tutto ciò che conta riguardo la sequenza completa di posizioni che hanno
permesso di raggiungerla. Molta dell’informazione è persa, ma ciò che conta
per la continuazione del gioco è mantenuto. Oppure la posizione corrente e la
velocità di un missile è tutto ciò che conta per stabilire la sua traiettoria futura. Non è importante invece come si è arrivati a quella velocità e posizione.
Spesso ci si riferisce anche come indipendence of path property, perché tutto ciò
che conta è nel segnale di stato corrente: il suo significato è indipendente dal
cammino, o storia, di segnali che hanno permesso di arrivare ad esso.
5.5.1
Markov Property
Definiamo formalmente la proprietà di Markov per l’apprendimento con rinforzo. Per mantenerla matematicamente semplice, assumiamo qui che ci sono un
numero finito di stati e valori di reward. Ciò ci permette di lavorare in termini
di somme e probabilità invece di integrali e densità di probabilità, ma questa
trattazione si può facilmente estendere ad includere stati e rewardi continui e
non discreti.
Consideriamo come un generico ambiente potrebbe rispondere al tempo t+1
ad un’azione avvenuta al tempo t. Nel caso più generale, la risposta dipenderebbe da tutto ciò che è successo prima. In questo caso le dinamiche possono
essere definite solo specificando la distribuzione di probabilità completa
Pr {st+1 = s0 , rt+1 = r | st , at , rt , st−1 , at−1 , . . . , r1 , s0 , a0 }
(5.4)
per tutti gli s0 , r e tutti i possibili valori degli eventi passati: st , at , rt , . . . , r1 , s0 , a0 .
Se il segnale di stato è di tipo M arkoviano, allora la risposta dell’ambiente al
tempo t + 1 dipende solamente dalla rappresentazione dello stato ed azione
al tempo t, nel qual caso le dinamiche dell’ambiente possono essere definite
specificando solamente
Pr {st+1 = s0 , rt+1 = r | st , at }
(5.5)
40
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
per tutti gli s0 , r, st e at . Un segnale di stato gode della proprietà di Markov
ed è uno stato markoviano se e soltanto se 5.4 è uguale a 5.5 per tutti gli s0 , r
e la cronologia passata st , at , rt , . . . , r1 , s0 , a0 . In questo caso, l’ambiente ed il
compito nel complesso sono detti godere della proprietà di Markov.
Se un ambiente è markoviano, allora le sue dinamiche ad un passo (5.5) ci
permettono di predire il prossimo stato e la prossima reward attesa dati uno
stato corrente ed un’azione. Si può dimostrare che, iterando su quest’equazione, si possono predire tutti gli stati futuri e reward attesi partendo solo dalla
conoscenza dello stato corrente tanto quanto sarebbe possibile data la completa
cronologia fino allo stato corrente. Segue anche che gli stati markoviani forniscono la miglior base possibile per scegliere le azioni, ovvero la miglior policy
per scegliere le azioni in funzione di uno stato markoviano è buona tanto quanto
la miglior policy come funzione della completa cronologia.
Anche quando il segnale di stato non è markoviano, è ancora appropriato
pensare lo stato nell’apprendimento con rinforzo come approssimazione di uno
stato markoviano. In particolare, vogliamo sempre che lo stato sia una buona
base per predire i reward futuri e per scegliere azioni.
La proprietà markoviana è importante nell’apprendimento con rinforzo perché
si assume che le decisioni ed i valori debbano essere funzione solo dello stato
corrente.Affinché queste siano efficaci ed informative, la rappresentazione dello
stato deve essere informativa.
5.6
Markov Decision Processes
Un compito di apprendimento con rinforzo che soddisfa la proprietà di Markov
è chiamato Markov decision process, o M DP (processo markoviano). Se gli
stati e le azioni sono finiti, allora si parla di MDP finito. Questi ultimi sono
particolarmente importanti per la teoria dell’apprendimento con rinforzo.
Un particolare MDP finito è definito dal suo insieme di stati ed azioni e da
una dinamica ad un passo dell’ambiente. Dati ogni stato ed azione, s e a, la
probabilità di ogni possibile stato prossimo s0 è
a
0
Pss
0 = Pr {st+1 = s | st = s, at = a}
(5.6)
Queste quantità sono dette probabilità di transizione. Similmente, da un
qualsiasi stato ed una qualsiasi azione, s e a rispettivamente, insieme con qualsiasi possibile prossimo stato s0 , il valore atteso del prossimo reward è
Rass0 = E{rt+1 | st = s, at = a, st+1 = s0 }
(5.7)
a
a
Queste quantità, Pss
0 e Rss0 specificano completamente gli aspetti più importanti delle dinamiche di un processo di decisioni markoviane finito (solo
l’informazione sulla distribuzione dei reward sul valore atteso è persa).
5.7. VALUE FUNCTIONS
5.7
41
Value Functions
Quasi tutti gli algoritmi di apprendimento con rinforzo sono basati sulla stima
delle value functions, funzioni di stati (o di coppie stato azione) che stimano
quanto l’essere in uno stato è vantaggioso per l’agente (o eseguire un’azione in
un dato stato). La nozione di ’quanto vantaggioso’ è definita in termini dei
reward futuri che ci si può aspettare o, più precisamente, in termini del reward
atteso. Ovviamente i reward che l’agente può aspettarsi di ricevere nel futuro
dipendono da quali azioni sceglierà. Di conseguenza, le value functions sono
definite nel rispetto di particolari policies.
5.7.1
State value Function
Una policy π è un mapping da ogni stato s ∈ S ed azione a ∈ A(s) nella probabilità π(s, a) di scegliere l’azione a quando si è nello stato t. Informalmente,
il valore di uno stato s secondo una policy π, denotato con V π (s) è il valore
atteso partendo dallo stato s e seguendo da lı̀ in poi la policy π. Per processi di
decisione markoviani (MDP), possiamo definire formalmente V π (s) come
(∞
)
X
π
k
V (s) = Eπ {Rt | st = s} = Eπ
γ rt+k+1 | st = s
(5.8)
k=0
dove Eπ {} denota il valore atteso dato che l’agente segue la policy π e t è un
qualsiasi tempo. Si noti che il valore dello stato terminale (se esiste) è sempre
zero. Chiameremo V π state value function per la policy π.
Similmente definiamo il valore della scelta di un’azione a in uno stato s
secondo una policy π, denotandolo con Qπ (s, a), come il valore atteso partendo
dallo stato s, scegliendo l’azione a e da lı̀ seguendo la policy π.
Qπ (s, a) = Eπ {Rt | st = s, at = a} =
(∞
)
X
k
Eπ
γ rt+k+1 | st = s, at = a
(5.9)
k=0
Chiameremo Qπ action value function per la policy π.
Le funzioni V π e Qπ possono essere stimate con l’esperienza. Per esempio, se
un agente segue una policy π e mantiene una media, per ogni stato incontrato,
dei valori di ritorno attuali che hanno seguito quello stato, allora tale media
convergerà al valore dello stato V π (s), man mano che il numero di volte che si
incontrerà quello stato tenderà all’infinito. Se vengono mantenute diverse medie
per ogni azione scelta in uno stato, allora queste medie convergeranno ai valori
delle azioni Qπ (s, a).
Questo tipo di metodi di stima sono detti Monte Carlo, perché essi riguardano calcolare la media su molti campioni casuali dei ritorni attuali. Se il numero
di stati è molto alto, non sarebbe pratico mantenere medie separate per ogni
stato. L’agente avrebbe dovuto mantenere V π e Qπ come funzioni parametrizzate ed aggiustare i parametri per meglio farli combaciare con i valori osservati.
42
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
Questo può produrre stime accurate, sebbene dipenda molto dalla natura della
funzione parametrizzata approssimatrice.
5.7.2
Bellman equation for V π
Una proprietà fondamentale delle value functions usate sia nell’apprendimento
con rinforzo sia nella programmazione dinamica è che esse soddisfano particolari relazioni ricorsive. Per ogni policy π e per ogni stato s, vale la seguente
condizione di consistenza tra il valore dello stato s e il valore dei suoi possibili
stati successori:
V π (s) = Eπ {Rt | st = s}
(∞
)
X
= Eπ
γ k rt+k+1 | st = s
k=0
(
= Eπ
rt+1 + γ
∞
X
)
k
γ rt+k+2 | st = s
k=0
"
=
X
π(s, a)
s0
a
=
X
a
X
π(s, a)
X
a
Pss
0
Rass0
(
+ γEπ
∞
X
)#
k
0
γ rt+k+2 | st+1 = s
k=0
a
a
π 0
Pss
(s )]
0 [Rss0 + γV
(5.10)
s0
dove è implicito che le azioni a sono prese dall’insieme A(s) e gli stati successivi, s0 , sono presi dall’insieme S o S + . L’equazione 5.12 è detta equazione
di Bellman per V π . Essa esprime la relazione tra il valore di uno stato ed i
valori dei suoi stati successivi.
La value function V π è l’unica soluzione all’equazione di Bellman. Tale
equazione sta alla base di molti modi per calcolare, approssimare e conoscere
V π . Definiamo i diagramma in figura 5.13 backup diagrams perché sono un
diagramma delle relazioni che formano la base delle operazioni di aggiornamento
(o backup), che sono il cuore dei metodi basati su apprendimento con rinforzo.
Queste operazioni trasferiscono il valore dell’informazione indietro ad uno stato
(o alla coppia stato azione) dagli stati successivi.
5.8. OPTIMAL VALUE FUNCTIONS
5.8
43
Optimal Value Functions
Risolvere un task di apprendimento con rinforzo significa, in parole povere,
trovare la policy che ottiene il reward più grande a lungo termine. Per processi
markoviani finiti, si può definire precisamente una policy ottimale nel modo
ottimale. Le value functions definiscono un ordine parziale tra le policy. Si dice
che una policy π è migliore o uguale ad un’altra policy π 0 se il suo reward a
lungo termine è maggiore o uguale a quello di π 0 per ogni stati. In altre parole:
0
π ≥ π 0 ←→ V π (s) ≥ V π (s) ∀s ∈ S
C’è sempre almeno una policy che è migliore o uguale a tutte le altre policy.
Questa è una policy ottimale. Sebbene ce ne possa essere più d’una, denotiamo
tutte le policy ottimali con π∗. Esse condividono la stessa funzione stato valore,
detta optimal state value function, indicata con V ∗ e definita come
V ∗ (s) = maxπ V π (s) ∀s ∈ S
Le policy ottimali inoltre condividono la stessa optimal action-value function,
indicata con Q∗ e definita come
Q∗ (s, a) = maxπ Qπ (s, a) ∀s ∈ (S), ∀a ∈ A(s)
Per ogni coppia stato-azione (s, a), questa funzione dà il valore atteso dopo
aver scelto l’azione a nello stato s e da qui aver seguito la policy ottimale. In
questo modo, possiamo scrivere Q∗ in termini di V ∗ :
Q∗ (s, a) = E{rt+1 + γV ∗ (st+1 ) | st = s, at = a}
44
5.8.1
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
Esempio 3.9 Golf
Per formulare il gioco del golf come un processo di reinforcement learning, contiamo una penalità (reward negativo) di -1 per ogni colpo finchè la palla non
entra nel buco. Lo stato è la posizione della palla. Il valore di uno stato è il
numero negativo di colpi che sono stati necessari per raggiungere il buco. Le
nostre azioni sono noi puntiamo e facciamo rotolare la palla, di certo, e quale
mazza noi scegliamo.
5.9
Policy Evaluation
Innanzitutto consideriamo come calcolare la state-value function V π per una
policy arbitraria π. In letteratura (riguardo alla Dynamic Programming) questo calcolo è chiamato policyevaluation. Ci riferiamo ad esso anche come
problemadipredizione (prediction problem).
Ricordiamo che per ogni s ∈ S:
5.9. POLICY EVALUATION
45
V π (s) = Eπ {Rt | st = s}
(∞
)
X
k
= Eπ
γ rt+k+1 | st = s
k=0
(
= Eπ
rt+1 + γ
∞
X
)
k
γ rt+k+2 | st = s
k=0
(
"
=
=
X
π(s, a)
X
a
s0
X
X
a
π(s, a)
a
Rass0 + γEπ
Pss
0
∞
X
)#
γ k rt+k+2 | st+1 = s0
k=0
a
Pss
0
[Rass0
π
0
+ γV (s )]
(5.11)
s0
dove π(s, a) è la probabilità di eseguire l’azione a nello stato s sotto la policy
π, e le previsioni sono condizionate da π, per indicare che è implicato il fatto di
seguire π. L’esistenza e l’unicita di V π sono garantite fintanto che sia γ < 1 o
un eventuale terminazione sia garantita da tutti gli stati sotto la policy π.
Se le dinamiche dell’ambiente sono completamente conosciute, allora la 5.12 è
un sistema di |S| equazioni simultaneamente lineari in |S| incognite (V π , s ∈ S).
Consideriamo una sequenza di value function approssimate V0 , V1 , V2 , ..., ognuna
delle quali mappa S + in R. L’approssimazione iniziale V0 è scelta arbitrariamente, e ogni successiva approssimazione è ottenuta usando l’equazione di Bellman
per V π come regola di aggiornamento:
Vk+1 (s) = Eπ {rt+1 + γVk (st+1 ) | st = s}
X
X
a
a
0
=
π(s, a)
Pss
0 [Rss0 + γVk (s )]
a
(5.12)
s0
per ogni s ∈ S. Chiaramente, Vk = V π è un punto fisso per questa regola di
aggiornamento poichè l’equazione di Bellman per V π ci assicura l’equivalenza
in questo caso. La sequenza Vk può essere vista in generale convergere verso V π
con k → ∞ sotto le stesse condizioni che garantiscono l’esistenza di V π . Questo
algoritmo è chiamato iterative policy evaluation.
Per produrre ogni successiva approssimazione, Vk+1 da Vk , iterative policy evaluation applica la stessa operazione per ogni stato s: rimpiazza il vecchio valore
di s con un nuovo valore ottenuto dai vecchi valori degli stati successori di s, e i
reward immediati attesi con tutti le trasnizioni possibili ad un passo secondo la
policy utilizzata. Questa operazione è chiamata full backup. Ogni iterazione
di iterative policy evaluation porta indietro (back up) di uno il valore di ogni
stato al fine di produrre la nuova funzione approssimata Vk+1 . Si indica f ull
poichè il backup riguarda tutti i possibili stati successivi, e non su un campione.
In figura 5.13 è riportata l’implementazione dell’algorritmo di iterative policy
evaluation.
46
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
(5.13)
5.9.1
Esempio: griglia
Si consideri la seguente griglia 4 x 4:
(5.14)
Gli stati non terminali sono S = {1, 2, . . . , 14}. Ci sono quattro azioni possibili in ogni stato, A = {up, down, right, lef t}, che deterministicamente causano
la corrispondente transizione dello stato, eccetto quelle azioni che porterebbero l’agente fuori dalla griglia, le quali lasciano lo stato inalterato. Quindi, per
esempio, P r ight5,6 = 1 , P r ight5,10 = 0 e P r ight7,7 = 1. Questo è un episodio. Il reward è −1 su tutte le transizioni finchè non viene raggiunto lo stato
terminale. Lo stato terminale è in grigio in figura (ne sono stati ipotizzati due,
ma se formalmente consideriamo una sequenza di stati, è come se fosse uno).
a
0
La reward function attesa è quindi Rss
0 = −1 per tutti gli stati s, s , e per
ogni azione a. Supponiamo che l’agente segua una policy casuale equiprobabile
(tutte le azioni con la stessa probabilità). Il lato sinistro della figura 5.15 mostra
la sequenza delle value function Vk calcolate dall’algoritmo di iterative policy
evaluation. La stima finale è infatti V π , che in questo caso dà ad ogni stato il
valore (negato, perchè il reward era −1) del atteso numero di passi da quello
stato fino allo stato terminale.
5.9. POLICY EVALUATION
47
(5.15)
48
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
(5.16)
5.10
Temporal Difference (TD)
I metodi temporal differnce (TD) possono imparare direttamente dall’esperienza
senza un modello delle dinamiche dell’ambiente. Il metodo TD più semplice è
il TD(0) e deve aspettare solamente il passo successivo (nota usa r piccolo non
R grande). V (st ) ← V (st ) + α[rt+1 + γV (st+1 ) − V (st )] L’obiettivo del TD è
una stima: modella i valori che ci aspettiamo Vπ (s) e utilizza la stima corrente
Vt al posto della vera Vπi ; quindi TD combina il modello del Monte Carlo con
il bootstrapping della DP. A differenza di iterative policy evaluation, i metodi
TD sono sample backup, poichè si basano su un campione (lo stato successivo
raggiunto seguendo la policy), e non su tutto l’insieme degli stati successivi.
5.10. TEMPORAL DIFFERENCE (TD)
49
(5.17)
(5.18)
50
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
(5.19)
5.11
Esempio: guida verso casa
Ogni giorno, tornando a casa dal lavoro, si tenta di predire quanto tempo ci
vorrà a tornare a casa. Quando lasci l’ufficio, fai caso all’ora, al giorno della
settimana, e a qualsiasi altra cosa possa essere rilevante. Poniamo che questo
venerdı̀ lascerai l’ufficio esattamente alle 6 in punto, e stimi che ci impiegherai
30 minuti a tornare a casa. Raggiungi la tua auto alle 6:05, e in quel momento
noti che inizia a piovere (ma chi li scrive questi esempi?!). Il traffico è spesso
più lento quando piove, quindi correggi la tua stima pensando di impiegarci 35
minuti da quel momento, quindi 40 in totale (ci sono voluti 5 minuti per arrivare
all’auto). 15 minuti dopo hai terminato di percorrere il pezzo di autostrada
del tuo viaggio, impiagandoci non troppo tempo. Quando esci su una strada
secondari, tagli la tua stima di 5 minuti, per un tempo totale di 35 minuti,
compresi i 5 per raggiungere la macchina. Sfortunatamente, a questo punto
sei bloccato dietro un camion che va piano per la pioggia, e la strada è troppo
stretta per un sorpasso. Quindi devi seguire il camion, fino a che non arrivi a
svoltare nella strada dove vivi alle 6:40; 3 minuti dopo sei a casa.
Si può riassumere la sequenza di stati, tempi e predizioni con la seguente tabella:
5.11. ESEMPIO: GUIDA VERSO CASA
51
(5.20)
I reward in questo esempio sono i tempi trascorsi tra ogni parte del viaggio. Non consideriamo discounting (γ = 1), e quindi il ritorno di ogni stato è il
tempo impiegato per uscire da quello stato. Il valore di ogni stato è il tempo
stimato per arrivare. La seconda colonna colonna fornisce il valore per ogni
stato incontrato.
Secondo l’approccio TD, bisognerebbe imparare immediatamente, spostando la
stima iniziale da 30 a 50. Infatti, ogni stima dovrebbe essere aggiornata con
quella che immediatamente la segue. La figura qui sotto mostra le predizioni fatte secondo il metodo TD (con α = 1). Ogni errore è proporzionale al
cambiamento nel tempo della predizione.
(5.21)
52
5.12
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
Algoritmo SARSA
(5.22)
(5.23)
5.12.1
Algoritmo
SARSA (State-Action-Reward-State-Action) è un algoritmo di apprendimento di tipo TD basato su policy Markoviana. E’ un algoritmo on-policy,
poichè bisogna stimare Qπ (s, a) per l’attuale comportamento della policy π e
per tutti gli stati s e le azione a. Il nome riflette il fatto che la funzione principale per l’aggiornamento di Q-value dipende dallo stato corrente dell’agente st al
tempo t, dall’azione at , dal reward ottenuto rt , dallo stato st+1 in cui l’agente si
troverà dopo aver compito l’azione at , e dalla successiva azione at+1 che l’agente
andrà a compiere. In sostanza, invece che apprendere tra i valori degli stati, si
apprende tra valori di stato-azione.
5.12. ALGORITMO SARSA
53
La funzione principale dell’algoritmo 5.22 è la seguente:
Q(st , at ) ← Q(st , at ) + α[rt+1 + γQ(st+1 , at+1 ) − Q(st , at )]
Un agente SARSA interagisce con l’ambiente e aggiorna la policy basandosi
sull’azione scelta in base alla policy stessa. Il valore Q è aggiornato con un
errore, aggiustato dal parametro α (come detto nella sezione 4.5). Il valore Q
rappresenta il possibile reward ricevuto nello step successivo scegliendo l’azione
at nello stato st , più il reward scontato ricevuto dall’osservazione della successiva coppia stato-azione (st+1 e at+1 ). La differenza tra SARSA e Q-Learning
sta nel fatto che sarsa impara seguendo del tutto le scelte dettate dalla policy,
mentre Q-Learning adotta più un meccanismo di exploration/exploitation.
5.12.2
Condizioni iniziali Q(s0 , a0 )
Poichè SARSA è un algoritmo iterativo, assume implicitamente l’esistenza di
una condizione iniziale prima che avvenga il primo aggiornamento. Un elevato
valore iniziale (come visto nella sezione 4.6), può incoraggiare l’esplorazione:
non importa quale azione venga effettuata, la regola di aggiornamento farà in
modo che abbia un valore minore delle altre alternative, cosı̀ da incrementare le
loro probabilità di scelta. E’ quindi stato provato che è utile settare il reward
di un’azione quando viene scelta per la prima volta con il valore di Q. Questo
permetterà immediatamente di imparare.
54
5.13
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
Algoritmo Q-Learning
(5.24)
(5.25)
5.13.1
Algoritmo
L’obiettivo di Q-learning è quello di permettere ad un sistema di apprendimento
automatico di adattarsi all’ambiente che lo circonda migliorando la scelta delle
azioni da eseguire. Per giungere a questo obiettivo, cerca di massimizzare il
valore del successivo premio per sconto. La funzione Q appresa, approssima
direttamente Q∗ (la value function ottima), indipendentemente dalla policy seguita (ecco perchè Q-learning è off-policy)
5.14. ELEGIBILITY TRACE E TD(λ)
55
Il modello del problema può essere descritto da un agente, un insieme di
stati S e un insieme di azione per stato A. Effettuando un’azioneat l’agente si
muove da uno stato st ad un altro stato st+1 . Ogni stato fornisce all’agente un
reward, ovviamente. L’obiettivo dell’agente è quello di massimizzare il reward
totale. L’agente fa questo apprendendo quali sono le azioni ottimali associate
ad ogni stato.
Prima che l’apprendimento inizi, Q restituisce un valore fisso, scelto arbitrariamente (vedi 4.6) . Poi, ogni volta che l’agente riceve un reward (lo stato è
cambiato) vengono calcolati nuovi valori per ogni combinazione stato-azione. Il
cuore dell’algoritmo fa uso di un processo iterativo di aggiornamento e correzione basato sulla nuova informazione.
Q-learning converge più lentamente di SARSA, ma è in grado di imparare più
rapidamente nel caso l’ambiente si modifichi, visto che ad ogni aggiornamento
andrà a cercare quale sia l’azione migliore mentre SARSA seguirebbe la policy
ogni volta.
Q(st , at ) ← Q(st , at ) + α[rt+1 + γmaxa Q(st+1 , at+1 ) − Q(st , at )]
5.14
Elegibility trace e TD(λ)
L’eligibility trace di uno stato esprime la misura in cui ciascuno stato è sottoponibile a cambiamenti del suo valore in funzione del reward ottenuto ad un
certo istante di tempo. L’idea è quella che se ottengo un reward all’istante t
questo reward vada spalmato sugli stati attraversati per raggiungerlo in misura
direttamente proporzionale alla distanza temporale da t. Questo significa quindi
che analizzando i reward futuri, darò un maggiore spazio ai reward più prossimi:
il compito di λ è proprio quello di regolare la velocità di decremento del peso
del reward.
(5.26)
56
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
(5.27)
(5.28)
(5.29)
5.14. ELEGIBILITY TRACE E TD(λ)
57
(5.30)
(5.31)
58
CAPITOLO 5. THE REINFORCEMENTE LEARNING PROBLEM
59
60
CAPITOLO 6. INTELLIGENZA BIOLOGICA
Capitolo 6
Intelligenza biologica
6.1
Il neurone biologico
6.1.1
Struttura del neurone
(6.1)
6.1. IL NEURONE BIOLOGICO
61
Il neurone è l’unità cellulare che compone il sistema nervoso. In virtù dei
molti scopi ai quali il sistema nervoso assolve esistono molte tipologie di neuroni
ma tutte hanno una struttura di base come quella dello schema. La parte centrale del neurone è detta soma ed è costituita dal pirenoforo che contiene al suo
interno il nucleo cellulare(che come in ogni cellula contiene a sua volta il DNA)
e tutti gli altri organelli cellulari(mitocondi, reticoli endoplasmatici ecc..). Da
essa si diramano diversi prolungamenti endoplasmatici detti neuriti. Quelli più
corti sono i dentriti che fungono da dispositivo di input del neurone propagando
gli impulsi che ricevono in direzione centripeta(cioè verso il pirenoforo), non sono dei buoni conduttori dei segnali nervosi quindi il segnale si trasmette solo su
brevissime distanze. Un solo prolungamento invece è molto più lungo e prende
il nome di assone. L’assone funge invece da dispositivo di output del neurone
e quindi trasmette in direzione centrifuga i segnali nervosi e, al contrario dei
dentriti è un ottimo conduttore; infatti l’assone è dotato di un rivestimento
protettivo detto guaina melinica costituito da una sostanza, ricca di lipidi, che
funge da isolante. La guaina melinica presenta delle strozzature dette nodi di
Ranvier attraverso i quali l’impulso salta per raggiungere le terminazioni dell’assone(conduzione saltatoria). La combinazione tra l’isolamento fornito dalla
mielina e i salti del segnali consentiti dai nodi dii Ranvier consente all’impulso di
viaggiare molto più velocemente lungo l’assone. Per comprendere l’importanza
di questo sistema nell’organismo umano basta pensare che la sclerosi multipla è
solo una delle molte patologie causate da anomalie nel rivestimento degli assoni.
La parte terminale dell’assone si dirama nelle terminazioni assoniche.
6.1.2
Sinapsi (trasmissione dell’informazione tra neuroni)
Queste strutture sono quelle che sono coinvolte nella sinapsi ovvero la vera e
propria comunicazione tra due neuroni. In questa fase Il neurone che trasmette
è detto presinaptico mentre quello che riceve postsinaptico. Le sinapsi avvengono coinvolgendo sempre l’assone del neurone presinaptico mentre il neurone
postsinaptico può partecipare con i suoi dentriti(e questa è la forma di sinapsi
più frequente) ma anche con il corpo centrale o l’assone. Le due parti coinvolte in ogni caso non vengono a contatto diretto ma rimane sempre una fessura
sinaptica. Il segnale viaggia quindi lungo canali elettrici all’interno dei singoli
neuroni, spiegati nella prossima sezione, mentre nelle fessure sinaptiche su un
canale chimico. La comunicazione nella fessura avviene infatti grazie ai neurotrasmettitori, sostanze contenute in vescicole poste nelle terminazioni assioniche
che vengono aperte quando uno stimolo le raggiunge e attraverso la fessura sinaptica raggiungono i ricettori del neurone postsinaptico. I neurotrasmettitori
sono diverse decine ma possono essere divisi in eccitatori e inibitori a seconda
dell’impulso che raggiunge l’assone vengono rilasciati i primi o i secondi che
scateneranno effetti opposti una volta raggiunti i ricettori postsinaptici.
62
CAPITOLO 6. INTELLIGENZA BIOLOGICA
6.1.3
Funzionamento sopra e sotto soglia (trasmissione
dell’informazione all’interno del neurone)
La trasmissione degli impulsi all’interno di un neurone avviene tramite canali
ionici. Il potenziale a riposo di una membrana è di -70mV e all’esterno sono
presenti ioni K + (potassio). La membrana è semipermeabile(passano solo gli
ioni K + ) e il passaggio degli ioni fa crescere il potenziale della membrana. Al
raggiungimento di un valore di soglia(-55mV) i canali ionici della membrana
si aprono completamente consentendo agli ioni di sodio di uscire e agli ioni
di potassio di entrare depolarizzando la membrana e generando il potenziale
di azione(cioè il segnale che viene definito anche spike). A questo punto la
membrana si iperpolarizza portando il potenziale ad un valore inferione ai 70mV e i canali ionici faranno riuscire gli ioni di potassio e rientrare gli ioni
sodio usando delle pompe ATP sodio potassio. Si tornerà quindi lentamente
alla situazione di riposo.
6.1.4
Potenziale recettoriale
Il potenziale recettoriale è uno stimolo più locale del potenziale di azione. I recettori sensoriali possono modificare la polarizzazione della membrana cellulare
del neurone stimolando la possibilità di trasmettere un impulso(il potenziale di
azione) se diminuisce la polarizzazione o diminuendola se l’aumenta.
6.1.5
Classificazione dei neuroni
• Neuroni motori, anche detti neuroni efferenti o moto-neuroni. Emanano impulsi di tipo motorio agli organi alla periferia corporea. Hanno in
ingresso un altro neurone e in uscita un muscolo.
• Neuroni sensoriali, anche detti neuroni afferenti acquisiscono stimoli
dagli organi sensoriali per trasmetterli al sistema nervoso centrale. Hanno
in ingresso uno dei sensi e in uscita un altro neurone.
• Interneuroni, hanno neuroni sia in ingresso che in uscita. Costituiscono
il sistema nervoso centrale e si occupano di integrare i dati forniti dai
neuroni sensoriali per generare gli stimoli per i neuroni motori.
6.1. IL NEURONE BIOLOGICO
6.1.6
63
Aree cerebrali principali
(6.2)
La aree principali della corteccia cerebrale sono in diretta connessione con
le tipologie funzionali dei neuroni:
• Aree sensoriali: si occupano del preprocessamento dell’informazione sensoriale. Si dividono tra unimodiali, che trattano informazioni provenienti da un solo senso, e multimodali che invece integrano le informaizoni
provenienti da più modalità sensoriali.
• Aree motorie: si occupano di elaborare l’informazione motoria che verrà
trasmessa ai neuroni motori.
• Aree associative multimodali: si occupano di tutto ciò che porta dalle
informazioni sensoriali alle informazioni motorie.
Oltre alle appena descritte, si può anche eseguire una divisione in lobi del
cervello:
• Lobo frontale: pianificazione dell’attività e rappresentazione delle azioni
• Lobo parietale:organizzazione spaziale delle informazioni spaziali e rappresentazione spaziale del corpo umano
• Lobo occipitale: visione
• Lobo temporale: udito,apprendimento, riconoscimento(memoria) rappresentazioni e emozione.
6.1.7
Elaborazione di uno stimolo
Il processo di elaborazione di uno stimolo esterno può essere diviso in due fasi.
1. Gli stimoli esterni sono percepiti dal sistema nervoso periferico che li trasforma in informazioni sensoriali. Dal sistema nervoso periferico passa
quindi nel midollo spinale(sistema nervoso centrale) e attraverso questo
64
CAPITOLO 6. INTELLIGENZA BIOLOGICA
raggiunge quindi la corteccia cerebrale. Qui passa innanzitutto in un area
sensoriale primaria che si occuperà di preprocessare le informazioni che
passeranno quindi a una zona di associazione unimodale nella quale vengono uniti molti stimoli simili integrandone le informazioni. Solo a questo
punto le informazioni risultanti passeranno ad un area di associazione
multi-modale nella quale sono integrate informazioni provenienti da aree
sensoriali diverse.
2. Le informazioni arrivate nella zona di associazione multimodale vengono
quindi trasformate in comandi da inoltrare tipicamente verso la zona motoria primaria della corteccia cerebrale dalla quale vengono generati gli
impulsi per generare le vere e proprie azioni motorie
6.1.8
Esecuzione dei movimenti volontari di uno stimolo
1. Identificazione dell’obbiettivo del movimento (e.g. riconoscimento di un
bicchiere d’acqua e della sua posizione nello spazio 3D)
2. Pianificazione del movimento (e.g. definizione dei gradi di libertà che
consentono di spostare la mano sul bicchiere + definizione del tipo di
presa della mano e dei gradi di libertà relativi; coordinamento)
3. Esecuzione. Invio dei comandi motori adeguati ai centri del brain stem e
da lı̀ al midollo spinale.
6.1.9
Codice di popolazione
Gli studi realizzati da Georgopulos e altri scienziati hanno dimostrato che ogni
neurone ha una direzione preferenziale. In sostanza ogni volta che viene compiuto un movimento dal corpo l’attività del neurone i-esimo, cioè la sua frequenza
di scarica, dipenderà dall’angolo che esiste tra la direzione del movimento e la
sue direzione preferenziale. Sarà massima quando le due coincidono e diminuirà
all’aumentare dell’angolo.
6.1. IL NEURONE BIOLOGICO
65
(6.3)
Di conseguenza la direzione di movimento viene
Pcodificata come somma pesata dei vettori di direzione preferenziale dm = i di cos αi Ne deriva che la
direzione del movimento non è codificata dal neurone singolo ma dall’insieme
dei neuroni rendendo tutto il sistema robusto rispetto ai problemi che possono
affliggere i singoli neuroni.
6.1.10
I neuroni-specchio
I neuroni specchio sono una classe di neuroni che si attivano quando un animale
compie un’azione e quando l’animale osserva la stessa azione compiuta da un
altro soggetto.
Attraverso studi di risonanza magnetica, si è potuto constatare che i medesimi neuroni attivati dall’esecutore durante l’azione, vengono attivati anche
nell’osservatore della medesima azione. Ulteriori indagini estese agli esseri umani non solo hanno confermato le attività neuronali sulla base di studi di neuroimmagine, ma hanno anche condotto a concludere che tali neuroni vengono
attivati anche nei portatori di amputazioni o plegie degli arti, nel caso di movimenti degli arti, nonché in soggetti ipovedenti o ciechi: per esempio basta il
rumore dell’acqua versata da una brocca in un bicchiere per l’attivazione, nell’individuo cieco, dei medesimi neuroni che sono attivati in chi esegue l’azione
del versare l’acqua nel bicchiere o comunque sia in qualsiasi altro tipo di contenitore inventato per contenere un liquido.
Questa classe di neuroni è stata individuata nei primati, in alcuni uccelli e
nell’uomo. Nell’uomo, oltre ad essere localizzati in aree motorie e premotorie,
si trovano anche nell’area di Broca e nella corteccia parietale inferiore. Alcuni
scienziati considerano la scoperta dei neuroni specchio una delle più importanti
66
CAPITOLO 6. INTELLIGENZA BIOLOGICA
degli ultimi dieci anni nell’ambito delle neuroscienze. Per esempio Ramachandran ha scritto un saggio sulla loro importanza potenziale nello studio dell’imitazione e del linguaggio. Nonostante non vi siano dubbi sull’esistenza dei
neuroni specchio nella scimmia, la grande diffusione di questa scoperta anche in
ambito non accademico o para accademico o non del tutto accademico ha fatto
sı̀ che in alcuni casi si siano sollevate interpretazioni non suffragate da evidenze sperimentali. I neuroni specchio nella scimmia e l’analogo sistema specchio
dimostrato nell’uomo non solo con tecniche di neuroimmagine ma anche elettrofisiologiche (EEG) sono un’osservazione neurofisiologica che va tenuta distinta
nella sua validità da opinioni interpretative sul loro possibilissimo ruolo.
Esperimento
Negli anni ’80 e ’90 del secolo scorso il gruppo di ricercatori dell’Università di
Parma coordinato da Giacomo Rizzolatti e composto da Luciano Fadiga, Leonardo Fogassi, Vittorio Gallese e Giuseppe di Pellegrino si stava dedicando allo
studio della corteccia premotoria. Avevano collocato degli elettrodi nella corteccia frontale inferiore di un macaco per studiare i neuroni specializzati nel
controllo dei movimenti della mano, come il raccogliere o il maneggiare oggetti.
Durante ogni esperimento era registrato il comportamento dei singoli neuroni
nel cervello della scimmia mentre le si permetteva di accedere a frammenti di
cibo, in modo da misurare la risposta neuronale a specifici movimenti.
Come molte altre notevoli scoperte, quella dei neuroni specchio fu dovuta al
caso. L’aneddotica racconta che, mentre uno sperimentatore prendeva una banana in un cesto di frutta preparato per degli esperimenti, alcuni neuroni della
scimmia che osservava la scena avevano reagito. Come poteva essere accaduto
questo, se la scimmia non si era mossa? Se fino ad allora si pensava che quei
neuroni si attivassero soltanto per funzioni motorie? In un primo momento gli
sperimentatori pensarono si trattasse di un difetto nelle misure o un guasto nella
strumentazione, ma tutto risultò a posto e le reazioni si ripeterono non appena
fu ripetuta l’azione di afferrare.
Da allora questo lavoro è stato pubblicato, con l’aggiornamento sulla scoperta di neuroni specchio localizzati in entrambe la regioni parietali frontali
inferiori del cervello e confermato.
6.2
6.2.1
Algoritmi genetici
Evoluzione e terminologia
Con evoluzione intendiamo un processo discontinuo su un arco di tempo reale
ampio, e su un numero di individue grande, tale che porti la specie al successo. A
livello di terminologia, ”computazione evoluzionistica” indica un’ampia gamma
di sistemi di risoluzione di problemi di ottimizzazione che emulano l’evoluzione
naturale nel ricercare la soluzione migliore.
6.2. ALGORITMI GENETICI
67
• Cromosoma: la codifica di una possibile soluzione per un dato problema
di solito rappresentata tramite un array di bit o caratteri. Un cromosoma
può essere associato ad una variabile, più variabili possono essere associate a diversi cromosomi. Corpuscolo all’interno della cellula contenente un
tratto di DNA. Il DNA è una struttura allungata, a doppia elica, costituita da filamenti di basi affacciate e connesse a coppie: Adenina-Timina,
Citosina-Guanina o Uracile.
• Gene: un singolo bit o un insieme di bit, parte della soluzione (e.g. parte
di una variabile). Sequenza di basi del DNA che codifica un’informazione
(e.g. colore occhi), sottoparti di un cromosoma.
• Ricombinazione: vengono generate nuove soluzioni mescolando due soluzioni (cromosomi). Nel generare il cromosoma di un figlio, tratti omologhi del cromosoma dei genitori si scambiano materiale genetico.
• Mutazione: cambiamenti casuali nella soluzione. “Errore” che avviene
durante la replicazione del DNA generato dalla ricombinazione.
• Ottimizzazione genetica: codifica della potenziale soluzione di uno specifico problema in una struttura dati associabile ad un cromosoma artificiale. Si ha un’applicazione iterativa del processo di ricombinazione e di
mutazione a queste strutture. La valutazione del risultato è fatta mediante fitness, cioè una misura del successo di un individuo della specie in
relazione alla sua interazione con l’ambiente. Spesso non si è in grado di
utilizzare metodi secondo gradiente.
6.2.2
Algoritmi genetici
(6.4)
68
CAPITOLO 6. INTELLIGENZA BIOLOGICA
1. Genera popolazione iniziale: vengono creati a random i cromosomi inizializzarli.
2. Viene valutata la fitness dei cromosomi.
3. Se la soluzione è ottima finisco e mando in output i cromosomi dell’individuo migliore (lo aggiungo alla popolazione)
4. Se non è ottima creo una nuova popolazione in questo modo:
(a) Selezione. Scelgo i genitori migliori.
criterio e ne esistono diversi:
Bisogna quindi scegliere il
• ordinamento (scelgo i migliori);
• casuale (magari solo per i migliori);
• probabilità proporzionale alla fitness (roulette);
(b) Ricombinazione. Prendo coppie di genitori e genero loro combinazioni. Se i cromosomi sono binari si può:
• ricombinare da un singolo punto(a sx da un genitore e a dx
dall’altro)
• ricombinare da 2 punti(a sx dal primo al centro dal 2o e a dx dal
1o)
• ricombinazione uniforme: ogni bit scelto casuealmente da uno o
dall’altro
• ricombinazione aritmetica: uso operatori algebrici(tipo end or)
(c) Mutazione. Modifico i geni dei figli. Alcuni bit in maniera casuale
vengono negati.
6.2.3
Ottimizzazione evoluzionistica
Il diagramma di flusso è lo stesso degli algoritmi genetici perchè l’ottimizzazione
evoluzionistica non è altro che una sua sottoclasse che si distingue perchè:
• la soluzione è codificata in forma esplicita;
• i genitori iniziali sono scelti da una distribuzione statistica(solitamente
uniforme);
• la selezione normalmente non è polarizzata, ogni genitore ha le stesse
probabilità.
Passi:
1. Ricombinazione:
(a) combinando cromosomi corrispondenti agli elementi in maniera discreta e in tal caso vengono prese le componenti o da uno o dall’altro
genitore
6.2. ALGORITMI GENETICI
69
(b) combinando cromosomi in maniera intermedia cioè applicando una
quale combinazione lineare tra gli elementi dei genitori(che possono
quindi anche essere molteplici)
(c) selezionando uno tra gli elementi disponibili(posizione media o elemento intermedio)
2. Mutazione: i valori devono essere perturbati aggiungendo un rumore casuale. Viene usata una distribuzione statistica(spesso una normale). La
distribuzione viene detta passo di mutazione ed è comune a tutti i cromosomi
3. Selezione: µ genitori+ λ figli
(a) strategia(µ + λ): i genitori vengono scelti tra gli µ + λ elementi
(strategia elitista tendo a mantenere i padri)
(b) strategia(µ , λ):scelgo i nuovi genitori solo tra i figli. Normalmente è
la stategia preferita.
Adattamento della mutazione e matrice di covarianza
Per effettuare la mutazione del cromosoma dei figli si usa una distribuzione
statistica, normalmente una normale. La distribuzione prende il nome di passo
di mutazione e nel caso della normale il passo è identificato dalla varianza σ.
Rendere questo parametro variabile a seconda dei risultati ottenuti può aiutare
di molto lo sviluppo dell’algoritmo.
• Regola 51 : σ viene aggiornato ogni k epoche sulla base della percentuale
di mutazioni con successo.
– r(n) =
1
c
se ps >
– r(n) = c se ps <
– r(n) = 1 se ps =
1
5
1
5
1
5
dove ps è la percentuale di mutazioni con successo e 0.8 ≤ c ≤ 1. σ 0 (n) =
σ(n) • r(n)
• Matrice di covarianza. Se al contrario decido di associare ad ogni cromosoma un σ diverso dovrò utilizzare un meccanismo più complesso di
aggiornamento:
– (x0 )i (n) = xi (n) + (σ 0 )i (n) • Ni (0, 1) che può essere espresso in forma
matriciale: X 0 (n) = X(n) + D(n) • Ni (0, 1) Per effettuare questo
aggiornamento la matrice G (che rappresenta tutti i parametri del
sistema) viene aggionata usando un Evolution Path s
70
CAPITOLO 6. INTELLIGENZA BIOLOGICA
(6.5)
(6.6)
6.3
Reti neurali
6.3.1
Introduzione
Le reti neurali sono il collegamento tra il neurone biologico e il machine learning.
L’idea di base è quella dell’ipotesi debole dell’AI.
Una rete neurale fa del parallelismo il suo punto di forza: mette insieme tante
eleborazioni parziali che avvengono nelle varie aree di computazione. Ovviamente, anche se le reti neurali sono ispirate ai sistemi biologici, la loro implementazione informatica è estremamente semplificata. E’ un sistema a basso
consumo (si basa solo sulla pompa sodio-potassio).
6.3.2
Dal neurone artificiale alle reti neurali
Secondo una definzione della DARPA, una rete neurale è ”un sistema composto
dal molti elementi di processamento semplici operanti in parallelo, la cui funzione è determinata dall’obiettivo della rete, dalla robustennza delle connessioni
6.3. RETI NEURALI
71
e il processamento compiuto tra i nodi. Le architetture delle reti neurali sono
ispirate all’architettura dei sistemi nervosi biologici, che usano molti elementi
di processamento semplici operanti in parallelo per ottenere alte prestazioni di
computabilità”.
Le reti neurali offrono diverse caratteristiche di elaborazione:
• apprendimento basato su esempi;
• auto-organizzazione dell’informazione nella rete;
• robustezza ai guasti (codifica ridondante dell’informazione;
• funzionamento real-time;
• basso consumo.
Le reti neurali sono modelli non lineari per l’approssimazione della soluzione di
problemi dei quali non esiste un modello preciso (o se esiste è troppo oneroso computazionalmente). I parametri dei modelli risultanti (semiparametrici)
vengono calcolati mediante l’utilizzo di esempi (dati di ingresso e uscita desiderata). Ci sono connessioni con il dominio della statistica. Vengono utilizzate
soprattutto per classificazione e regressione, o per lo studio dei processi cognitivi.
6.3.3
Modello di McCulloch-Pitts (1943)
Il modello di McCulloch-Pitts è il più semplice e primo modello di rete neurale
(anche se non è proprio una rete, ma una rappresentazione dell’azione di un
neurone vista in maniera analogica). Si considerano un insieme di input asincroni uij verso il nodo i con peso wij associato ad ognuno di questi input (i
pesi sono supposti costanti). Viene fatta la somma pesata di tutti gli input, e
se essa supera un certo valore µi , può essere generato uno spike, rappresentato
dall’output yi . Più analiticamente:
yi (t + 1)
(= θ(wij uij (t) − µi
1, if (x ≥ 0)
θ(x) =
0, else
(6.7)
La morte del neurone di McCuccloch-Pitts è avvenuta nel 1969, quando si è
iniziato ad usare funzioni XOR. Tali funzioni, non sono linearmente separabili,
72
CAPITOLO 6. INTELLIGENZA BIOLOGICA
cioè, mappando i valori risultanti della funzione su un piano, non è possibile
trovare una retta che separi la parte di piano contenente i valori veri da quella
contenente i valori falsi. Il modello di McCulloch-Pitts può apprendere
solo da funzioni linearmente separabili.
(6.8)
6.3.4
Spiking neurons
Gli spiking neurons sono neuroni la cui uscita è il singolo spike (qulli da
cui escono y1 e y2 in figura). L’uscita è compresa tra un valore minimo e un
valore massimo (secondo una modellazione realistica). Nella seconda figura, è
rappresentata una rete neurale ad un livello: yi = g(wij uij − µi.
(6.9)
6.3. RETI NEURALI
73
(6.10)
6.3.5
Rete neurale a più livelli
(6.11)
In una rete neurale a più livelli, esistono invece diverse unità nascoste tra
l’input e l’output, che costituiscono livelli di unità di attivazione. Sono collegati
l’uno all’altro in cascata, e possiedono input convergenti e output divergenti.
L’insieme è chiamato perceptrone. Un perceptrone è una rete a livelli, con
un flusso unidirezionale di elaborazione: l’otput viene interpretato come una
frequenza di scarica del neurone d’uscita della rete. Le reti multi-strato hanno
un’elevata capacità computazionale, ma anche un’elevate complessità.
74
CAPITOLO 6. INTELLIGENZA BIOLOGICA
(6.12)
In input vediamo diversi valori uM che entrano nella rete insieme ai relativi
valori associati wM j . Allinterno della rete, l’informazione viene processata parallelamente da un arbitrario numero di neuroni, raggruppati in unità neurali.
Tali unità applicano funzioni g tipicamente non lineari: gli output yi saranno i
risultati pesati su w (in uscita) delle somme dei risultati ottenuti dalle funzioni
g. A questo livello (uscita) si ritorna alla linearità.
(6.13)
6.3.6
L’apprendimento in reti di perceptroni
Come si vedrà in seguito, esistono diversi tipi di apprendimento, ma le reti
neurali usano tipicamente quello che è chiamato apprendimento supervisio-
6.3. RETI NEURALI
75
nato (o learning with a teacher): viene specificato per ogni coppia di pattern
di input/output, il pattern desiderato di output. Cioè, dati dei valori di input
e i rispettivi valori di output, compito della rete sarà trovare la funzione che
meglio approssima ogni input al rispettivo output. Come abbiamo già visto,
la rete opera trasformando un spazio di input in uno spazio di output: l’apprendimento si traduce quindi nella modifica dei parametri wij e µj migliore
al fine di approssimare i pattern di input e di output: yi = g(wij ui − µj . In
realtà il valore µ dovrebbe esseere fissato, quindi l’ottimizzazione consiste nel
ridurre l’errore di approssimazione introdotto da un’errata valutazione dei pesi.
Tipicamente, anche se con tutte le limitazioni dovuti alla tipologia di algoritmo,
come la difficoltà di calcolare minimi globali, si utilizza il metodo del gradiente.
Tale soluzione iterativa permette di aggiornare il valore del vettore pesi W di
modo che W nuovo = W vecchio + 4W , di modo tale che il nuovo errore abbia
norma minore di W vecchio .
La funzione obiettivo è:
minw J(.) dato J = kY D − g(W nuovo U )k ≤ kY D − g(W vecchio U )k
dove Y D è l’otuput desiderato noto.
Algoritmo
Fino a quando l’apprendimento non è stato completato:
1. Presentazione di un pattern di input / output (dati).
2. Calcolo dell’output della rete con il pattern corrente (modello).
3. Calcolo dell’errore (distanza).
4. Calcolo dei gradienti (apprendimento).
5. Calcolo dell’incremento dei pesi (apprendimento).
L’aggiornamento dei pesi può avvenire:
• per trial (ogni pattern): per ogni insieme di input/output faccio l’aggiornamento della rete (più veloce);
• per epoche (ogni insieme di pattern): prendo un insieme di coppie di
input/output, calcolo l’incremento, ne faccio la media e utilizzo questa
media per fare l’aggiornamento (c’è un certo filtraggio, perchè ad esempio
i valori opposti si annullano, quindi, a fronte di un costo computazionale maggiore, trovo un migliore valore dei pesi per l’insieme di pattern
considerato).
L’apprendimento in una rete neurale si divide in due fasi:
• training: è la fase in cui ad una rete vengono forniti pattern (coppie
input/output, dette training set) al fine di calcolare i pesi più corretti per
il problema in esame;
76
CAPITOLO 6. INTELLIGENZA BIOLOGICA
• test: è la fase in cui viene fornito al sistema un diverso insieme di input
(test set) di cui si conosce l’output, per verificare la bontà delle soluzioni
fornite dalla rete (accuratezza).
6.3.7
Caso lineare e non lineare
Caso lineare
P
Il
i=1 wij ui − µj =
P caso lineare è il caso in cui g(.) = 1, quindi yi =
(w
u
).
In
questo
caso,
si
tratta
di
una
soluzione
di
un sistema lineaij i
i=0
re di pesi, quindi Y = W U . La condizione di risolubilità è che W sia di rango
massimo, dunque che i vari w siano linearmente indipendenti.
La soluzione matriciale è computazionalmente troppo impegnativa, dunque si
preferisce adottare
una soluzione iterativa:
P P
P P D
P
D
J = E(w) = 21 p [ j (yjp
− yjp )2 ] = 12 p [ j (yjp
− ( i wij uip ))2 ]
e
P
P
P
4wij = −α ∂w∂ij 12 j (yjD − ( i wij ui ))2 = +α j (yjD − yj )ui
Quest’ultima per il calcolo di 4wij è detta δ-rule, proprio per il suo compito di
calcolare l’errore (δ o 4).
Il ruolo di α è fondamentaleper calmierare il calcolo di 4wij , ed evitare che un
peso sia troppo specifico per determinati pattern (overfitting1 o che avvengano
troppe oscillazioni durante l’apprendimento senza avere convergenza.
Caso non lineare
Il caso non lineare
è molto simile:
P P
P P D
P
D
J = E(w) = 12 p [ j (yjp
− yjp )2 ] = 12 p [ j (yjp
− g( i wij uip ))2 ]
e
P D
P
P
D
− g( i wij uip ))2 = +α(yjp
4wijp = −α ∂w∂ij 21 j (yjp
− yjp )uip g 0 ( i wij uip )
anche quest’ultima per il calcolo di 4wijp è detta δ-rule.
1 In statistica e in informatica, si parla di overfitting (sovradattamento) quando un modello statistico si adatta ai dati osservati (il campione) usando un numero eccessivo di parametri.
Un modello assurdo e sbagliato può adattarsi perfettamente se è abbastanza complesso rispetto alla quantità di dati disponibili. Spesso si sostiene che l’overfitting sia una violazione della
legge del Rasoio di Occam.
Il concetto di overfitting è molto importante anche nell’apprendimento automatico e nel data
mining. Di solito un algoritmo di apprendimento viene allenato usando un certo insieme di
esempi (il training set appunto), ad esempio situazioni tipo di cui è già noto il risultato che
interessa prevedere (output). Si assume che l’algoritmo di apprendimento (il learner) raggiungerà uno stato in cui sarà in grado di predire gli output per tutti gli altri esempi che ancora
non ha visionato, cioè si assume che il modello di apprendimento sarà in grado di generalizzare. Tuttavia, soprattutto nei casi in cui l’apprendimento è stato effettuato troppo a lungo
o dove c’era uno scarso numero di esempi di allenamento, il modello potrebbe adattarsi a caratteristiche che sono specifiche solo del training set, ma che non hanno riscontro nel resto dei
casi; perciò, in presenza di overfitting, le prestazioni (cioè la capacità di adattarsi/prevedere)
sui dati di allenamento aumenteranno, mentre le prestazioni sui dati non visionati saranno
peggiori.
Sia nella statistica che nel machine learning, per evitare l’overfitting, è necessario attuare
particolari tecniche, come la cross-validation e l’arresto anticipato, che indichino quando un
ulteriore allenamento non porterebbe ad una migliore generalizzazione.
6.3. RETI NEURALI
77
Una funzione importante, tipica approssimazione dei sistemi non lineari, è la
funzione sigmoidale. Tale funzione è particolare poichè la sua derivata è ancora
una funzione sigmoidale, e tende a 1 per x → ∞, mentre tende a 0 per x → −∞
(tipico dei processi biologici e logistici).
(6.14)
6.3.8
Termine dell’apprendimento
L’algoritmo di un apprendimento può utilizzare diverse tecniche al fine di decidere quando terminare:
• bootstrap. Vengono estratti pattern con ripetizioni (???). ”Faccio il
traininig invece che con un insieme di dati fisso, con un insieme di dati
che viene estratto a caso con ripetizioni. Quindi io ho 100 patern, per il
training ne uso 60, ma questi 60 li estraggo ogni volta che, ad esempio,
faccio un’epoca. Quindi non faccio il training sempre sullo stesso dataset,
ma su un dataset che è diverso ogni volta, che si suppone in media coincida
con il dataset desiderato.” (cit. Borghese da videolezione)
• test dell’errore. Itero fino a che l’errore sul training set coincide con
l’errore sul test set. Aumentando i parametri rischio l’overfitting: l’errore sul training set continuerebbe a decrescere, mentre quello sul test set
comincerebbe a salire; il punto in cui gli errori divergono è quando devo
fermarmi.
• utilizzo dei risk. Si preferisce utilizzare uno structural risk, cioè un
valore che introduce nella funzione costo l’insieme dei parametri utilizzata,
che l’empirical risk, cioè la valutazione dell’errore (quello di cui abbiamo
discusso la minimizzazione). Tuttavia tutto questo fa parte di tecniche
complesse.
78
CAPITOLO 6. INTELLIGENZA BIOLOGICA
6.3.9
Riepilogo
Topologia
I neuroni connessionisti sono basati su:
• ricevere una somma pesata degli ingressi;
• trasformarla secondo una funzione non-lineare (scalino o logistica);
• inviare il risultato di questa funzione al”uscita o ad altre unità.
Le reti neurali sono topologie ottenute connettendo tra loro i neuroni in modo
opportuno e riescono a calcolare funzioni molto complesse.
Apprendimento
• Si utilizzano iterativi per adattare il valore dei parametri (pesi).
• E’ necessario definire una funzione costo che misura la differenza tra il
valore fornito e quello desiderato.
• Serve un algoritmo (gradiente) che consente di aggiornare i pesi in modo
da minimizzare la funzione costo.
• Si effettua un training per trial (specializzazione) o per epoche.
Capitolo 7
Apprendimento e
Clustering
7.1
7.1.1
Apprendimento
Tipologie
Esistono due famiglie di apprendimento, caratterizzate da idee ben diverse
(anche se l’intera classificazione può comprendere 4 punti).
• L’apprendimento supervisionato (o learning with a teacher) comprende diversi problemi che prevedono dati un insieme di ingresso D, un insieme
di uscita D’ e una funzione f, non nota, che associa ad ogni dato in ingresso il corretto dato in uscita, di basarsi su un certo numero di esempi
di entrata/uscita per creare una funzione f’ il più simile possibile alla f
reale. Un esempio di problema che rientra in questo gruppo è quello della
classificazione.
• L’apprendimento non-supervisionato (learning without a teacher) invece comprende problemi nei quali si vuole determinare in maniera completamente automatica la struttura dei dati in ingresso. In questo caso
quindi durante la fase di apprendimento non vengono forniti agli algoritmi
esempi comprendenti la soluzione come avviene nell’apprendimento supervisionato. Un esempio di problema di questo tipo può essere il clustering
oppure l’apprendimento di un motore di ricerca.
• L’apprendimento semi-supervisionato si pone a metà strada tra i due
precedenti visto che in questo caso vengono forniti solo alcuni pattern di
output per alcuni pattern di ingresso.
• L’ultimo gruppo di problemi che completa questa classificazione è quello
dell’apprendimento con rinforzo (learning with a critic) che comprende
quei problemi nei quali è l’ambiente a fornire informazioni puntuali sulla
79
80
CAPITOLO 7. APPRENDIMENTO E CLUSTERING
bontà delle azioni intraprese(il reward). Esempi di algoritmi che risolvono
problemi di questa natura sono Q-learning e SARSA.
7.2
7.2.1
Clustering
Clustering e classificazione
• Il clustering è un insieme di problemi nei quali l’obbiettivo è la selezione e il raggruppamento, in cluster appunto, di elementi omogenei di una
popolazione. I dati possono avere diverse forme(pattern, vettori o altro)
ma all’interno di ogni cluster saranno più simili tra loro di quanto lo siano
rispetto agli elementi di un altro cluster (apprendimento non supervisionato).
• Un problema di classificazione invece è un problema nel quale le classi
sono note a priori e bisogna assegnare gli elementi della popolazione ad
una classe o ad un altra sulla base della definizione delle classi(che può essere costituita per esempio da una serie di esempi di elementi classificati).
(Apprendimento supervisionato). Data la sua definizione non può essere
svolta da algoritmi non supervisionati.
La classificazione è un’attività consistente nel disporre le entità di un dato
dominio di conoscenze (persone di una dato gruppo sociale, specie animali
o vegetali, oggetti di un certo genere, concetti di un certo settore disciplinare, nozioni utilizzate per certi fini, ...) in opportuni contenitori di
conoscenze tra i quali si stabiliscono dei collegamenti riguardanti una o
anche più relazioni. Le attività di classificazione hanno il fine di organizzare le entità del dominio in esame in modo che possano essere presentate
ai fruitori (e da questi possano essere reperite nei contenitori a loro disposizione) servendosi di criteri riconducibili ad una certa razionalità, in certi
casi arrivando alla possibilità di avvalersi di regole precise e di procedure.
La collocazione delle entità nei diversi contenitori si basa (direttamente o indirettamente, ma in modo determinante) sulla individuazione di
differenze di rilievo tra le entità stesse, cioè su processi di distinzione.
Nel problema del clustering, come nella classificazione, mi interessa trovare
la legge che mi permette di assegnare le osservazioni alla classe corretta; ma,
a differenza della classificazione, devo anche trovare una plausibile suddivisione
delle classi. Mentre nella classificazione ho un aiuto che proviene dal target
(la classificazione che mi viene fornita nel training set), nel caso del clustering
non posso basarmi su alcuna informazione aggiuntiva e devo dedurre le classi
studiando la distribuzione spaziale dei dati. La regressione può essere vista
in connessione ai due problemi precedenti in quanto tutti e tre i problemi si
occupano, in un certo senso, di fare assunzioni sui dati partendo dalla loro
struttura e/o da informazioni di partenza. Clustering e classificazione cercano
di etichettare i dati con la loro classe (o cluster) di appartenenza mentre la
7.2. CLUSTERING
81
regressione associa ad ogni dato un valore numerico (nel primo caso quindi
assegnerò ad ogni dato un valore del tipo “caldo” o “freddo” mentre nel secondo
una misura in gradi).
7.2.2
Tipologie principali di clustering
• Clustering gerarchico: si basa sul concetto che oggetti tra loro più vicini, secondo una certa metrica, siano più correlati di oggetti più lontani
tra loro, per la stessa metrica. Di conseguenza gli algoritmi di clustering
gerarchico dividono gli elementi in cluster basandosi su misure di distanza. I cluster in questo modello possono essere definiti tramite la massima
distanza tra due elementi del cluster. Utilizzando distanze diverse si otterranno cluster diversi. Il risultato degli algoritmi di questo tipo non è
un singolo gruppo di cluster ma un dendrogramma che rappresenta tutte
le possibili clusterizzazioni alle varie distanze(da qui la scelta della denominazione di questa tipologia di clustering). Si può procedere sia in modo
agglomerativo,si parte da un cluster per ogni elemento e si uniscono i cluster vicini, sia in modo divisivo,si parte da un unico cluster con tutti gli
elementi e lo si divide. Delle due la soluzione più usata è la prima perchè
computazionalmente meno onerosa. In altre parole, questa tipologia di
clustering funziona facendo una gerarchia di dati. I dati vengono descritti
attraverso un albero tassonomico simile a quelli utilizzati in sistematica.
Questo processo si può fare in due modi:
– per suddivisioni successive: si dividono i dati in due parti, poi ciascuna parte in due parti, poi ciascuna parte in due parti. Si tratta
di un approccio top down (dall’alto verso il basso) in cui tutti gli
elementi si trovano inizialmente in un singolo cluster che viene via
via suddiviso ricorsivamente in sottocluster. Questo approccio non
cresce uniformemente ma esponenzialmente;
– per aggregazioni successive (agglomerative clustering, più frequenti):
si uniscono coppie di osservazioni simili, poi si uniscono coppie di coppie, poi coppie di coppie di coppie. Si tratta di un approccio ”bottom
up” (dal basso verso l’alto) in cui si parte dall’inserimento di ciascun
elemento in un cluster differente e si procede quindi all’accorpamento
graduale di cluster a due a due. Il numero di cluster decresce di uno
ad ogni step.
Un esempio è QTD.
• Clustering centrale o partitivo: in questo modello i cluster sono rappresentati da un centroide o punto medio (non necessariamente facente
parte del dominio) e ogni elemento verrà assegnato al cluster il cui centroide è il più vicino all’elemento. L’obbiettivo è quindi quello di minimizzare la varianza totale all’interno di ogni cluster. In altre parole, questo
clustering funziona facendo una partizione dello spazio dei dati. Lo spazio
82
CAPITOLO 7. APPRENDIMENTO E CLUSTERING
dei dati viene cioè suddiviso in tante sottozone; l’unione di tutte le sottozone dà lo spazio completo, e ogni sottozona non è sovrapposta (neanche
in parte) ad altre sottozone. (Matematicamente è una partizione.) Un
esempio è K-means.
• Differenze. I risultati di questi approcci sono molto diversi perchè il
primo clusterizza sulla base di una distanza massima tra 2 elementi nel
cluster mentre il secondo cercando di minimizzare la varianza all’interno
dei vari cluster. I cluster ottenuti possono quindi essere molto diversi sia
nel numero che nelle caratteristiche.
• Problemi. Per tutte le possibili soluzioni ai problemi di clustering rimane
aperto il problema di scegliere il numero di cluster da definire. Per quanto
riguarda il clustering gerarchico questo si traduce nel definire quale sia
la distanza massima tra due elementi del cluster mentre nel secondo ne
definire il numero dei centroidi.
7.2.3
Altre tipologie di clustering
• Hard: un elemento è associato ad un solo cluster per volta.
• Fuzzy: per ogni elemento viene definito un grado di membership per ogni
cluster. Esiste quindi un certo grado di sovrapposizione tra i cluster.
• Incrementale: se i dati da trattare sono molti si può selezionare un loro
sottoinsieme con il quale iniziare il cluster e poi incrementare poco alla
volta il sottoinsieme man mano che si procede con il clustering.
7.2.4
Algoritmi di clustering
K-means
L’obiettivo che l’algoritmo si prepone è di minimizzare la varianza totale intracluster. Ogni cluster viene identificato mediante un centroide o punto medio.
L’algoritmo segue una procedura iterativa. Inizialmente crea K partizioni e
assegna ad ogni partizione i punti d’ingresso o casualmente o usando alcune
informazioni euristiche. Quindi calcola il centroide di ogni gruppo. Costruisce
quindi una nuova partizione associando ogni punto d’ingresso al cluster il cui
centroide è più vicino ad esso. Quindi vengono ricalcolati i centroidi per i nuovi
cluster e cosı̀ via, finché l’algoritmo non converge.
Passi:
1. Inizializzazione: posiziono il centro dei k cluster in maniera arbitraria o
guidata
2. Classificazione: associo ad ogni pattern il cluster più vicino.
7.2. CLUSTERING
83
3. Ricalcolo la posizione dei centri dei cluster come baricentro dei pattern a
lui assegnati
L’algoritmo termina quando i centri dei cluster smettono di spostarsi.
I problemi fondamentali di K-means sono il fatto che esso trova minimi locali
e non globali, e il fatto che il risultato dipende dall’inizializzazione (possono
essere usati altri metodi di inizializzazione, ma sono computazionalmente lenti).
Pregi:
Innanzitutto è semplice da comprendere. Poi è anche giustificabile con la teoria (la semplice regola viene fuori da calcoli di minimizzazione del criterio di
distanza media). Infine si può dimostrare che converge, ossia che prima o poi si
ferma.
Difetti:
Bisogna fare una certa quantità di calcoli, quindi può non essere adatto a training set molto grossi. Bisogna scegliere il numero k di prototipi senza avere
indicazioni su come sceglierlo (l’algoritmo non mi dice niente su quale k va meglio). Infine converge, ma potrebbe convergere a una soluzione che non è la
migliore in assoluto, bensı̀ la migliore intorno al punto di partenza scelto. Si
dice che tale soluzione è un minimo locale. Per quest’ultimo problema la soluzione più semplice è riprovare tante volte l’algoritmo, inizializzando in altrettanti
diversi modi l’insieme dei k prototipi.
(7.1)
Mappe di Kohen
Le Mappe di Kohnen cosentono di descrivere i principi del partizionamento soft clustering, mantengono la topologia. Emerge il concetto di grado di
appartenenza, chiamato anche funzione vicinato. Utilizzano una tecnica di apprendimento competitivo. Le Reti di Kohonen (o SelfOrganizing Map, SOM)
rivedi kohen
84
CAPITOLO 7. APPRENDIMENTO E CLUSTERING
permettono di classificare oggetti senza la supervisione esterna. Nascono dallo
studio della topologia della corteccia del cervello umano. Queste reti tengono
conto non solo delle connessioni sinottiche tra neuroni ma anche della influenza
che può avere un neurone sul vicino. E’ stato osservato che, nel caso biologico, i neuroni che sono fisicamente vicini a neuroni attivi hanno i legami più
forti mentre quelli ad una particolare distanza hanno legami inibitori. A questa caratteristica Kohonen attribuisce uno sviluppo nella capacità di realizzare
delle mappe topologiche localizzate nel cervello. Questa caratteristica è stata
modellata da Kohonen restringendo la variazione dei pesi ai neuroni vicini ad
un neurone scelto. Una Rete di Kohonen è costituita da una serie di neuroni
di input che, come per le reti multistrato, servono solo a calcolare la somma
pesata di tutti gli input e da un singolo strato bidimensionale di neuroni, sono
cioè organizzati su una griglia posta su un piano; tali neuroni calcolano l’output
della rete. Ciascun neurone di input è connesso a tutti i neuroni della griglia.
L’apprendimento è legato alle interconnessioni laterali tra neuroni vicini. Come la maggior parte delle reti neurali artificiali, la SOM ha due modalità di
funzionamento:
• Durante il processo di addestramento si costruisce una mappa, la rete
neurale si organizza usando un processo competitivo. È necessario dare in
ingresso alla rete un numero elevato di vettori d’ingresso, che rappresentino
il più possibile il tipo di vettori che ci si aspetta durante la seconda fase
(se ce ne sarà una). Altrimenti, gli stessi vettori d’ingresso devono essere
”somministrati” più volte.
• Durante il processo di mapping un nuovo vettore d’ingresso può essere
dato in ingresso alla mappa; questo viene automaticamente classificato o
categorizzato. Ci sarà un solo neurone vincitore: quello il cui vettore dei
pesi giace più vicino al vettore d’ingresso. (Questo può essere facilmente
individuato calcolando la distanza euclidea fra il vettore d’ingresso e il
vettore dei pesi).
Algoritmo:
1. Si definiscono con wij (t) (0 ≤ i ≤ n − 1 dove n è il numero di input) il
peso tra il neurone i-esimo di input ed il neurone j-esimo della griglia al
tempo t. Con ’tempo’ si indica il passaggio del pattern di apprendimento.
I valori dei pesi vengono inizialmente posti tra zero e uno. Si pone come
valore di Ni (0) il maggiore possibile (Ni () dovrebbe essere il numero di
neuroni vicini al j-esimo neurone).
2. Si presenta un input: x0 (t), x1 (t), x2 (t), . . . xn(t) dove xi(t) è l’i-esimo
input.
3. Si calcolano le distanze di tra l’input e ciascun neurone di output j:
Pn−1
d2j = i=0 (xi (t) − wij (t))2
4. Si seleziona il neurone a cui corrisponde la distanza minima. Indichiamo
con j ∗ tale neurone.
7.2. CLUSTERING
85
5. Si modificano i pesi dal neurone di input ed il neurone j ∗ e tutti i suoi
vicini definiti all’interno della superficie definita da Ni∗ (t). I nuovi pesi
sono:
wij (t + 1) = wij (t) + α(t)∃xi (t) − wij (t)a
Il termine h(t) è la funzione guadagno (o velocità di adattamento) (0 ≤
h(t) ≤ 1) che decresce nel tempo in modo da rallentare di volta in volta
l’adattamento dei pesi. Anche le dimensioni di Ni∗ (t) decrescono nel tempo
in modo da individuare una regione di neuroni sulla griglia.
6. Si ripete tutto a partire dal punto 2.
7.2.5
Regressione (predictive learning) e modelli
• Modello. E’ una rappresentazione di un oggetto o di un fenomeno che
corrisponde a ciò che vuole rappresentare perchè ne riproduce le caratteristiche e comportamenti fondamentali consentendone il trattamento.”Un
modello è un’astrazione selettiva della realtà”, A.Einstein. In particolare
nei sistemi intelligenti i modelli vengono utilizzati con lo scopo di fornire
previsioni sullo stato futuro di un fenomeno reale.
Un modello si dice markoviano se possiede la proprietaà di Markov cioeè
se la funzione stato futuro dipende solo dallo stato presente e non dalla
sequenza di stati che ha portato allo stato presente.
Un modello si dice lineare se è costituito da una funzione lineare, altrimenti è detto non lineare.
Un modello si dice parametrico se utilizza parametri al fine di costruire
la funzione; si dice invece semiparametrico nel caso in cui venga utilizzato almeno un parametro al fine ti approssimare la funzione studiata con
una funzione nota (tipo gaussiana, etc.) detta base
• Regressione. Un problema di regressione prevede di avere a disposizione
un campione di dati proveniente da una popolazione, virtualmente infinita, e di dover trovare una relazione funzionale tra essi. In pratica quindi il
sistema in grado di risolvere questo problema dovrà imparare una funzione
continua a partire dai campioni disponibili. I dati mancanti dovranno essere interpolati a partire da quelli presenti. In termini statistici i dati sono
costituiti da una variabile dipendente e una o più variabili indipendenti.
La funzione di regressione dovrà modellare la variabile dipendente come
funzione delle variabili indipendenti più un termine di errore. Quest’ultimo è una variabile casuale che rappresenta la variazione non prevedibile
o controllabile della variabile dipendente. Il metodo più utilizzato per la
regressione è il metodo dei “minimi quadrati”.
86
CAPITOLO 7. APPRENDIMENTO E CLUSTERING
Capitolo 8
Realtà virtuale
8.1
Componenti principali
• Sistemi di input: servono per misurare le azioni umane sull’ambiente virtuale(posizione forza ecc..). In qualche modo devono stimare l’output del
sistema muscoloscheletrico umano. Un esempio sono i tracking system che
cercano di seguire i movimenti umani usando tecnologie molto varie(un
esempio commerciale è il kinect dell’xbox 360 che fa uso di due diverse
telecamere, una rgb e una a infrarossi, e di diversi microfoni posti su una
base motorizzata per cercare di ottenere una visione tridimensionale dei
giocatori e consentire quindi di interagire con i videogiochi senza nessun
controller a differenza di quanto avviene con la console nintendo wii che è
dotata di controller che fanno un tracking ineziale dei movimenti del giocatore basandosi su oscilloscopi e accelerometri). Problema tecnologico
principale:difficoltà di cogliere le complessità del movimento umano.
• Generatori di mondi:sono i software che gestiscono la realtà virtuale modellandone le caratteristiche. Esistono degli appositi scanner 3d che riescono
a creare un immagine virtuale tridimensionale di oggetti reali consentendone l’inserimento, con la massima precisione, all’interno dei mondi virtuali.
Problema tecnologico principale: gli scanner hanno un costo molto elevato
e la visualizzazione dei risultati richiede grandissime potenze di calcolo.
• Motore di calcolo:si occupano di gestire la rappresentazione della realtà
virtuale. I modelli ottenuti dalli scanner sono troppo complessi per essere gestiti dalle applicazioni quindi deve essere effettuata una compressione. Ptp:anche in questo caso il problema principale è bilanciare il costo
computazionale con la qualità del risultato
• Sistemi di output: Servono per immergere gli esseri umani reali nella realtà
virtuale. Devono quindi coinvolgere uno o più sensi nella realtà virtuale.
87
88
CAPITOLO 8. REALTÀ VIRTUALE
– Vista: la tecnologia degli schermi televisivi e cinematografici è un
esempio di output visivo. L’utilizzo di schermi 3d può renderla ancora più immersiva e stanno venendo messe a punto molte diverse
tecnologie in questo senso(3d con lenti passive, con lenti attive o
addirittura senza occhiali)
– Tatto: esistono degli stimolatori tattili. Simili a dei normali guanti
esercitano delle pressioni e/o delle vibrazioni sui polpastrelli o sul
palmo simulando il contatto con un oggetto. Volendo potrebbero
rientrare in questa categoria, pur essendo molto semplici e banali, i
sistemi di vibrazione adottati da molti controlle di console(ad esempio
il dualshock playstation).
– Udito. Questo è forse il senso che è più facile ingannare. Le casse
attuali sono in grado di riprodurre tutte le frequenze udibili e anche di
simulare, tramite l’uso di molteplici diffusori, l’informazione spaziale
contenuta nei suoni(vedi per esempio i sistemi thx).
– Olfatto,Gusto: sono i due sensi più difficili da coinvolgere.
8.2
Descrizione
La realtà virtuale è la possibilità di interagire in un ambiente “artificiale” come se si trattasse di un ambiente reale utilizzando oggetti controllati da un
computer.
E’ un sistema che permette a uno o più utenti di vedere, muoversi e agire in
un ambiente simulato dal computer. Esistono diversi tipi di dispositivi di interfaccia che forniscono l’illusione di vedere, toccare e manipolare oggetti non reali
(simulati). I mondi virtuali, e qualsiasi cosa al loro interno, sono rappresentati
mediante modelli matematici elaborati con sofisticati programmi.
Le simulazioni di realtà virtuale (VR, dall’inglese Virtual Reality) differiscono da altre simulazioni computerizzate in quanto richiedono specifici dispositivi
di interfaccia, capaci di trasmettere all’operatore le sensazioni visive, acustiche
e tattili relative all’ambiente simulato e di registrare e inviare al programma
di simulazione le espressioni e i movimenti dell’utente. Sostituendo la tastiera
o il mouse nell’interazione con il computer, queste interfacce speciali permettono a chi entra in una simulazione VR di muoversi, agire e comunicare con
il calcolatore in modo quasi del tutto naturale. L’interazione cosı̀ immediata e la possibilità di guardare in ogni direzione danno la sensazione di essere
completamente immersi nell’ambiente simulato.
Gli oggetti utilizzati (guanti, cuffie e occhiali) devono poter sostituire almeno
tre dei cinque sensi di cui disponiamo: udito, vista e tatto. Il computer gestisce
quest’ambiente tridimensionale in modo da rispondere alle azioni messe in atto.
I primi esperimenti di realtà virtuale possono essere datati alla metà degli
anni sessanta con i simulatori di volo realizzati al M.I.T da I. Sutherland, pioniere della realtà virtuale.Tuttavia è negli anni ottanta che si verifica il grande
boom con la nascita nel 1982 della Silicon Graphics, azienda leader nel settore.
8.3. L’AMBIENTE VIRTUALE
89
Uno dei primi progetti di applicazione della Virtual Reality al settore dell’assemblaggio e dell’ergonomia, venne realizzato nel 1981 ad opera dell’Aeronautica
Militare degli Stati Uniti. Riguardava la realizzazione di un simulacro di cabina
di pilotaggio e di un casco virtuale, per visualizzare uno spazio grafico tridimensionale, nel quale i piloti avrebbero imparato a volare e a combattere. Il Super
Cokpit, questo il nome del simulatore, riscosse grande successo, ma gli elevati
costi di produzione e gestione imposero lo sviluppo successivo, stavolta ad opera
della NASA, di modelli più efficienti.
Al Nasa Research Center fu presentata cosı̀ la Virtual Interface Enviromental
Workstation (VIEW), o meglio stazione di lavoro con ambiente ad interfaccia
virtuale, destinata alla progettazione di missioni spaziali e fu il primo sistema
a combinare grafica computerizzata, immagini video, suono tridimensionale riconoscimento e sintesi della voce, un casco virtuale, ed un guanto tattile.Tra le
multinazionali che oggi usano ambienti virtuali per la manutenzione, la creazione di parti meccaniche e l’assemblaggio di sistemi, ricordiamo la Ford, la
Boeing e la Caterpillar. Queste figurano, inoltre, tra gli utenti dei più moderni
software di simulazione del comportamento umano, alcuni dei quali ancora in
fase di validazione.
Nella progettazione delle automobili, diversi fattori connessi all’accessibilità,
all’ergonomia, e alla presenza dell’uomo, soprattutto in quanto utente finale,
vanno tenuti in debita considerazione. Le tecniche utilizzate in questo settore, sono sia quelle della realtà virtuale non immersiva, che immersiva. Grazie
a quest’ultima, le proprietà fisiche degli oggetti vengono simulate, per verificare problemi quali la visibilità, l’accessibilità, eventuali collisioni e lo spazio
disponibile per la movimentazione. Per ottenere tutto questo sono necessari
alcuni strumenti che permettono all’uomo di interagire con l’ambiente virtuale
e manipolarlo.
8.3
L’ambiente virtuale
Per “realtà virtuale immersiva” s’intende la possibilità per l’uomo di interagire
o ispezionare ambienti non accessibili nella realtà, perché prodotti da grafica
tridimensionale computerizzata e questo grazie all’uso di strumenti come caschi
di visualizzazione, occhiali e guanti (cyber glove) che permettono l’immersione
e la manipolazione dei modelli virtuali.
Il display HMD è stato il primo a permettere un’esperienza immersiva a
chi lo indossava; la sua commercializzazione risale al 1989 ad opera della VPL
Research (figuar 8.1).
90
CAPITOLO 8. REALTÀ VIRTUALE
(8.1)
Il dispositivo è costituito da due display in miniatura, ed un sistema ottico
in grado di convogliare le immagini dallo schermo agli occhi, per cui presenta
una visione stereo. Un tracciatore mobile misura continuamente la posizione
e l’orientamento della testa dell’utente, permettendo al computer di generare
delle immagini coerenti. Questo permette al soggetto di guardarsi intorno e
camminare attraverso l’ambiente virtuale circostante.
Con queste informazioni, una workstation può ricostruire le immagini del
mondo virtuale in modo che corrispondano alla direzione e alla posizione di
osservazione dell’utente e inviarle all’HMD, che le visualizza. La velocità di
elaborazione deve essere tale da non produrre nell’utente la sensazione di una
discontinuità dell’immagine o di un rallentamento rispetto ai suoi movimenti.
Anche se la velocità di elaborazione dei computer è cresciuta enormemente
negli ultimi tempi, le scenografie per la realtà virtuale devono tuttora essere
semplificate perché il computer possa aggiornare le immagini con rapidità sufficiente (almeno dieci volte al secondo). Per questo motivo, e a causa delle
imperfezioni degli attuali display e della grafica computerizzata, i partecipanti ad una simulazione possono facilmente distinguere l’ambiente virtuale dalla
realtà.
Gli HMD contengono anche cuffie auricolari attraverso le quali l’utente può
udire i suoni dell’ambiente simulato. Anche i segnali audio possono essere aggiornati in base alle informazioni rilevate dal sensore di posizione. Il nostro
cervello, infatti, confronta i suoni percepiti da ciascun orecchio per localizzare
nello spazio la sorgente sonora da cui essi provengono. Quando quest’ultima
non è esattamente di fronte o alle spalle dell’ascoltatore, il suono giunge in tempi leggermente diversi alle due orecchie e ciò modifica l’intensità e il timbro
percepiti. Il computer, perciò, mediante sistemi altamente sofisticati sfrutta le
informazioni sulla posizione del soggetto per inviare in cuffia suoni che appaiano
provenire da una precisa locazione dello spazio virtuale. Il termine tattile si riferisce globalmente alle sensazioni che una persona riceve attraverso la pelle. Le
8.3. L’AMBIENTE VIRTUALE
91
interfacce tattili per la realtà virtuale richiedono tecnologie ancora più avanzate
di quelle necessarie per le simulazioni visive e acustiche e rappresentano tuttora
un campo di ricerca aperto. Mediante un guanto e un rilevatore di posizione,
un calcolatore localizza la mano dell’utente e apposite tecniche individuano i
movimenti delle dita in modo che l’utente sia in grado di maneggiare gli oggetti
pur senza percepirli. È estremamente difficile, infatti, riprodurre le sensazioni
che si sperimentano colpendo una superficie rigida, raccogliendo un oggetto o
facendo passare le dita su un tessuto. Per simulare tali sensazioni occorrerebbe
una serie di motori controllati dall’elaboratore, capaci di generare le forze di
reazione agendo direttamente sul corpo del soggetto, che richiederebbero una
velocità e un’accuratezza superiore a qualsiasi modello attualmente disponibile.
Un altro problema di difficile soluzione è come far indossare all’utente simili
apparati, completi di tutti i collegamenti necessari al loro controllo. Le sensazioni tattili, infine, dovrebbero essere sincronizzate con quelle visive e acustiche
prodotte dall’HMD.
Diverse aziende hanno recentemente messo a punto dispositivi da tavolo
che, attraverso collegamenti meccanici, applicano piccole forze a una bacchetta
tenuta in mano dando la sensazione di frugare con una matita dentro il mondo
virtuale: l’utente che tiene la matita percepisce il momento in cui la sua punta
incontra un oggetto simulato e può trascinarla sulla superficie di questo per
avvertirne la forma o le scabrosità.
In generale, si può dire che le caratteristiche della realtà virtuale immersiva
sono le seguenti:
• Visione all’interno dell’ambiente virtuale in maniera naturale (mediante
rotazione della testa);
• La tecnica stereoscopica permette la percezione della profondità e dello
spazio;
• L’ambiente virtuale è percepito in scala naturale;
• Le interazioni realistiche con oggetti virtuali attraverso guanti o dispositivi
simili permettono la manipolazione ed il controllo del mondo virtuale;
• L’illusione di essere completamente immersi nel mondo artificiale può
essere migliorata da suoni, sensazioni ed altre tecnologie non visuali;
• Tramite collegamenti in rete è possibile comunicare con altri utenti e altri
mondi virtuali.
Per realtà virtuale non immersiva, s’intende la possibilità di visualizzare
oggetti virtuali tridimensionali, proiettati su di uno schermo, senza essere completamente immersi in tale realtà e senza quindi essere isolati dall’ambiente
circostante. La differenza sta nella metodologia con cui avviene il contatto con
l’ambiente. Nel caso della non immersiva, ciò avviene tramite dispositivi non
indossati, cioè la CAVE (figura 8.2).
92
CAPITOLO 8. REALTÀ VIRTUALE
(8.2)
La CAVE è un ambiente virtuale automatico, realizzato all’interno di una
stanza cubica, di (3m x 3m x 3m), in cui l’utente è equipaggiato con occhiali
stereo, mentre delle sorgenti di luce poste sui quattro lati permettono la visione
tridimensionale. All’interno dell’ambiente si possono comunque utilizzare vari
dispostivi, come guanti o joistick, che permettono all’utente di interagire con gli
oggetti virtuali.
Il B.O.O.M (figura 8.3) è invece un dispositivo stereoscopico, (Binocular
Omni – Orientation Monitor) in cui lo schermo ed il sistema ottico sono alloggiati
in una scatola collegata ad un braccio articolato.
(8.3)
Questo tipo di dispositivo è appunto quello utilizzato nei prototipi di simulatori integrati da realtà virtuale, per la verifica funzionale nella progettazione
di interni di automobili. L’utente guarda all’interno della scatola attraverso due
8.3. L’AMBIENTE VIRTUALE
93
fori, vede il mondo virtuale e lo esplora orientando opportunamente il dispositivo. L’orientamento della scatola è controllato attraverso dei sensori posti nei
giunti del braccio articolato.
Il B.O.O.M. viene montato su di un telaio su cui sono posizionati gli apparecchi essenziali di un interno di autovettura: il sedile, il volante, un’asta per
simulare il cambio e la pedaliera. L’interno virtuale viene visualizzato attraverso
il B.O.O.M. e l’utente può interagire con questo, grazie all’uso di uno speciale
guanto (vedi fig. 4 e 5).
La realizzazione del prototipo virtuale passa attraverso diverse fasi evolutive,
dal prototipo disegnato con sistema CAD/CAM fino a quello finale da utilizzare in ambiente virtuale immersivo. Le fasi del processo possono essere cosı̀
sintetizzate:
• Estrazione della geometria da un modello disegnato con le tecnologie
CAD/CAM.
• Poligonalizzazione: approssimazione della geometria da poligoni ad una
meshatura di poligoni.
• Riduzione della complessità togliendo dettagli non influenti allo scopo.
• Assegnazione al prototipo di colori, materiali e di luci.
• Assegnazione precisa di tessiture per la rappresentazione dei dettagli.
• Assegnazione di geometrie addizionali come ambiente che circonda il prototipo.
• Calibrazione del video con l’attrezzatura esterna (sedile, occhiali, sistema
di tracking).
• Controllo della funzionalità del sistema e risposta del sistema agli input
dell’operatore.
Cosı̀ come la realtà virtuale è già lo strumento di studio e sperimentazione dei
prototipi per molti settori dell’industria, è facile prevedere come l’accessibilità
dall’esterno, la movimentazione all’interno e l’ergonomia della postura per le
autovetture, sarà presto dominio assoluto dei manichini virtuali.
Related documents
Download