aprendizaje automatico programacion logica inductiva (1)

19
AprendizajeAutom´atico: Programaci´ on L´ ogica Inductiva. Dr. Alejandro Guerra Hern´ andez Universidad Veracruzana Facultad de F´ ısica e Inteligencia Artificial Maestr´ ıa en Inteligencia Artificial Sebasti´ an Camacho No. 5, Xalapa, Ver., M´ exico 91000 [email protected] www.uv.mx/aguerra Abril 22, 2004 1. Introducci´ on Una de las representaciones de hip´otesis m´as expresivas y f´aciles de com- prender son los conjuntos de reglas Si – Entonces. Esta sesi´on explora diversos algoritmos para el aprendizaje de estos conjuntos de reglas. Un caso especial im- portante, involucra el aprendizaje de conjuntos de reglas que incluyen variables. Estas reglas se conocen como cl´ausulas de Horn en primer orden. Debido a que las cl´ausulas de Horn pueden verse como programas escritos en un lenguaje de programaci´ on l´ ogica como Prolog, su aprendizaje se conoce como Programaci´on L´ogica Inductiva (ILP). En muchos casos es ´ util aprender una funci´ on objetivo representada como un conjunto de reglas si-entonces, que en de manera conjunta definen la funci´ on. Como hemos visto, es posible construir un conjunto de reglas aprendiendo un ´ arbol de decisi´ on (clase 07) y convirti´ endolo en el cojunto de reglas equivalente, una por cada rama de la ra´ ız del ´arbol a alguna de sus hojas. Un segundo m´ eto- do que hemos visto es el de codificar cada regla como una cadena de bits y usar un algoritmo gen´ etico (clase08) para explorar el espacio de hip´ otesis posibles. En esta sesi´on estudiaremos algoritmos que aprenden estos conjuntos de reglas directamente y que difieren de los m´ etodos mencionados en dos aspectos fun- damentales. Primero, est´ an dise˜ nados para trabajar con reglas que contienen variables. Esto es significativo porque las reglas en primer orden son consi- derablemente m´as expresivas que las reglas proposicionales vistas hasta ahora. Segundo, los algoritmos que discutiremos son algoritmos de cobertura secuen- cial que aprenden una regla a la vez, para incrementalmente ir construyendo el conjunto de reglas. 1

Upload: edison-leonardo-correa-zambrano

Post on 01-Dec-2015

48 views

Category:

Documents


0 download

TRANSCRIPT

Aprendizaje Automatico:

Programacion Logica Inductiva.

Dr. Alejandro Guerra HernandezUniversidad Veracruzana

Facultad de Fısica e Inteligencia ArtificialMaestrıa en Inteligencia Artificial

Sebastian Camacho No. 5, Xalapa, Ver., Mexico [email protected]

www.uv.mx/aguerra

Abril 22, 2004

1. Introduccion

Una de las representaciones de hipotesis mas expresivas y faciles de com-prender son los conjuntos de reglas Si – Entonces. Esta sesion explora diversosalgoritmos para el aprendizaje de estos conjuntos de reglas. Un caso especial im-portante, involucra el aprendizaje de conjuntos de reglas que incluyen variables.Estas reglas se conocen como clausulas de Horn en primer orden. Debido a quelas clausulas de Horn pueden verse como programas escritos en un lenguaje deprogramacion logica como Prolog, su aprendizaje se conoce como ProgramacionLogica Inductiva (ILP).

En muchos casos es util aprender una funcion objetivo representada comoun conjunto de reglas si-entonces, que en de manera conjunta definen la funcion.Como hemos visto, es posible construir un conjunto de reglas aprendiendo unarbol de decision (clase 07) y convirtiendolo en el cojunto de reglas equivalente,una por cada rama de la raız del arbol a alguna de sus hojas. Un segundo meto-do que hemos visto es el de codificar cada regla como una cadena de bits y usarun algoritmo genetico (clase08) para explorar el espacio de hipotesis posibles.En esta sesion estudiaremos algoritmos que aprenden estos conjuntos de reglasdirectamente y que difieren de los metodos mencionados en dos aspectos fun-damentales. Primero, estan disenados para trabajar con reglas que contienenvariables. Esto es significativo porque las reglas en primer orden son consi-derablemente mas expresivas que las reglas proposicionales vistas hasta ahora.Segundo, los algoritmos que discutiremos son algoritmos de cobertura secuen-cial que aprenden una regla a la vez, para incrementalmente ir construyendo elconjunto de reglas.

1

Como un ejemplo de reglas de primer orden, consideren el siguiente par dereglas que en conjunto definen el concepto ancestro. El predicado Padre(x, y)indica que y es la madre o el padre de x, y el predicado Ancestro(x, y) indicaque y es un ancestro de x en un numero arbitario de generaciones:

Si Padre(x, y) Entonces Ancestro(x, y)Si Padre(x, z) ∧ Ancestro(z, y) Entonces Ancestro(x, y)

Observen que estas dos reglas definen de manera concisa una funcion recur-siva que serıa difıcil de representar usando arboles de decision o cualquier otrometodo de representacion proposicional. De hecho, formuladas de una mane-ra poco diferente, el par de reglas anterior forman un programa Prolog validopara computar la relacion ancestro. Un algoritmo de proposito general capazde aprender estos conjuntos de reglas es por lo tanto, un algoritmo para inferirautomaticamente programas Prolog a partir de ejemplos.

Comenzaremos por considerar algoritmos que aprenden conjuntos de reglasproposicionales, esto es, reglas sin variables. Los algoritmos que buscan en elespacio de hipotesis un conjunto de reglas disyuntivas son mas faciles de entenderen esta configuracion.

2. Algoritmos de cobertura secuencial

