Intelligenza Artificiale
Apprendimento automatico (generalizzare
l’esperienza)
Prof. M.T. PAZIENZA
a.a. 2004-2005
Ipotesi di base associate all’aa
Problema della generalizzazione
e di come un sistema possa identificare in
modo sicuro pattern invarianti nei dati tali
da supportare con essi la soluzione
intelligente di future istanze di problemi
dello stesso tipo
Ipotesi di base associate all’aa
Polarizzazione induttiva dell’apprendimento
e di come un progettista di sistema usi la propria intuizione
e le proprie euristiche nella definizione delle
rappresentazioni, dei modelli e degli algoritmi che
supportano il processo di apprendimento (es. definizione
di concetti “importanti” all’interno di un dominio, la
scelta di un particolare algoritmo di ricerca, …)
Ipotesi di base associate all’aa
Problema dell’induzione
e di come un progettista di sistema usi le proprie euristiche
per generalizzare (spesso i dati utilizzabili non sono
sufficienti a garantire una ottima generalizzazione,
indipendentemente dall’algoritmo usato): seleziona gli
aspetti che la sua esperienza considera siano efficaci
anche nel futuro.
Apprendimento
L’elettricità è come l’acqua.
Inferenza (riconoscere l’analogia)
Così come l’acqua scorre attraverso una tubatura, l’elettricità scorre in un
cavo
Come per l’acqua, è possibile misurare la quantità di energia (corrente) e la
pressione del flusso (tensione).
Diversamente dall’acqua, l’elettricità non rende le cose umide e non ci è di
alcuna utilità per lavare oggetti.
L’interpretazione delle analogie implica il riconoscimento delle similarità e
differenze per evitare inferenze false o prive di significato.
Apprendimento
Apprendimento: estrazione di informazione
profonda (non superficiale) da un tipo di
situazione ripetutasi più volte.
L’esperienza può modificare lo stato di un
organismo in modo tale che il nuovo stato rende
il sistema capace di funzionare meglio in una
situazione successiva.
Apprendimento
L’esperienza accumulata attraverso le percezioni
dell’agente serve per migliorare la capacità del
sistema di agire in futuro.
Esperienza -> nuovo stato -> prestazioni
L’apprendimento ha luogo:
• come risultato dell’interazione tra l’agente ed il
mondo
• dall’osservazione da parte dell’agente del modo
in cui egli stesso prende decisioni
Apprendimento
Psicologia comportamentale: gli uomini nascono
senza sapere nulla ed “assorbono” ogni
conoscenza dall’osservazione di situazioni
ripetitive.
Scienze cognitive: affinché un organismo possa
imparare qualunque cosa, è necessario che egli
già conosca qualcosa. Si applica anche alla
linguistica.
Apprendimento concettuale
Apprendimento induttivo od induzione
L’output dell’apprendimento induttivo si presenta come
un insieme di regole di produzione del tipo:
If <circumstances>
then <do action, or conclude something>
La parte destra della regola si chiama concetto, la parte
sinistra definizione del concetto o pattern
(Una regola è un pezzo di conoscenza, qualcosa che il
programma deve sapere)
Apprendimento concettuale
Apprendimento induttivo od induzione
Da una o più istanze in cui una azione specifica (iesima)
risulta essere l’azione appropriata in risposta ad una
particolare situazione (iesima),
si inferisce che la versione generale della stessa azione è
l’azione (gener) più appropriata alla situazione (gener)
Il problema è verificare
se ed in che senso
una conclusione generale può scaturire da osservazioni
specifiche
Apprendimento concettuale
Fare il debug di una regola if-then significa rendere
l’antecedente più generale (weakening) o più
specifico (strengthening) a seguito della verifica
di quanto bene la versione corrente funziona
Si dice che l’antecedente è più forte se dice di più
ovvero se è vero in un numero minore di
situazioni.
Altrimenti si dice che è più debole.
Apprendimento concettuale
Quando una regola non viene confermata, allora
si cerca di specializzarla, ovvero la si può
applicare in un numero minore di situazioni
Nella situazione inversa la regola può essere
generalizzata.
Si possono avere casi di overgeneralizzazione.
Apprendimento concettuale
Il problema è trovare un pattern, o una definizione
concettuale che si applichi ad un set di situazioni (istanze
positive di un concetto), e non si applichi ad altre (istanze
negative)
Ovvero: generalizzare dagli esempi positivi fino ad un
pattern generale che non comprenda alcuna delle istanze
negative.
L’algoritmo di apprendimento per generalizzazione –
specializzazione è un algoritmo empirico
Un arco e la sua rappresentazione grafica
arch
part
brick
supports
part
brick
supports
part
brick
Un altro arco e la sua rappresentazione grafica
arch
part
brick
supports
part
brick
supports
part
pyramid
Conoscenza di base
(mattoni/rettangoli e piramidi sono esempi di poligoni
polygon
isa
brick
isa
pyramid
Generalizzazione che comprende entrambi gli esempi
arch
part
brick
supports
part
brick
supports
part
polygon
Rappresentazione generale di un arco
Esempio limite di arco e sua rappresentazione
part
brick
touch
arch
supports
touch
part
brick
part
polygon
supports
Descrizione specifica di un arco che escluda gli esempi al limite
part
brick
must-not-touch
arch
supports
must-not-touch
part
brick
part
polygon
supports
Generalizzazione /Specializzazione
La generalizzazione e la specializzazione sono operazioni
inverse.
Ciascun metodo di general./special., quindi, può essere
descritto come una progressione che funziona in ciascuna
delle due direzioni.
Le variabili sono più generali delle costanti, quindi nel
processo di generalizzazione delle regole di produzione
verranno usate variabili al posto delle costanti
Generalizzazione /Specializzazione
La generalizzaz. e la specializzaz. forniscono un
insieme di metodi per modificare le regole. Ciò
non basta in quanto oltre a conoscere la direzione
della modifica, bisogna sapere come modificare.
Si tratta di un problema di ricerca complesso in
quanto la correttezza di un’azione nella direzione
della generalizzaz. o della specializzaz. non può
essere valutata finché non si raggiunge il risultato
finale. Sono così possibili passi falsi.
Generalizzazione /Specializzazione
Esistono più direzioni di generalizzazione (problema):
i predicati e le classi tendono a raggrupparsi in
“famiglie” con più o meno membri
(generalizzazione in gerarchie is-a)
Due modalità per rendere più debole o più forte un
pattern sono rispettivamente:
Disjunct manipulation
+ generale
Conjunct manipulation
+ specifica
Generalizzazione /Specializzazione
Un ulteriore metodo di generalizzazione è data
dall’universalizzazione che, da liste di formule
specifiche, ricava combinazioni quantificate.
Es.
Il libro 1 è sul tavolo
Il libro 2 è sul tavolo
……
Il libro i è sul tavolo
Qualunque cosa sia sul tavolo deve essere un libro
Generalizzazione /Specializzazione
Necessità di definire cosa si intende con situazione corrente
Non è:
insieme delle conoscenze del sistema (che comprende
passato, presente e aspettative)
Definire le caratteristiche della situazione che devono essere
ignorate nella modifica delle regole costituisce l’attività
di “identificazione della situazione”. In casi reali
esistono migliaia di fatti veri ma irrilevanti per la
situazione.
Generalizzazione /Specializzazione
Problema della descrizione dei fatti
La notazione usata per esprimere le definizioni dei
concetti deve avere la proprietà che:
Situazioni simili devono avere descrizioni simili
nella notazione
In tal modo possiamo sperare che una
generalizzazione possa catturare tutte le istanze
positive
Generalizzazione /Specializzazione
Problema dell’ assegnazione di credito
Conoscere possibili errori compiuti in precedenti
situazioni simili permette al sistema di
generalizzare meglio
Effettuare ripetuti esperimenti
Chiedere ad un esperto
Queste informazioni costituiscono le basi per
definire metodologie di apprendimento.
Apprendimento: fattori principali
Il progetto di un task di apprendimento automatico è
caratterizzato da:
1. Le componenti atte a selezionare le azioni rilevanti
(che hanno un impatto sull’ambiente)
2. La modalità di rappresentazione delle componenti (es.
descrizioni deterministiche, formule proposizionali,
descrizioni probabilistiche,…)
3. La descrizione del feedback ammesso (apprendimento
supervisionato versus apprendimento non
supervisionato, apprendimento per rinforzo)
4. La descrizione delle informazione precedenti
disponibili (se c’è, la conoscenza a priori, aiuta..)
Apprendimento induttivo
Chiamiamo esempio una coppia (x,f(x)) in cui
x è l’ingresso ed f(x) è il risultato della
funzione applicata ad x.
L’inferenza induttiva, o induzione, è tale per
cui, data una collezione di esempi di f,
restituisce una funzione h che approssima f
La funzione h è chiamata ipotesi
Apprendimento induttivo
Per ogni f esiste un numero elevato di ipotesi h consistenti
con gli esempi.
Ciascuna preferenza per un’ipotesi piuttosto che per
un’altra (al di là della consistenza degli esempio in ogni
caso acclarata) rappresenta una inclinazione del
sistema.
Tutti gli algoritmi di apprendimento automatico
presentano una propria inclinazione.
Apprendimento induttivo
La scelta della rappresentazione per la funzione
desiderata è cruciale.
Esiste una ovvia contrapposizione tra:
espressività (la funzione desiderata è
rappresentabile con il linguaggio stesso)
efficienza (il problema dell’apprendimento è
trattabile se si sceglie un certo linguaggio di
rappresentazione)
Alberi di decisione/decision tree
Gli alberi di decisioni permettono di determinare la classificazione
di un oggetto andando a controllare i suoi valori rispetto a certe
proprietà.
In un albero di decisione ciascun nodo interno rappresenta un test
su qualche proprietà; ciascun possibile valore di quella proprietà
corrisponde ad (seleziona) un ramo dell’albero.
I nodi foglie rappresentano la classificazione.
Un elemento sconosciuto può essere classificato attraversando
l’albero: ad ogni nodo interno, test del valore individuale per la
proprietà ed individuazione del ramo specifico, fino alla foglia
(=classificazione); non tutte le proprietà vengono testate per
arrivare alla classificazione.
Alberi di decisione
Un albero di decisione ha in ingresso una situazione
od un oggetto descritto da un insieme di proprietà
ed in uscita una “decisione” del tipo si/no
(rappresentano funzioni booleane).
Ogni nodo rappresenta un test sul valore delle di una
proprietà e gli archi uscenti da un nodo esprimono
con la loro etichetta i possibili valori del test
Ciascuna foglia dell’albero specifica il valore
booleano in output
Alberi di decisione
Gli alberi di decisione possono rappresentare molte
funzioni con alberi di dimensioni più piccole
Un’istanza (un esempio) è descritta dai valori degli
attributi e dal valore del predicato obiettivo.
Il valore del predicato obiettivo si chiama
classificazione dell’esempio. Predicato con valore
vero: esempio positivo, con valore falso: esempio
negativo
L’insieme completo degli esempi si chiama insieme
di addestramento
Alberi di decisione
Si può costruire un albero di decisione che sia consistente
con l’insieme di addestramento e che sia anche conciso
(schema = + piccolo albero di decisione).
Rasoio di Ockham (William di Occam, 1324):
L’ipotesi più probabile è la più semplice che sia consistente
con tutte le osservazioni
<=> a parità di altre circostanze, un’ipotesi semplice che sia
consistente con tutte le osservazioni ha una probabilità di
essere corretta maggiore di una complessa
Alberi di decisione
Si può costruire un albero di decisione in un
approccio top-down
Si aggiungono test all’albero: si individua un
sottoalbero ad ogni test e si continua la ricerca;
non c’è backtracking
L’algoritmo è molto efficiente, e dipendente dal
criterio usato per selezionare le proprietà da
testare.
Alberi di decisione
Dopo che il test sul primo attributo ha suddiviso gli esempi, ciascuno
dei risultati è in se stesso un nuovo problema di apprendimento di
un albero di decisione con meno esempi e un attributo in meno.
(ricorsione)
• Con esempi + e – si sceglie l’attributo migliore per suddividerli
• Se rimangono solo esempi + (o -) , allora fine
• Se non ci sono più esempi, vuol dire che nessun esempio con quei
valori per gli attributi è stato osservato
• Se non ci sono più attributi, e ci sono esempi + e -, significa che
questi esempi hanno la stessa descrizione ma classificazioni diverse
(dati errati, costituiscono il rumore), oppure che gli attributi scelti
non descrivono completamente la situazione
Alberi di decisione
costruire un albero di decisione in un approccio top-down (ID3)
Function induce_tree(example_set, Properties)
begin
if all entries in example_set are in the same class
then return a leaf node labeled with that class
else if Properties is empty
then return leaf node labeled with disjunction of all classes
in example_set
else begin
select a property, P, and make it the root of the current tree;
delete P from Properties;
for each value, V, of P,
begin
create a branch of the tree labeled with V;
let partition-v be elements of example_set with values V for
property P;
call induce_tree (partition-v, Preoperties), attach results to
branch V
end
end
end
Alberi di decisioni
• Insiemi di apprendimento
• Insiemi di test
Caratteristiche degli algoritmi di aa
Dati ed obiettivi dell’algoritmo di
apprendimento
Rappresentazione della conoscenza appresa
Set di operazioni utilizzate
Spazio di definizione dei concetti potenziali
Ricerca euristica utilizzata
Scarica

5ApprAutomatico