succ  prec  indice 

First Order Inductive Learner (FOIL)

 

Descrizione

Nell'ambito dei metodi di apprendimento induttivo applicabili al linguaggio della logica dei predicati,  un contributo significativo e' stato portato da FOIL, introdotto da Quinlan nel 1990.
Ispirato al precedente  ID3 , sempre di Quinlan, riprende da questo l'idea di applicare misure di teoria dell'informazione alla definizione di funzioni euristiche in grado di guidare la ricerca nello spazio delle ipotesi.

FOIL  appartiene alla categoria dei medodi ILP di tipo "top-down", basati su specializzazione. Funziona in modo batch, richiedendo misure euristiche che considerano l'intero insieme di esempio.

L'algoritmo riceve come parametro il nome e l'arita' di un predicato da apprendere e produce un insieme di regole la cui disgiunzione ne descrive la migliore approssimazione, espressa in relazione ad un determinato gruppo di predicati fissato .

Le ipotesi che possono essere apprese da FOIL sono rappresentabili in forma simile alle clausole di Horn, ma, a differenza di queste, non consentono l'uso di simboli di funzione, mentre ammettono letterali negati nel corpo della clausola.

La struttura dell'algoritmo comprende un ciclo esterno che, come per  CN2,  ha per obiettivo l'apprendimento una singola regola alla volta. In ogni iterazione vengono eliminati dall'insieme di esempio le istanze positive che soddisfano la nuova regola. Questo ciclo termina quando tutti gli esempi positivi risultano coperti da una delle definizioni ottenute.

Un ciclo piu' interno effettua la ricerca nello spazio delle ipotesi ,  partendo dall'ipotesi piu' generale relativa al predicato da apprendere  ( p(X1, ... ,X1) :- true. ), considera, di volta in volta, l'insieme ottenuto applicando all'ipotesi corrente l'Operatore di Specializzazione.  Tra le ipotesi candidate viene scelta quella che presenta il migliore guadagno di informazione, rispetto agli esempi dati. La nuova ipotesi cosi' ottenuta costituisce la base per la prossima specializzazione, e la ricerca termina quando tutti gli esempi negativi risultano correttamente discriminati.


Algoritmo FOIL:
 

 
 

Generazione Ipotesi Candidate

Durante la fase di ricerca, l'ipotesi corrente viene espansa nell' insieme di clausole piu' specializzate,  ottenute aggiungendo un letterale alle precondizioni della clausola originale.
 
spec-op( p(X1,...,Xn) :- L1,...,Ln , DefPreds ) = { p(X1,...,Xn) :- L1,...,Ln, Ln+1}
Dove il letterale di espansione considerato Ln+1 puo' essere uno dei tipi seguenti:
  Consistendo di un solo letterale, la specializzazione prodotta risulta minimale, nel senso che vengono considerate in modo sistematico tutte le clausole che specializzano in modo piu' generale possibile, la clausola originale.
 

Euristica del Guadagno di Informazione

La ricerca nello spazio delle ipotesi effettuata da FOIL e' di tipo "hill-climbing", selezionando ad ogni passo solo la migliore ipotesi candidata.
In maniera analoga ad  ID3 , la bonta' di una specializzazione s, rispetto all'ipotesi originale h, viene calcolata rispetto alla misura di "guadagno di informazione" , cosi' definita:
                                                  ps                                        ph
InfoGain(s,h)    =    t ( log2 _______ -  log2 _______ )
                                               ps + ns                         ph + nh
dove  ps , ns e ph , nh corrispondono, rispettivamente, al numero di esempi positivi e negativi che soddisfano o meno le regole s e h, mentre t indica il numero di esempi coperti dalla regola h, che soddisfano anche s.
 
 

Assunzione di Mondo Chiuso

 Gli esempi del predicato da apprenedere vengono forniti a FOIL in due insiemi E+ e E- , contenenti le tuple p(a1,...,an), ..., p(b1,...,bn) relative alle istanze positive e negative. Nel caso in cui fossero disponibili solo gli esempi positivi, e possibile ricorrere all'assunzione di mondo chiuso per generare gli esempi negativi in modo automatico, in una fase di pre-elaborazione. Questa operazione e' possibile solo in domini completamente specificati, dove e' possibile conoscere in anticipo tutte le possibili istanze positive di un certo concetto.
I predicati utilizzabili per la definizione induttiva, devono essere espressi in forma estensionale, vale a dire mediante enumerazione di tutti i possibili fatti ground.  Anche in questo caso, e' possibile ricorrere ad una fase di elaborazione per tradurre in forma estensionale, eventuali clausole contenenti variabili.

 

Apprendimento di Clausole Ricorsive

La definizione del predicato da apprendere attraverso esempi positivi, permette la sua assimilazione agli altri predicati di definizione, espressi anchessi in forma estensionale.
Questo permette l'apprendimento di predicati ricorsivi come dimostrato negli esempi di utilizzo.
A questo riguardo, e' possibile segnalare che FOIL e' stato applicato con successo a problema  dell'apprendimento del predicato quicksort, notoriamente ricorsivo.
 

Trattamento di Dati Imperfetti

In applicazioni reali, spesso i dati di esempio sono imprecisi o incompleti. Questo determina la produzione di regole estremamente complesse, necessarie per considerare i casi particolari introdotti dal rumore. Per ovviare a questo problema FOIL utilizza un criterio di arresto della fase di ricerca, basato sulla restrizione della complessita' di descrizione. Questo criterio termina la ricerca quando la lunghezza della clausola corrente, valutata  rispetto a una forma di codifica ottimale, supera la lunghezza necerraria a fornire una descrizione esplicita degli esempi positivi.
Qualora questo si verifichi, la clausola ottenuta viene scartata, utilizzando al suo posto l'insieme degli esempi positivi  considerati durante la ricerca.
 


 succ  prec  indice