Estos algoritmos para aprender conjuntos de reglas siguen la estrategia deaprender una regla, remover los ejemplos que la regla cubre del conjunto deentrenamiento, e iterar en este procedimiento. Imaginen que tenemos una sub-rutina aprendeUnaRegla que acepta como entrada, un conjunto de ejemplos deentrenamiento positivos y negativos; y produce como salida, una sola regla quecubre muchos ejemplos positivos y pocos negativos. Necesitamos que esta reglatenga alta precision, aunque carezca de amplia cobertura. Eso es, la regla nonecesariamente hace predicciones sobre todos los ejemplos, pero, para aquellosque la hace, la prediccion es correcta.

Dada esta sub-rutina para aprender una sola regla, una aproximacion obviapara aprender un conjunto de reglas es aplicar la sub-rutina a todos los ejemplosde entrenamiento, remover todos los ejemplos positivos cubiertos por la reglaaprendida, y aplicar nuevamente la sub-rutina en los ejemplos restantes paraproducir una nueva regla. Este procedimiento se puede repetir hasta producirun conjunto de reglas que cubran la fraccion de ejemplos positivos deseada.El conjunto resultante puede ordenarse de acuerdo a su precision, para aplicarlas reglas mas precisas primero, al clasificar nuevos ejemplares. Un algoritmoprototıpico se muestra en el cuadro 1.

Este algoritmo de cobertura secuencial representa uno de los enfoques masusados para aprender conjuntos de reglas disyuntivas. El enfoque reduce el prob-lema original en una sencuencia de problemas mas simples, cada uno de los cualesrequiere que una sola regla conjuntiva sea aprendida. Puesto que la busqueda

2

fun coberturaSecuencial(objetivo, atribs, ejs, umbral)input: objetivo: atributo objetivo;

atribs: atributos;ejs : conjunto de entrenamiento;umbral: porcentaje aceptacion;

static: regla: una regla aprendida;output: reglas: conjunto de reglas aprendido;

reglas ← {};regla ← aprendeUnaRegla(objetivo, atribs, ejs);while desempeno(regla, ejs) > umbral do

reglas ← reglas ∪ regla;ejs ← ejs \ { ejs bien clasifiados };regla ← aprendeUnaRegla(objetivo, atribs, ejs);

enddoreglas ← ordenarPorDesempeno(reglas);return reglas;

endfun

Cuadro 1: Algoritmo coberturaSecuencial

llevada a cabo es egoısta, no podemos garantizar que el enfoque encontrara elconjunto de reglas mas pequeno, o bien, el de mejor cobertura sobre el conjuntode ejemplos.

¿Como debemos disenar aprendeUnaRegla para cubrir los requermientosdel algoritmo de cobertura secuencial? A continuacion consideraremos el casoproposicional y mas tarde el de las clausulas de Horn.

2.1. Busqueda por barrido de lo general a lo especıfico

Una manera de disenar aprendeUnaRegla consiste en organizar la busquedaen el espacio de hipotesis a la manera de ID3, pero siguiendo unicamente la ramamas promisoria del arbol en cada paso. Esto es, la busqueda comienza con lahipotesis mas general, ninguna restriccion atributo-valor ha sido impuesta, y encada paso anade una restriccion en forma de prueba atributo-valor, que maxi-miza la ganancia de informacion sobre el conjunto de entrenamiento. Como ID3,este enfoque egoısta va anadiendo restricciones en los atributos hasta alcanzarun nivel aceptable de desempeno. A diferencia de ID3, solo se seguira la ramamas promisoria, es decir, aquella que maximiza la ganancia de informacion. Porlo tanto, esta estrategia puede verse como una busqueda egoısta en profundidadsin retorno (backtracking). Como hemos visto, este tipo de busqueda tiene elriesto de realizar decisiones sub-optimas en cada iteracion. Para reducir esteriesgo, podemos extender en algoritmo para realizar una busqueda por barrido,

3

esto es, un busqueda en donde el algoritmo mantiene una lista de los k mejorescandidatos en cada iteracion, en lugar de un solo candidato. Los descendientes(especializaciones) de estos k candidatos son calculados y el conjunto que resul-ta se vuelve a reducir a los k mejores candidatos. Este algoritmo, usado por elprograma CN2 [2], se muestra en el cuadro 2.

Algunos comentarios sobre aprendeUnaRegla son necesarios. Observen quecada hipotesis considerada en el ciclo principal del algoritmo, es una conjuncionde restricciones sobre pares atributo-valor. Cada una de estas hipotesis conjun-tivas corresponde a un conjunto candidato de precondiciones para la regla queesta siendo aprendida, y es evaluada por la entropia de los ejemplos que cubre.La busqueda considera incrementalmente hipotesis candidato mas especıficas,hasta que alcanza una hipotesis maximamente especıfica que contiene todos losatributos disponibles. La regla que es producida por el algoritmo es aquellacuyo desempe~no es el mayor, no necesariamente la hipotesis final generada en lab’usqueda. La post condicion para la regla producida por el algoritmo, es elegidaen el ultimo paso del mismo, una vez que la precondicion de la regla, representa-da en mejorHip, ha sido determinada. El algoritmo contruye la post condicionde la regla para predecir el valor del atributo objetivo, que es el mas comun entreaquellos ejemplos cubiertos por la precondicion de la regla. Finalmente, observenque a pesar del uso de la busqueda por barrido para reducir el riesgo ımplicitoen la estrategia egoısta del algoritmo, es posible que este pueda producir aunconjuntos de reglas sub optimas. Como sea, el algoritmo coberturaSecuencialsera capaz de aprender un conjunto de reglas disjuntas que cubran los ejemplosde entrenamiento, al llamar repetidamente a aprendeUnaRegla en el resto delos ejemplos no cubiertos.

2.2. Variaciones

