Lezione 10 La classificazione dell`Intelligenza Artificiale

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