Lezione 10
•Intelligenza Artificiale
–Cosa è l’Intelligenza Artificiale
–I metodi dell’ IA
–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?
– Ma i manufatti oggetto delle tecnologie sono studiati da
scienze fisiche, non è il caso di AI
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 (es.
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 introdotte 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/2 r) e per la soluzione di
tutti e 2r problemi:
T(n)= 2 rT(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, è difficile se
non impossibile 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
incrementa
generalizza
Sole<1 OR
pressione>1000
Sole<2
18
Considerazioni
• Le regole apprese sono
– simboliche piuttosto che probabilistiche
– facilmente interpretabili dagli esseri umani
– sensibile al rumore e intollerante alla contraddizione
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
19
Perceptron
-1
w0
1
w1
w2
0
0
?
0.5
2
0
wn
Classificazione con Perceptron
• Si voglia classificare le bandiere:
• Caratteristiche:
–
–
–
–
–
barre verticali
barre orizzontali
numero colori
rosso
verde
A
– etc
B
20
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
Regola di apprendimento
•
Perceptron training rule:
wi = wi +? wi
? wi =? (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 ottiene
(true-output) positivo
pertanto si cambia wi in modo da
– incrementarlo per gli esempi positivi (xi >0) e quindi si aumenta il contributo
dei positivi
– decrementarlo per gli esempi negativi (xi <0)
•
•
in questo modo ripresentando lo stesso esempio si è ottenuto un
numero più positivo e meno negativo ovvero più vicino al +1 che
volevamo ottenere
viceversa per la classificazione invertita
21
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
• cioè ogni esempio viene classificato correttamente
nella sua classe
• Questo avviene purchè le due classi siano
linearmente separabili
• In caso diverso si devono usare meccanismi simili
ma più complessi
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
22
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 (non interessante, solo memoria
meccanica)
– i processi evoluzionistici (ok)
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
23
Operatori genetici
• Gli operatori genetici sono:
– Copia esatta
– Crossover
– Mutazione
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
24
Crossover
• Può essere di tipo:
– single point
– two points
– uniform
Single point crossover
• Dati due individui rappresentati come dei vettori di
caratteristiche [a1,a2,…,an] e [b1,b2,…,bn] si prende un
punto di taglio a caso e si generano due discendenti
[a1,a2,b3,…,bn] e [b1,b2,a3,…,an]
25
Two point crossover
• Dati due individui rappresentati come dei vettori di
caratteristiche [a1,a2,…,an] e [b1,b2,…,bn] si prendono
due punti di taglio a caso e si generano due
discendenti [a 1,a2,b3,b4,b5,a6,a7] e [b1,b2,a3,a4,a5,b6,b7]
Uniform crossover
• Dati due individui rappresentati come dei vettori di
caratteristiche [a1,a2,…,an] e [b1,b2,…,bn] si campiona
a caso da un genitore e si sostituisce con le
caratteristiche dell’altro e si generano due
discendenti [a 1,b2,a3,a4,b5,a6,b7] e [b1,a2,b3,b4,a5,b6,a7]
26
Mutazione
• Dato un individuo [a1,a2,…,an] si alterano alcune
componenti in modo casuale ottenendo un individuo
[a1,a2,a3,...,an]
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
27
Considerazioni
• L’operatore di mutazione non è il responsabile
primario nella generazione di nuove strutture.
• La riproduzione sessuata è meglio di quella
asessuata!
28