Diversas variantes del enfoque presentado han sido estudiadas. Por ejemplo,en algunos casos serıa deseable tener un programa que aprenda unicamente re-glas que cubre ejemplos positivos, e incluir un valor por default que asigna unaclasificaci’on negativa a los ejemplares no cubiertos por ninguna regla. Este en-foque es deseable por ejemplo, si queremos aprender un concepto como “mujerembarazada con probabilidad de tener mellizos”. En este caso, la fraccion deejemplos positivos en toda la poblacion, es pequeno, de forma que el conjuntode reglas que definen el concepto sera mas compacto e inteligible para los usuar-ios si este indentifica solo clausulas de ejemplos positivos, con la clasificaci’onnegativa por default, para todos los demas ejemplos. Este enfoque tambien cor-responde con la estrategia de “negacion como falla” usada por Prolog, en lacual una expresion que no puede demostrarse verdadera, se asume como fal-sa. Para poder aprender estas reglas que predicen un solo valor objetivo, elalgoritmo aprendeUnaRegla puede ser modificado para aceptar un argumen-to adicional que especifique el valor del atributo objetivo que nos interesa. Labusqueda por barrido se lleva a cabo como se meciono, cambiando unicamentela funcion desempe~no que evalua las hipotesis. Observen que el uso de entropiaen esta extension yao es apropiado, porque asigna la calificacion maxima a las

4

fun aprendeUnaRegla(objetivo, atribs, ejs, k)input: objetivo: concepto cible;

atribs: atributos;ejs: ejemplos de entrenamiento;k : numero de candidatos a considerar;

static: mejorHip: mejor hipotesis;candidatos: hipotesis candidato;restrics: conjunto de restricciones (atr,val);

output: regla: la regla aprendida;

mejorHip ← ∅;candidatos ← { mejorHip };while not(vacıo(candidatos)) do

;;; Candidatos mas especıficosrestrics ← todasRestricciones(atribs,vals);nuevosCandidatos ←

foreach h ∈ candidatos doforeach c ∈ restrics do

especializar(h,c)enddo

enddonuevosCandidatos ← filtraDuplEIncons(nuevosCandidatos);;;; Actualizar mejorHipforeach h ∈ nuevosCandidatos do

if desempeno(h, ejs, objetivo) >desempeno(mejorHip, ejs, objetivo)

then mejorHip ← hendif

;;; Actualizar candidatoscandidatos ← mejores(k, nuevosCandidatos, desempeno);

endwhilereturnSi mejorHip Entonces masFrecuente(Val(mejorHip,ejs));

endfun

fundesempeno(h, ejs, objetivo)

hEjs ← match(ejs, h);returnentropia(hEjs, objetivo);

endfun

Cuadro 2: Algoritmos aprendeUnaRegla y desempeno

5

hipotesis que cubren exclusivamente ejemplos negativos, ası como aquellas quecubren solo ejemplos positivos. Una medida que evalue la fraccion de ejemplospositivos cubierta por la hipotesis, serıa mas apropiada en este caso.

Otras variaciones pueden encontrarse en el algoritmo AQ [3], un predecesorde CN2. En primer lugar, este algoritmo busca reglas que cubren un atributoobjetivo con un valor especıfico, aprendiendo un conjunto de reglas a la vez paracada valor del atributo. La busqueda de una sola regla tambien es computada deotra forma, guiada por un solo ejemplo positivo. En partıcular, el algoritmo soloconsidera aquellos atributos safistechos por el ejemplo positivo. Cada vez que elalgoritmo aprende una nueva regla, un nuevo ejemplo positivo es seleccionadode entre aquellos que no estan aun cubiertos por el conjunto de reglas, paraguiar la busqueda de una nueva regla disjunta.

La medida de desempeno usada en aprendeUnaRegla puede variar. Algunasfunciones de evaluacion comunes incluyen:

Frecuencia relativa. Esta evaluacion es usada en AQ. Sea n el numero deejemplos que cumplen con la precondicion de la regla y nc el numero deejemplos correctamente clasificados. La frecuencia relativa estimada deldesempeno de la regla es:

nc

n

Estimado-m de precision. Este estimador de la precision esta sesgado hacıala precision esperada de la regla. Se le prefiere cuando los datos son escasosy la regla sera evaluada con base en pocos ejemplos. Como antes, n y nc

denotas los ejemplos que cumplen la precondicion de la regla, y aquellosque estan bien clasificados, respectivamente. Sea p la probabilida apriori deque un ejemplo seleccionado aleatoriamente del conjunto de entrenamien-to, tendra el valor del atributo objetivo predicho por la regla (si hay 100ejemplos en el conjunto de entrenamiento, y de ellos 12 tienen el valor delatributo predicho por la regla, entonces p = 0,12). Finalmente, sea m elpeso, o el numero equivalente de ejemplos para ponderar la probabilidadapriori p. El estimador-m de la precision de la regla es:

nc + mp

n + m

Observen que si m = 0, el estimador-m se convierte en la frecuencia relati-va. En la medida que m crece, un mayor numero de ejemplos es necesariopara contrarestar le precision asumida apriori p. Esta evaluacion es usadaen CN2 y el clasificador Bayes naive.

Entropıa. Esta es la medida usada por la funcion desempe~no, en el algoritmoaquı presentado. Sea S el conjunto de ejemplos que cumplen con la pre-condicion de la regla. La entropia mide la uniformidad de los valores de la

6

funcion objetivo, en este conjunto de ejemplos. Como tomamos el negativode la entropıa, las mejores reglas tendran valores mas altos.

−entropia(S) =c∑

i=1

pilog2pi

donde c es el numero de valores diferentes que la funcion objetivo puedetomar; y pi es la proporcion de ejemplos con respecto a S para los cualesla funcion objetivo toma el valor i-esimo. Esta evaluacion junto con untest de significancia estadıstica es usado por el algoritmo CN2 [2].

3. Aprendiendo reglas de primer orden

