succ  prec  indice 

Apprendimento Deduttivo

L'utilizzo della deduzione logica come forma di apprendimento puo' sembrare a prima vista una contraddizione in termini. Infatti, se e' possibile dedurre una conseguenza logica da un insieme di premesse dato, questa conclusione non appare come incremento di conoscenza, ma semplicemente come sua esplicitazione.
Tuttavia, esistono molti domini in cui, rispetto ad un insieme relativamente ristretto di regole di base, e' possibile raggiungere un'esplosione combinatoria delle possibili applicazioni. Come esempio di tali domini, e' possibile considerare il gioco degli scacchi, dove sono sufficienti poche regole per caratterizzare le mosse lecite, ma in cui esprimere concetti del tipo "posizione a rischio di attacco incrociato" o "scambio di pezzi vantaggioso" risulta essere un compito arduo.
Un ulteriore esempio e' fornito dai problemi di pianificazione, in cui, anche supponendo un ambiente perfettamente accessibile, risulta molto difficile pianificare correttamente le sequenze di azioni necessarie per svolgere una determinate attivita'.
Proprio prendendo spunto dai risultati della teoria della pianificazione, ed in particolare dall'apprendimento di macro-operatori (operatori applicabili a compiti complessi, ottenuti per composizione di operazioni elementari) di ABSTRIPS,  DeJong, Mitchell ed altri, introducono un paradigma di apprendimento analitico (deduttivo)  denominato "apprendimento basato su spiegazione" (explanation based learning EBL) .

Lo scopo di questo tipo di apprendimento e' di produrre un'ipotesi h consistente con una conoscenza di fondo B, che fornisca una spiegazione sufficiente agli esempi  ei=<xi,f(xi)> contenuti nell'insieme E.
In particolare, l'ipotesi h deve poter essere deducibile dalla base di conoscenza unita con gli esempi dati.

 
(per ogni  ei=<xi,f(xi)> in  E)        h, xi  |-    f(xi)          (sufficienza)

                                    B, E    |-    h                                (deducibilita')
 

Diversamente dal caso dell'apprendimento induttivo, descritto successivamente dove viene richiesta la sola consistenza di h rispetto alla conoscenza di fondo B', oltre alla necessarieta' nella spiegazione degli esempi
 
      B'     not |-  not h                                (consistenza)
 
B',  xi     not |-  f(xi)       B', h,  xi     |-      f(xi)            (necessarieta')
 
Nell'apprendimento deduttivo, le ipotesi di spiegazioni spesso vengono vincolate ad essere espresse utilizzando un numero ristretto di predicati, rispetto alla conoscenza di fondo B. Questi predicati vengono definiti "operazionali", in accordo con l'utilizzo per problemi di pianificazione,  in cui la spiegazione h viene interpretata in termini di operazioni da svolgere.

Spesso i metodi EBL sfuttano la possibilita' del linguaggio Prolog di definire "meta-interpreti",  in grado di semplificare il procedimento deduzione automatica.
 

Un esempio di "meta-interprete" Prolog puo' essere il seguente (da [Sterling,Shapiro-86])
 

    %     solve(+Goal )
solve( true ).
solve( (A,B) ) :- solve( A ),solve( B ).
solve( ! ) :- !(reduce( A )).                    /* ancestor cut */
solve( not A ) :- not solve( A ).
solve(setof( X, Goal, Xs )) :- setof( X, solve(Goal), Xs ).
solve( A ) :- system( A ), A.
solve( A ) :- reduce( A ).

reduce( A ) :- clause( A,B ), solve( B ).
 

dove con "ancestor-cut" viene indicata la possibilita' di applicare il "cut" ad un nodo antenato rispetto alla clausosa considerata.

Un esempio semplificato di "meta-interprete" in grado di spiegare i fatti utilizzati dal procedimento di dimostrazione:
 

    %     solve1(+Goal, -Expl )
solve1( A, A ) :- clause( A, true ), !.
solve1( (A,B), (EA,EB) ) :- solve1( A,EA ),solve1( B, EB ).
solve1( A, E ) :- clause( A,B ), solve1( B, E ).
 
L'estensione del "meta-interprete" per il trattamento del concetto di operazionalita' richiede l'aggiunta alle clausole di un parametro di output, che riporti, in caso di successo, l'ipotesi trovata. Inoltre occorre introdurre un trattamento diversificato per i predicati operazionali, arrestando l'analisi del processo di deduzione.

Il procedimento indicato, viene chiamato EBG (explanation based generalization) :
 

    %     ebg(+Goal, -Expl )
ebg( A, A ) :- operational(A), !,  not not call( A).

ebg( A, A ) :- clause( A, true ), !.
ebg( (A,B), (HA,HB) ) :- ebg( A,HA ),ebg( B, HB ), !.
ebg( A, H ) :- clause( A,B ), ebg( B, H ), !.

                operational( pred_1(_, ... ,_) ).
                operational( pred_2(_, ... ,_ ) ).
                operational( pred_n(_, ... ,_) ).
 
I metodi di apprendimento analitico possono essere visti come procedimenti di generalizzazione di esempi, basati su teoria di fondo, in grado di distinguere la rilevanza degli attributi rispetto al loro utilizzo all'interno della descrizione operazionale.

Un modo alternativo di considerare l'EBL,  interpreta questo tipo di apprendimento come una forma di "compilazione della conoscenza", vale a dire una riformulazione di quanto espresso nella conoscenza di fondo, ai fini di renderne piu' efficiente l'utilizzo (operazionale) in problemi pratici.

 
 
 
 
 
 
 
 
 
 

Sia un esempio di E, e h
essere venire dedotta
deduzione (sound) MP, risoluzione
meta-dimostrazione operazionalita' complilazione della conoscenza


 succ  prec  indice