Lezione 10 •Intelligenza Artificiale –Cosa è l’Intelligenza Artificiale –Elaborazione del linguaggio naturale –La visione artificiale –L’apprendimento nelle macchine La classificazione dell’Intelligenza Artificiale • La disciplina AI non ricade entro le classificazioni usuali – è formale ma non è assimilabile ad una branca della matematica – non cerca di determinare teorie o descrizioni di fenomeni fisici rilevabili per via sperimentale e non è dunque una scienza fisica • La disciplina più vicina è la psicologia cognitiva • E’ forse una proto-scienza (Es. la botanica prima della sistematizzazione di Linneo) 1 AI e le altre scienze • Caratteristica di AI è che si concentra su oggetti (programmi o strutture concettuali che possono essere tradotte in programmi) creati dall’uomo e non presenti spontaneamente in natura • AI è una tecnologia? – I manufatti oggetto delle tecnologie sono studiati da scienze fisiche AI e matematica • La matematica tratta strutture concettuali astratte che non sono descrittive di qualche fenomeno o oggetto naturale • In mat. è importante il sistema di assiomi • AI non è assiomatizzata • AI investiga modelli computazionali il cui comportamento può essere studiato tramite l’esecuzione di programmi reali o astratti 2 Cosa modella l’AI? • I modelli sono l’equivalente dei sistemi assiomatici • Sono ritenuti validi se generano risultati di alta qualità e varietà • Ma cosa si modella in AI? – Non chiaro, ma in tutte le risposte compare il termine “comportamento intelligente” Comportamento intelligente • Se il “comportamento intelligente” ha dei punti a contatto con la psicologia allora si intende la modellazione di alcuni aspetti del comportamento umano • Se la psicologia non c’entra allora si intende la modellazione delle procedure per ottenere dei risultati di elaborazione cognitiva che gli esseri umani raggiungono o che desidererebbero raggiungere 3 Le scienze cognitive • Attualmente è molto ristretta l’area dei fenomeni dove l’AI ha fornito modelli per le scienze cognitive (visione artificiale). • È difficile vagliare l’attendibilità dei modelli tramite le tecniche sperimentali proprie della psicologia La chiave è il programma • I modelli in AI sono implementati attraverso programmi • Lo studio delle caratteristiche dei programmi complessi usati in AI fornisce indicazioni • Le strutture utilizzate in questi programmi sono l’equivalente degli assiomi per l’AI 4 Prima definizione • AI è la disciplina che si occupa dello studio delle tecniche computazionali con l’obiettivo di riprodurre su un calcolatore risultati o comportamenti simili a quelli umani Analisi • È troppo generale – Ad es. solo l’uomo conosce il significato del massimo comun divisore tra due numeri, ma nessuno sosterrebbe che un programma che sa estrarlo esibisca comportamento intelligente • L’uso di un algoritmo non caratterizza un programma intelligente 5 La complessità • Esistono programmi come il modulo del MACSYMA deputato alla computazione degli integrali indefiniti che è ritenuto da molti valido esempio di AI • E’ molto complesso ma non basta – non è soverchiamente complesso! – esistono programmi per la fisica o chimica o anche la gestione delle prenotazioni aeree che sono più complessi L’euristica • Il programma citato possiede elementi euristici • Una euristica è un metodo che si è dimostrato valido per la soluzione di un problema che presenta analogie con quello trattato 6 Definizione • L’AI tenta di migliorare la comprensione di quei problemi che richiedono l’impiego di elementi euristici quando sono affrontati dall’intelligenza umana Eliminazione delle euristiche • Un problema è rilevante per l’AI quando la sua soluzione tramite un calcolatore prevede l’uso di euristiche da parte di esperti umani • Una soluzione di un problema rilevante è interessante quando si progredisce da una soluzione euristica verso una modellazione algoritmica generalizzata della soluzione 7 Metodi computazionali • Molti metodi in AI hanno componenti euristiche: – risoluzione a sottoproblemi più semplici divide et impera (è una euristica) – backtracking (è un algoritmo che utilizza euristiche) – apprendimento (è una classe di soluzioni di problemi che utilizzano euristiche) Sintesi • Si può dire che AI si articola secondo tre livelli di dettaglio: – livello algoritmico: metodi computazionali comuni anche a altre discipline – livello delle euristiche: non ancora analizzato a fondo (quando una euristica è trasferibile da un contesto ad un altro?) – livello astratto: riprodurre il comportamento intelligente o ottenere risultati altrimenti ottenibili solo tramite intelligenza utilizzando i precedenti livelli 8 Metodi dell’Intelligenza Artificiale Divide et Impera • Per risolvere un problema una buona euristica (quando applicabile) è quella di dividere un problema complesso in sottoproblemi più semplici • E’ possibile guadagnare molto in termini di efficienza (tempo e risorse) computazionale • Quando? E come? 9 Divide et impera • Si supponga che un problema che contiene n oggetti possa essere suddiviso in due problemi di n/2 oggetti. • Per operare questa divisione occorre esaminare gli oggetti uno a uno: impieghiamo un tempo cn con c costante • T(x) è il tempo per la soluzione del problema con x oggetti • T(n)=2T(n/2)+cn • Supponiamo di continuare a dividere in sottoproblemi per r volte, allora per la soluzione di un singolo problemino:T(n/2r) e per la soluzione di tutti e 2r problemi: • T(n)= 2r T(n/2r )+rcn Divide et impera • Se la soluzione di un problema elementare è esponenziale nel numero degli oggetti, cioè T(x)=kxp dove k e p sono delle costanti • allora: T(n)=knp / 2(p-1)r + rcn • mentre se fosse applicato senza divide et impera avrebbe richiesto T(n)=knp • Dato che rcn è piccolo rispetto a np si ha una riduzione notevole del tempo di calcolo 10 Backtracking • Per risolvere un problema che prevede una successione di passi talvolta è possibile enumerare tutte le alternative in ogni istante di decisione. • Si crea così uno spazio di ricerca, muovendosi nel quale è possibile giungere alla soluzione Backtracking • Problema delle otto regine: si dispongano 8 regine sulla scacchiera senza che nessuna regina possa “mangiare” un’altra regina. • Soluzione: – – – – si numerano le celle della scaccchiera si dispone la prima regina nella prima cella si eliminano tutte le celle in cui tale regina può mangiare si mette la seconda regina nella prima cella libera – si itera – se non esiste alcuna cella libera si sceglie l’alternativa successiva al passo precedente – se le alternative al passo precedente sono terminate si torna indietro di un ulteriore passo 11 Backtracking • Si formalizza il problema individuando delle descrizioni adeguate per rappresentare ogni possibile situazione del problema (la scacchiera con n regine sopra) detto stato • Si formalizza anche quali sono le mosse ammissibili per passare da uno stato ad un altro • Si parte dalla descrizione della situazione iniziale e si vuole arrivare alla descrizione della situazione finale attraverso mosse ammissibili Backtracking • Una funzione euristica permette di valutare la qualità di ogni stato, ovvero quanto “vicino” allo stato soluzione si trova tale stato • Si procede in modo esaustivo analizzando tutte le mosse possibili • Ci si muove prendendo sempre l’alternativa migliore secondo l’euristica • Se si incorre in un vicolo cieco si risale all’ultima scelta e si prova l’alternativa successiva • Se tutte le scelte precedenti portano in un vicolo cieco si risale ad una scelta antecedente 12 Backtracking • Soluzione di un labirinto: – Le azioni possibili sono spostarsi in una delle 4 direzioni cardinali – Una euristica è quella di minimizzare la distanza fra la posizione attuale e la posizione dell’uscita (se nota) Backtracking • Backtracking dependency-directed: invece di saltare al passo precedente una euristica determina quali passi nella storia delle decisioni sono responsabili per l’intoppo creatosi • Nota: l’euristica dipende dal problema, non è possibile generalizzare ad altri domini 13 L’apprendimento • Una parte della AI si concentra non sullo sviluppo di sistemi “adulti” ma sullo sviluppo di sistemi “bambini” in grado di apprendere • Questo ha senso per problemi complessi come il linguaggio o la visione L’apprendimento • In fondo è difficile poter predicare l’attributo di intelligenza per sistemi che non apprendono • Se qualcuno ripetesse in continuazione il medesimo errore non potremmo considerarlo intelligente! 14 Definizione • Si dice che un sistema apprende se è in grado di migliorare nel tempo le proprie prestazioni nella soluzione di un problema senza venir riprogrammato • E’ importante pertanto definire una misura delle prestazioni per verificare che stia effettivamente migliorando Definizione • In generale un algoritmo di apprendimento mira ad ottenere i seguenti risultati: – coprire uno spettro progressivamente più ampio di problemi – migliorare l’accuratezza delle soluzioni proposte – ridurre l’utilizzazione di risorse (es trovare un insieme di regole più compatto e più comprensibile) 15 Cosa si apprende? • Consideriamo il problema di apprendere una classificazione • Apprendimento della Classificazione: determinazione delle regole che permettono di discriminare un insieme di oggetti come appartenenti ad una data categoria • Es. Dati i sintomi diagnosticare di quale malattia si tratti, date le misurazioni metereologiche determinare se il pioverà o no, etc Modelli per la Classificazione • Esistono diversi approcci al problema dell’apprendimento della classificazione: – alberi di decisione – sistemi connessionisti – algoritmi genetici 16 Alberi di decisione • Una volta trovato il modo di descrivere il problema, si può cercare la regola di classificazione nello spazio delle descrizioni Alberi di decisione • Si hanno i dati relativi a registrazioni metereologiche come sole, vento, pressione e si vuole classificare quando queste condizioni sono tali da far presupporre pioggia • I dati hanno valori numerici e sono colleganbili con operatori logici (and, or, not) e relazionali (<=>) • Si possono pertanto scrivere espressioni del tipo: – sole <4 AND pressione < 1000 17 Alberi di decisione • Si generano descrizioni casuali semplici • Si adoperano operatori di generalizzazione, specializzazione e modifica dei parametri • Si derivano altre descrizioni a partire da quelle che descrivono meglio i dati • Si itera Alberi di decisione Sole<2 incrementa nega decrementa NOT Sole<2 Sole<1 specializza Sole<1 AND vento > 5 Sole<3 generalizza Sole<1 OR pressione>1000 incrementa Sole<2 18 Tassonomia degli alberi di decisione • Alberi che dividono lo spazio delle ipotesi dal più generico al più specifico • Alberi che dividono lo spazio delle ipotesi dal più specifico al più generico Considerazioni • Le regole apprese sono – simboliche piuttosto che probabilistiche – facilmente interpretabili dagli esseri umani – sensibile al rumore e intollerante alla contraddizione 19 Metodi connessionisti • I dati vengono rappresentati mediante un vettore di caratteristiche • Il sistema apprende dei pesi da attribuire a ciascuna combinazione delle caratteristiche in modo da classificare come positivi certi elementi ed altri come negativi Perceptron -1 w0 1 w1 w2 0 0 ? 0.5 2 0 wn 20 Classificazione con Perceptron • Si voglia classificare le bandiere: • Caratteristiche: – barre verticali – barre orizzontali – numero colori – rosso – verde – etc A B Classificazione • • • • Bandiera A: -1 3 0 2 2 1 classe:+ Bandiera B: -1 0 2 2 1 1 classe:Pesi: 1 -1 1 0 0 0 Risultato: – A=(-1*1)+(3*-1)+(0*1)+(2*0)+(2*0)+(1*0)=-4 – B=(-1*1)+(0*-1)+(2*1)+(2*0)+(1*0)+(1*0) =1 21 Regola di apprendimento • Perceptron training rule: w i = w i +? wi ? w i =? (true-output)x i • dove ? è detto tasso di apprendimento • Quando true=output non si cambia niente • Quando si classifica -1 ma si sarebbe dovuto classificare +1 si incrementa wi per gli esempi positivi xi >0 di ? wi in modo da aumentare il contributo dei positivi, si decrementa per gli esempi negativi xi <0, in modo da diminuire il loro contributo al risultato totale • viceversa per la classificazione invertita Il Perceptron • Si dimostra che per ? sufficientemente piccoli la regola converge, cioè si trova un insieme di pesi w tali che le due classi vengono separate • Questo avviene purchè le due classi siano linearmente separabili • In caso diverso si devono usare meccanismi simili ma più complessi 22 Considerazioni • L’insieme dei pesi definisce una conoscenza: – distribuita e quindi non facilemente interpretabile dagli esseri umani – torellerante al rumore – in grado di generalizzare a istanze mai viste Algoritmi genetici • L’attenzione dell’AI si è posata su tre meccanismi fondamentali presenti in natura che sembrano esibire caratteristiche di automiglioramento: – il sistema nervoso (ok reti neurali) – il sistema immunitario (no memoria meccanica) – i processi evoluzionistici (ok) 23 Algoritmi genetici • Si genera una popolazione di regole candidate per determinare la soluzione • si valuta il fitness di ognuna di queste (cioè quanto bene riesce a risolvere il compito) • si seleziona una regola i con probabilità fitness(i)/? fitness • si genera la popolazione successiva applicando gli operatori genetici Operatori genetici • Gli operatori genetici sono: – Copia esatta – Crossover – Mutazione 24 Copia esatta • Una parte degli individui di successo si riproducono inalterati nella generazione successiva • in questo modo si garantisce di far competere i figli con i genitori e di selezinare al passo successivo solo i figli che hanno maggior successo dei padri Crossover • Può essere di tipo: – single point – two points – uniform 25 Single point crossover • Dati due individui rappresentati come dei vettori di caratteristiche [a 1,a 2,…,a n] e [b1,b2,…,bn] si prende un punto di taglio a caso e si generano due discendenti [a 1,a 2,b3,…,bn] e [b1,b2,a 3,…,a n] Two point crossover • Dati due individui rappresentati come dei vettori di caratteristiche [a 1,a 2,…,a n] e [b1,b2,…,bn] si prendono due punti di taglio a caso e si generano due discendenti [a 1,a 2,b3,b4,b5,a 6,a7] e [b1,b2,a 3,a4,a5,b6,b7] 26 Uniform crossover • Dati due individui rappresentati come dei vettori di caratteristiche [a 1,a 2,…,a n] e [b1,b2,…,bn] si campiona a caso da un genitore e si sostituisce con le caratteristiche dell’altro e si generano due discendenti [a1,b2,a 3,a 4,b5,a6,b7] e [b1,a 2,b3,b4,a 5,b6,a7] Mutazione • Dato un individuo [a1,a2,…,an] si alterano alcune componenti in modo casuale ottenendo un individuo [a 1,a2,a3,...,an] 27 Considerazioni • Perché usare gli GA: – il meccanismo evolutivo è noto per essere un metodo fobusto e di successo – si possono ricercare in spazi di stati con parti che interagiscono in modo complesso (non si riesce a determinare le dipendenze funzionali delle parti sulla fitness ma solo a valutarla istanza per istanza) – sono facilmente parallelizzabili Considerazioni • L’operatore di mutazione non è il responsabile primario nella generazione di nuove strutture. • La riproduzione sessuata è meglio di quella asessuata! 28