Ahora consideraremos el problema de aprender reglas que contienen varia-bles, en partıcular, el aprendizaje de teorıas de clausulas de Horn. Estas reglasson mas expresivas que su contraparte proposicional. Este tipo de aprendizajese conoce como Programacion Logica Inductiva (ILP) [5], porque un conjuntode clausulas de Horn puede constituir un programa valido en el lenguange deprogramacion logica Prolog.

3.1. Terminologıa

Antes de continuar, introduciremos la terminologıa basica de la logica formal.Toda expresion esta compuesta de constantes, variables, sımbolos de predicadoy sımbolos de funciones. La diferencia entre predicados y funciones es que losprimeros toman exclusivamente valores booleanos de falso y verdadero. Pararepresentar constantes usaremos cadenas que inicien con una mayuscula, y paralas variables usaremos cadenas en minusculas. Para representar predicados us-aremos cadenas que empiezan con mayuscula, y para las funciones cadenas enminusculas.

Con estos sımbolos, las expresiones se construyen como sigue: Un terminoes una constante, o una variable, o una funcion aplicada a un termino (ob-serven la recursion en la definicion). Por ejemplo x, Juan, mayor(Juan, x),padre(Juan), son todos terminos. Una literal es cualquier predicado o su ne-gacion, aplicada a un termino, por ejemplo, Soltera(x), V iudo(padre(Juan)),¬Soltero(Juan), son literales. Si una literal incluye negacion se le llama literalnegativa, en cualquier otro caso es una literal positiva.

Una clausula es cualquier disyuncion de literales, donde se asume que todaslas variables estan cuantificadas universalmente. Una clausula de Horn es unaclausula que contiene a lo mas una literal positiva, de forma que:

H ∨ ¬L1 ∨ . . . ∨ ¬Ln

donde H es la literal positiva, y Li son las literales negativas. Debido a lasequivalencias (B ∨ ¬A) ≡ (B ← A) y ¬(A ∧ B) ≡ (¬A ∨ ¬B), la clausula deHorn puede escribirse alternativamente como:

7

H ← (L1 ∧ . . . ∧ Ln)

que es equivalente a la regla:

Si L1 ∧ . . . ∧ Ln Entonces H

Cualquiera que sea la notacion adoptada, las precondiciones L1∧ . . .∧Ln dela clausula de Horn, son llamadas el cuerpo de la regla, o bien, su antecedente.La literal H que forma la postcondicion de la clausula de Horn, se llama cabeza,o alternativamente consecuente.

3.2. FOIL: aprendiendo reglas de primer orden

El programa FOIL [6] emplea una estretegia muy similar a la coberturasecuencial para aprender reglas de primer orden. Formalmente, FOIL aprendeconjuntos de reglas de primer orden, donde cada regla es similar a una clausulade Horn, con dos excepciones: i) las reglas aprendidas por FOIL son mas re-strictivas que las clausulas de Horn en general, al no permitir la inclusion defunciones (esto reduce el espacio de busqueda); y ii) Las reglas de FOIL sonmas expresivas que las clausulas de Horn al permitir literales negadas en elcuerpo de la regla. Esta configuracion es lo suficientemente poderosa como paraaprender coneptos como la definicion recursiva de QuickSort, o bien discriminarmovimiento legales de los ilegales en ajedrez.

El algoritmo FOIL se muestra en el cuadro 3. Observen que el ciclo prin-cipal corresponde a una variacion del algoritmo coberturaSecuencial, estoes, aprende una regla a la vez removiendo los ejemplos cubiertos por la ultimaregla aprendida, antes de contınuar. El ciclo interno es a su vez una variantedel algoritmo aprendeUnaRegla, modificado para trabajar con reglas en primerorden. Observen tambien las pequenas diferencias de FOIL con los algoritmosmencionados, en partıcular, el hecho de que FOIL busque solamente reglas quepredicen cuando la literal objetivo es verdadera. Los algoritmos introducidospreviamente, buscan reglas que predicen cuando el objetivo es verdadero y cuan-do es falso. FOIL no ejecuta una busqueda por barrido, utiliza un ascenso degradiente simple1.

La busqueda de FOIL puede entenderse mejor si se considera su estructurajerarquıca. El ciclo principal del algoritmo agrega una nueva regla a la hipotesisdisjunta reglas. El efecto de esto es generalizar la hipotesis actual, es decir, in-crementar el numero de ejemplares clasificados como positivos, agregando unanueva disyuncion. Visto a este nıvel, el algoritmo lleva a cabo una busqueda delo especıfico a lo general, comenzando con la hip’otesis mas especıfica posible(la disyuncion vacıa) y terminando con una hipotesis lo suficientemente generalpara cubrir todos los ejemplos de entrenamiento positivos. El ciclo interno delalgoritmo lleva a cabo otra busqueda en un mas detallada para encontrar la

1Puede verse tambien como un busqueda por barrido con amplitud k=1

8

fun FOIL(objetivo, predicados, ejemplos)input: objetivo: predicado concepto cible;

predicados: bias de lenguaje;ejemplos: conjunto de entrenamiento;

static: pos: ejemplos donde objetivo=t;neg: ejemplos donde objetivo=f;

output: reglas: las reglas aprendidas;

pos ← positivos(ejemplos,objetivo);neg ← negativos(ejemplos,objetivo);reglas ← {};while pos do

;;; aprender regla nuevanuevaRegla ← (objetivo ← t);nuevaReglaNeg ← neg;while nuevaReglaNeg do

;;; Agregar literal para especializarlitsCand ← nuevasLiterales(nuevaRegla,predicados);mejorLit ← maxl∈litsCand foilGain(L,nuevaRegla);reglaNueva ←(objetivo ← mejorLit);nuevaReglaNeg ← sat(nuevaReglaNeg, nuevaRegla);

enddoreglas ← reglas ∪ nuevaRegla;pos ← cubre(pos,reglas);

enddoreturnreglas;

endfun

Cuadro 3: Algoritmo FOIL

