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.