9

definicion exacta de cada regla aprendida, donde el espacio de busqueda de esteciclo esta formado por conjunciones de literales. En este espacio, FOIL lleva acabo una busqueda de lo general a lo especıfico (ascenso de gradiente), comen-zando con la hipotesis mas general (cojuncion vacıa), para entonces especializarla hipotesis, agregando una literal en cada iteracion, de forma que los ejemplosde entrenamiento negatvos sean rechazados.

La diferencia principal entre FOIL y los algoritmos de la seccion anterior sedeben a que el algoritmo expresa sus hipotesis en un lenguaje de primer orden.Las diferencias incluyen:

1. En su busqueda de lo general a lo especıfico, FOIL emplea etapas de difer-ente nıvel de detalle, para generar los candidatos a especializacion de unaregla. Esto se debe a la necesidad de introducir reglas en la precondicionde la regla.

2. FOIL emplea una medida de desempeno diferente a la entropia usada enaprendeUnaRegla (cuadro 2). Esta diferencia es producto de la necesidadde distinguir las diferentes instanciaciones, en las variables de una regla;y por el hecho de que el algoritmo busca solo reglas que cubren ejemplospositivos.

Estas diferencias son discutidas en detalle en el resto de la seccion.

3.2.1. Generacion de candidatos a especializacion en FOIL

Para generar candidatos a especializacion de la regla aprendida hasta elmomento, FOIL genera diversas literales nuevas, cada una de las cuales puedenser agregadas a las precondiciones de la regla actual. Por ejemplo, considerenque la regla aprendida es:

P (x1, x2, . . . xn) ← L1, . . . Ln

donde L1, . . . , Ln son las literales formando la precondicion de la regla; yP (x1, x2, . . . xn) es la literal que forma la poscondicion de la regla. FOIL calculalos candidatos a generalizacion consierando nuevas literales Ln+1 que satisfacenuno de los siguiente criterios:

Q(v1, . . . vr) donde Q ∈ predicados es un sımbolo de predicado; y vi sonnuevas variables, o variables que ya estan presentes en la regla. Al menosuna de las vi en la literal creada, debe existir ya como variable en la reglaactual.

Igual(xj , xk) donde xj y xk son varibles que ya estan presentes en la regla.

La negacion de alguna de las dos formas de literal antes mencionadas.

Como ejemplo, consideren reglas de aprendizaje para predecir la literal obje-tivo Nieta(x, y), en done otros predicados para describir los ejemplos son Padre

10

y Mujer. La busqueda de lo general a lo especıfico de FOIL comienza con laregla mas general:

Nieta(x, y) ←que establece que Nieta(x, y) es cierto para cualquier x y cualquier y. Para

especializar esta regla inicial, las siguientes literales son generadas como can-didatos a agregarse a la precondicion de la regla: Igual(x, y), Mujer(x), Mujer(y),Padre(x, y), Padre(y, x), Padre(x, z), Padre(z, x), Padre(y, z), Padre(z, y),ası como la negacion de cada una de estas literales. Observen que z es unavariable nueva aquı, mientras que x e y son variables existentes. Ahora consid-eren que de manera egoısta, FOIL selecciona a Padre(y, z) como la literal maspromisioria, produciendo ası la regla mas especıfica:

Nieta(x, y) ← Padre(y, z)

Al generar candidatos para generalizar nuevamente la regla, FOIL consider-ara ahora todas las literales mencionadas en el paso anterior, mas las siguientes:Mujer(z), Igual(z, x), Igual(z, y), Padre(z, w), Padre(w, z), ası como sus ne-gaciones. Estas literales son consideras por la introduccion de z en la etapaanterior, lo cual lleva a FOIL a considerar ahora la nueva variable w.

Si FOIL selecciona en este momento la literal Padre(z, x) y posteriormenteMujer(y), eso resultarıa en la siguiente regla, que cubre solo ejemplos positivosy, por lo tanto, termina con la busqueda de especializaciones:

Nieta(x, y) ← Padre(y, z) ∧ Padre(z, x) ∧ Mujer(y)

En este punto, FOIL eliminarıa todos los ejemplos positivos cubiertos poresta regla del conjunto de entrenamiento. Si aun quedan ejemplos positivos porcubrir, entonces comenzarıa otra busqueda de lo general a lo especıfico de unanueva regla.

3.2.2. Guiando la busqueda de FOIL

Para seleccionar la literal mas promisoria de entre los candidatos generadosen cada etapa del algoritmo, FOIL considera el desempeno de clasificacion dela regla sobre el conjunto de entrenamiento. Al hacer esto, el algoritmo consieratodas las instanciaciones posibles de cada variable en la regla. Por ejemplo,consideren nuevamente la busqueda de un conjunto de reglas para predecir laliteral objetivo Nieta(x, y). Como ejemplo de entramiento, asumimis el siguienteconjunto de hechos de forma general P (x, y) que se leen “P es el x de y”:

Nieta(Victor,Sharon) Padre(Sharon,Bob) Padre(Tom,Bob)Mujer(Sharon) Padre(Bob,Victor)

Aquı asumiremos el supuesto del mundo cerrado (CWA, Close World As-sumption) de que cualquier literal que involucre los predicados Nieta, Padre

11

y Mujer, ası como las constantes V ictor, Sharon, Bob, y Tom, que no se en-cuentre en el listado anterior, puede ser consierada como falsa. Podemos tambienafirmar explıcitamente, por ejemplo, que ¬Nieta(Tom,Bob), etc.

Para seleccionar la mejor especializacion de la regla actual, FOIL consideracada forma distinta en la que las variables de la regla, pueden ser instanciadaspor las constantes en los ejemplos de entrenamiento. Por ejemplo, en la etapainicial, cuando la regla es:

Nieta(x, y) ←las variables x e y no estan restringidas por la precondicion de la regla, y

pueden ser instanciadas por cualquier combinacion de las constantes V ictor,Sharon, Bob, y Tom. Usaremos la notacion {x/Bob, y/Sharon} para expresaruna instanciacion de variables partıcular. Al mapeo de cada variable a una con-stante se le conoce como substitucion. Dadas las cuatro constantes, hay 16 substi-tuciones posibles para esta regla inicial. La substitucion {x/V ictor, y/Sharon}corresponde a la instanciacion por un ejemplo positivo, porque la instanciacionincluye el hecho Nieta(V ictor, Sharon). Las otras 15 instanciaciones permitidaspor la regla, constituyen evidencia negativa para la regla (ningun hecho en elconjunto de entrenamiento corresponde a alguna de ellas).

En cada etapa, la regla es evaluada con respecto a estos conjuntos de sub-stituciones positivas y negativas, dadole preferencia a las reglas que poseen massubstituciones positivas, y pocas negativas. Conforme se agregan nuevas literalesa la regla, el conjunto de substituciones cambia. Observen que si una literalagregada introduce una nueva variable, el conjunto de substituciones crecera.Observen tambien que si la nueva variable puede instanciarse con muchas con-stantes, entonces el numero de substituciones que se adapten a la nueva regla,puede ser mayor que aquellas de la regla original.

La funcion de evaluacion usada por FOIL para estimar la utilidad al agregaruna literal, se basa en el numero de subtituciones positivas y negativas cubiertas,antes y despues de anadir la literal. Consideren cualquier regla R, y una literalcandidato L, que debe ser agregada al cuerpo de R. Sea R′ la reglada creada alagregar L a R. El valor gananciaFoil(L,R) de agregar L a R se define como:

gananciaFoil(L,R) ≡ t

(log2

pR′

pR′ + nR′− log2

pR

pR + nR

)

donde p′R son las substituciones positivas al agregar L y n′R son las substitu-

ciones negativas al agregar L, etc.; y t es el total de ejemplos positivos cubiertospor la regla R que permanecen cubiertos al agregar la literal L. Cuando una nue-va variable se introduce al agregar L, entonces la substitucion original se asumecubierta, mientras alguna de las instanciaciones que la extienden, este presenteen la substitucion de R′.

La metrica gananciaFoil tiene una interpretacion directa en terminos dela teorıa de informacion. De acuerdo a esta teor’ia −log2

pR

pR+nRes el numero

mınimo de bits necesario para codificar la clasificacion de una instanciacionpositiva arbitraria entre las instanciaciones cubiertas por la regla R. Por lo tanto

12

gananciaFoil puede verse como la reduccion por L en el numero total de bitsnecesarios para codificar la clasificacion de todas las instanciaciones positivasde R.

3.2.3. Aprendiendo reglas recursivas

En la presentacion de FOIL hemos ignorado la posibilidad de que las literalesagregadas en el cuerpo de la regla, hagan referencia al predicado objetivo, estoes, el predicado que aparece en la cabeza de la regla. Sin embargo, si incluımosel predicato objetivo en la lista de predicados esto permitirıa la formacion dereglas recursivas. Por ejemplo, la definicion recursiva de ancestro:

Si Padre(x, y) Entonces Ancestro(x, y)Si Padre(x, z) ∧ Ancestro(z, y) Entonces Ancestro(x, y)

Por supuesto, que la segunda regla sea incluıda en el conjunto aprendido, de-pende de que la literal Ancestro(z, y) supere en desempeno a las demas literales.Un problema a considerar es como evitar que las reglas aprendidas produzcanun procedimiento de recursion infinita. Ver Cameron-Jones y Quinan [1] parauna discusion en detalle de aprendizaje de conceptos recursivos con FOIL.

4. Induccion como deduccion invertida

Un segundo enfoque a la programacion logica inductiva esta basado en lasimple observacion de que la induccion es solo el inverso de la deduccion. En gen-eral el aprendizaje automatico involucra la construccion de teorıas que explicanlos datos observados. Dados un conjunto de datos D y algun conocimiento par-cial apriori (background) B, el aprendizaje puede describirse como la generacionde una hipotesis h que junto con B, explica D. Asumiendo que los ejemplos deentrenamiento toman la forma 〈xi, f(xi)〉 el esta restriccion se define como:

∀〈xi, f(xi)〉 ∈ D.B ∧ h ∧ xi |= f(xi)

La expresion X |= Y se lee “Y sigue deductivamente de X”, o alternati-vamente X exige (ımplica) Y . Esta expresion describe la restriccion que debesatisfacer la hipotesis aprendida h: para todo ejemplo de entrenamiento xi, laclasificacion f(xi) es una consequencia deductiva de B, h y xi.

Como un ejemplo, consideren el caso donde el concepto objetivo a ser aprende-dido es “pares de gente (u, v) tal que el hijo2 de u es v”, representado porel predicado Hijo(u, v). Asuman que nos hes dado un ejemplo positivo delconcepto: Hijo(Bob, Sharon), donde el ejemplar es descrito por las literalesHombre(Bob), Mujer(Sharon), y Padre(Sharon,Bob)3. Supongan ademas quetenemos como conocimiento background la regla: Padre(u, v) ← Papa(u, v). En

2Entendido aquı como hijo o hija.3Padre considerado como ambos padres

13

este caso, dos de las hipotesis posibles que satisfacen la restriccion mencionadason:

h1 : Hijo(u, v) ← Padre(u, v)h2 : Hijo(u, v) ← Papa(u, v)

Observen que la literal objetivo Hijo(Bob, Sharon) es implicada logicamentepor h1 ∧ xi, sin necesidad de considerar el conocimiento apriori B. En el casode la hipotesis h2 la situacion es diferente,, la literal objetivo es implicada logi-camente por B ∧ h2 ∧ xi y no unicamente por h2 ∧ xi. Esto ejemplifica el papeldel conocimiento background para expandir el conjunto de hip’otesis acepta-bles para un conjunto de entrenamiento dado. Tambien ilustra como predicadosnuevos como Papa pueden incluirse en las hipotesis aprendidas, sin que estenpresentes en la descripcion original de los ejemplos de entrenamiento. Este pro-cedimiento de aumentar el conjunto de predicados con base en el conocimientobackground se cnoce como induccion constructiva.

Lo relevante de formular la restriccion sobre las hipotesis de esta forma esque define el problema de aprendizaje en terminos de la logica formal y la in-ferencia deductiva. En los casos de la logica proposicional y la logica de primerorden, existen algoritmos bien estudiados, para automatizar la deduccion. Resul-ta interesante que esos procedimientos puedan ser invertidos para automatizarel proceso de generalizacion inductiva.

El tema general de esta seccion es como construir operadores de implicacioninversos. Un operador de implicacion inverso O(B,D) toma un conjunto deentrenamiento D y una teorıa de background B, para producir una hipotesis h,que satisface la restriccion mencionada:

O(B,D) = h tal que ∀〈xi, f(xi)〉 ∈ D.B ∧ h ∧ xi |= f(xi)

Por supuesto que existen muchas hipotesis que satisfacen esta restriccion.Una heurıstica comun en ILP se basa en el principio de descripcion mınima(navaja de Occam). Diferentes atributos pueden usarse para formular hipotesiscompatibles con la restriccion:

Esta formulacion subsume la definicion comun de aprendizaje como labusqueda de un concepto general que cubre un conjunto de entrenamientodado. Este caso corresponde a B = ∅Al incorporar B, la formulacion permite una definicion mas rica de cuan-do una hipotesis se ajusta a los datos. Hast ahora, esto se determina apartir de un lenguaje que define exclusivamente los ejemplos de entre-namiento y la hipotesis, independientemente del dominio del problema.La consideracion de conocimiento background permite consierar lenguajesespecıficos a cierto dominio.

Al considerar B, es posible utilizar este conocimiento background paraguiar la busqueda de h, en lugar de explorar el espacio de todas lashipotesis sintacticamente correctas.

14

Al mismo tiempo, la investigacion en programacion logica inductiva siguien-do esta formulacion, ha encontrado diversas dificultades pr’acticas:

El requerimiento ∀〈xi, f(xi)〉 ∈ D.B∧h∧xi |= f(xi), no se ajusta natural-mente al caso de ruido en los ejemplos de entrenamiento. El problema esque esta expresion no permite la posibilidad de que pueda haber errores enla descripcion de los ejemplos observados. Los errores pueden introducirun conjunto de restricciones inconsistentes para h. Desafortunadamente, lamayorıa de los marcos de logica formal, pierden completamente su habili-dad para distinguir la verdad de lo falso, una vez que consideran asercionesambiguas.

El lenguaje de primer orden es tan expresivo, que el numero de hipotesisque satiosfacen la restriccion ∀〈xi, f(xi)〉 ∈ D.B ∧ h ∧ xi |= f(xi) es tangrande, que la busqueda en el espacio de hip’otesis es, en la mayorıa delos casos, intratable. Algunos trabajos recientes se orientan a trabajar conformas restringidas de primer orden, o conocimiento adicional de segundoorden, para tratar de mejorar la tratabilidad del problema.

A pesar de que intuitivamente, el conocimiento background B deberıaayudar a restringir y orientar la busqueda en el espacio de hipotesis, en lamayorıa de los sistemas ILP, la complejidad de este espacio se incrementaal considerar B.

5. Resolucion invertida

Un metodo general para automatizar la deduccion se conoce como reglade resolucion [7]. Esta regla es consistente y completa para la deduccion enprimer orden. Por lo tanto, resulta interesante investigar si es posible invertir laresolucion para construir un operador de implicacion inverso. CIGOL [4] utilizaprecisamente este operador.

Es mas sencillo introducir el principio de resolucion en su forma proposi-cional. Sea L una literal proposicional arbitraria. Sean P y R clausulas proposi-cionales arbitrarias. La regla de resoluci’on se define como:

P ∨ L¬L ∨ RP ∨ R

y puede leerse de la siguiente manera: Dadas las dos clausulas sobre la lınea,se concluye la clausula debajo de la lınea. Dadas las dos aserciones P ∨ L y¬L ∨ R, resulta obvio que ya sea L o ¬L debe ser falsa. Por lo tanto, ya sea Po R deben ser verdadera, por lo que P ∨ R.

La forma general del operador de resolucion proposicional se muestra enel cuadro 4. Dada dos clausulas C1 y C2, el operador de resolucion primeroidentifica una literal L que ocurra como literal positiva en alguna de estas dos

15

1. Dadas las clausulas iniciales C1 y C2, encontrar una literal L de la clausula C1,tal que ¬L ocurra en C2.

2. Formar el resolvente C incluyendo todas las literales de C1 y C2, excepto L y¬L:

C = C1 \ {L} ∪ C2 \ {¬L}

Cuadro 4: Operador de resolucion proposicional

clausulas, y como negativa en la otra. Esto lo lleva a concluir de acuerdo a laregla de resolucion.

Es facil invertir el operador de resolucion, para obtener un operador deimplicacion inversa O(C,C1) que lleve a cabo inferencias inductivas. En general,este operador inverso debe derivar una de las clausulas iniciales, C2, dados elresolvente C y la otra clausula inicial C1. Consideren un ejemplo donde nos esdado el resolvente C = A∨B y la clausula inicial C1 = B ∨D. ¿Como podemosderivar una clausula C2 tal que C1 ∧ C2 |= C ? Primero observen que por ladefinicion del operador de resolucion, cualquier literal que ocurra en C, pero noen C1, debe estar presente en C2. En nuestro ejemplo esto indica que C@ debeincluir A. Segundo, la literal que ocurre en C1, pero no en C, debe ser la literaleliminada por la regla de resolucion, y por lo tanto su negacion debe ocurriren C2. En nuestro ejemplo esto indica que C2 debe incluir la literal ¬D. Por lotanto C2 = A ∨ ¬D. Aplicando el operador de resolucion a C1 y C2 produceefectivamente el resolvente C.

Observen que hay una segunda solucion para C2 en el ejemplo anterior.En partıcular, C2, puede ser tambien la clausul mas especıfica A ∨ ¬D ∨ B. Ladiferencia con la solucion anterior es que ahora hemos incluido en C2, una literalque ocurre en C1. Lo important aquı es observar que el operador de resolucioninverida es no determinista – En general, habra muchas clausulas C1 y C2 queproduzcan el resolvente C. Una heurıstica para elegir entre las alternativas espreferir clausulas cortas, sobre las largas. Si incorporamos este sesgo por lasclausulas cortas, el operador de resolucion invertido se define como en el cuadro5.

Es posible disenar un algoritmo de aprendizaje de reglas basado en el oper-ador de resolucion invertido. El algoritmo puede producir hipotesis que, juntocon el conocimiento background, impliquen los ejemplos observados. Una es-tretegia es usar la cobertura secuencial para iterativamente ir aprendiendo unaclausula de Horn a la vez. En cada iteracion el algoritmo selecciona un ejem-plo de entrenamiento que aun no sea cubierto por las reglas aprenididas hastaese momento. El operador invertido es aplicado entonces para generar hipotesiscandidato hi tal que (B∧hi∧xi |= f(xi), donde el background B incluye las re-glas aprendidas hasta ese momento. Observen que esta es una busqueda guiada

16

1. Dadas las clausulas iniciales C1 y C, encontrar una literal L que ocurre en laclausula C1, pero no en la clausula C.

2. Formar una segunda clausla C2 incluyendo las siguientes literales:

C = (C \ (C1 \ {L})) ∪ {¬L}

Cuadro 5: Operador de resolucion invertido proposicional

por los ejemplos. Por supuesto, una estretegia para elegir hipotesis alternativases elegir aquella que tenga mayor precision de clasificacion sobre los ejemplosde entrenamiento. CIGOL utiliza este diseno, aunque por supuesto, opera enrepresentaciones de primer orden.

5.1. Resolucion en primer orden

Recuerden que una substitucion es un mapeo de un conjunto de variablesa un conjunto de terminos, por ejemplo Θ = {x/Bob, y/z}. Decimos que lasubstitucion Θ unifica las clausulas L1 y L2, si y solo si L1Θ = L2Θ. Por ejemplo,si L1 = Padre(x, y) y L2 = Padre(Bill, z), entonces Θ = {x/Bill, z/y} es ununificador de L1 y L2 porque L1Θ = L2Θ = Padre(Bill, y). De esta forma, enla resolucion en primer orden buscamos una literal L1 de la clausula C1 y unaliteral L2 de la clausula C2, tal que un unificador entre L1 y ¬L2 pueda serencontrado. La regla de resolucion calcula el resolvente entonces de acuerdo a:

C = (C1 \ {L1}Θ ∪ (C2 \ {L2}Θ

5.2. Resolucion invertida en primer orden

La regla de resolucion para primer orden puede ser manipulada algebraıca-mente para definir la resolucion invertida. Primero observen que el unificadorΘ puede ser unicamente factorizado en Θ1 y Θ2, donde Θ = Θ1Θ2, donde Θ1

contiene las substituciones que involucran las variables de la clausula C1 y Θ2

contiene las substituciones que involucran variables de la clausula C2. Esto esposible porque C1 y C2 comenzaran siempre con nombres de variables distintos.Usando esta factorizacion reescribimos la regla de resolucion como:

C = (C1 \ {L1}Θ1 ∪ (C2 \ {L2}Θ2

Ahora, si restringimos la resolucion invertida a inferir unicamente clausulasC2 que no contengan literales que aparezcan en C1, la regla anterior puedeexpresarse como:

C \ (C1 \ {L1}Θ1 = (C2 \ {L2}Θ2

17

Utilizando el hecho de que L2 = ¬L1Θ1Θ−12 , resolviendo para C2 obtenemos

la regla de resolucion invertida:

C2 = (C \ (C1 \ {L1})Θ1)Θ−12 ∪ {¬L1Θ1Θ−1

2 }

Recuerden que este operador es no determinista. La figura 1 ilustra la apli-cacion de este operador.

Figura 1: Ejemplo de resolucion invertida

Referencias

[1] Cameron-Jones, R. and Quinlan, J. R.: Avoiding pitfalls when learning recur-sive theories. Proceedings of the Eight International Workshop on MachineLearning, 389 – 393, Morgan Kaufmann, San Mateo, CA., USA, 1993

[2] Clark, P., and Nibblett, R.: The CN2 induction algorithm. Machine Learn-ing, 3, 261–284, 1989

[3] Michalkski, R.S., Mozetic, L., Hong, J., and Lavrac, H.: The multi-purposeincremental learning system AQ15 and its testing application to three med-ical domains. In: Proceedings of the Fifth National Conference on AI, p.1041–1045. Morgan Kaufmann 1986

[4] Muggleton, S., and Buntine, W.: Machine invention of first-order predicatesby inverting resolution. In: Proceedings of the Fifth International MachineLearning Conference, 339–352, Morgan Kaufmann, Ann Arbor, MC., USA,1988

[5] Muggleton, S., de Raed, L.: Inductive Logic Programming: Theory andMethods. Journal of Logic Programming, 19:629–679 (1994)

18

[6] Quinlan, J.R.: Learning logical definitions from relaions. Machine Learning,5, 239–266, 1990

[7] Robinson, J.A.: A machine-oriented logic based on the resolution principle.Journal of the ACM, 12(1):23–41, 1965

19