Você está na página 1de 19

Aprendizaje Automtico: a Programacin Lgica Inductiva.

o o
Dr. Alejandro Guerra Hernndez a Universidad Veracruzana Facultad de F sica e Inteligencia Articial Maestr en Inteligencia Articial a Sebastin Camacho No. 5, Xalapa, Ver., Mxico 91000 a e aguerra@uv.mx www.uv.mx/aguerra Abril 22, 2004

1.

Introduccin o

Una de las representaciones de hiptesis ms expresivas y fciles de como a a prender son los conjuntos de reglas Si Entonces. Esta sesin explora diversos o algoritmos para el aprendizaje de estos conjuntos de reglas. Un caso especial importante, involucra el aprendizaje de conjuntos de reglas que incluyen variables. Estas reglas se conocen como clusulas de Horn en primer orden. Debido a que a las clusulas de Horn pueden verse como programas escritos en un lenguaje de a programacin lgica como Prolog, su aprendizaje se conoce como Programacin o o o Lgica Inductiva (ILP). o En muchos casos es util aprender una funcin objetivo representada como o un conjunto de reglas si-entonces, que en de manera conjunta denen la funcin. o Como hemos visto, es posible construir un conjunto de reglas aprendiendo un a rbol de decisin (clase 07) y convirtindolo en el cojunto de reglas equivalente, o e una por cada rama de la ra del rbol a alguna de sus hojas. Un segundo mtoz a e do que hemos visto es el de codicar cada regla como una cadena de bits y usar un algoritmo gentico (clase08) para explorar el espacio de hiptesis posibles. e o En esta sesin estudiaremos algoritmos que aprenden estos conjuntos de reglas o directamente y que dieren de los mtodos mencionados en dos aspectos fune damentales. Primero, estn diseados para trabajar con reglas que contienen a n variables. Esto es signicativo porque las reglas en primer orden son considerablemente ms expresivas que las reglas proposicionales vistas hasta ahora. a Segundo, los algoritmos que discutiremos son algoritmos de cobertura secuencial que aprenden una regla a la vez, para incrementalmente ir construyendo el conjunto de reglas.

Como un ejemplo de reglas de primer orden, consideren el siguiente par de reglas que en conjunto denen el concepto ancestro. El predicado P adre(x, y) indica que y es la madre o el padre de x, y el predicado Ancestro(x, y) indica que y es un ancestro de x en un nmero arbitario de generaciones: u Si P adre(x, y) Si P adre(x, z) Ancestro(z, y) Entonces Ancestro(x, y) Entonces Ancestro(x, y)

Observen que estas dos reglas denen de manera concisa una funcin recuro siva que ser dif de representar usando arboles de decisin o cualquier otro a cil o mtodo de representacin proposicional. De hecho, formuladas de una manee o ra poco diferente, el par de reglas anterior forman un programa Prolog vlido a para computar la relacin ancestro. Un algoritmo de propsito general capaz o o de aprender estos conjuntos de reglas es por lo tanto, un algoritmo para inferir automticamente programas Prolog a partir de ejemplos. a Comenzaremos por considerar algoritmos que aprenden conjuntos de reglas proposicionales, esto es, reglas sin variables. Los algoritmos que buscan en el espacio de hiptesis un conjunto de reglas disyuntivas son ms faciles de entender o a en esta conguracin. o

2.

Algoritmos de cobertura secuencial

Estos algoritmos para aprender conjuntos de reglas siguen la estrategia de aprender una regla, remover los ejemplos que la regla cubre del conjunto de entrenamiento, e iterar en este procedimiento. Imaginen que tenemos una subrutina aprendeUnaRegla que acepta como entrada, un conjunto de ejemplos de entrenamiento positivos y negativos; y produce como salida, una sola regla que cubre muchos ejemplos positivos y pocos negativos. Necesitamos que esta regla tenga alta precisin, aunque carezca de amplia cobertura. Eso es, la regla no o necesariamente hace predicciones sobre todos los ejemplos, pero, para aquellos que la hace, la prediccin es correcta. o Dada esta sub-rutina para aprender una sola regla, una aproximacin obvia o para aprender un conjunto de reglas es aplicar la sub-rutina a todos los ejemplos de entrenamiento, remover todos los ejemplos positivos cubiertos por la regla aprendida, y aplicar nuevamente la sub-rutina en los ejemplos restantes para producir una nueva regla. Este procedimiento se puede repetir hasta producir un conjunto de reglas que cubran la fraccin de ejemplos positivos deseada. o El conjunto resultante puede ordenarse de acuerdo a su precisin, para aplicar o las reglas ms precisas primero, al clasicar nuevos ejemplares. Un algoritmo a protot pico se muestra en el cuadro 1. Este algoritmo de cobertura secuencial representa uno de los enfoques ms a usados para aprender conjuntos de reglas disyuntivas. El enfoque reduce el problema original en una sencuencia de problemas ms simples, cada uno de los cuales a requiere que una sola regla conjuntiva sea aprendida. Puesto que la bsqueda u

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 desempe o(regla, ejs) > umbral do n reglas reglas regla; ejs ejs \ { ejs bien clasiados }; regla aprendeUnaRegla(objetivo, atribs, ejs); enddo reglas ordenarPorDesempeo(reglas); n return reglas; endfun

Cuadro 1: Algoritmo coberturaSecuencial llevada a cabo es ego sta, no podemos garantizar que el enfoque encontrar el a conjunto de reglas ms pequeo, o bien, el de mejor cobertura sobre el conjunto a n de ejemplos. Como debemos dise ar aprendeUnaRegla para cubrir los requermientos n del algoritmo de cobertura secuencial? A continuacin consideraremos el caso o proposicional y ms tarde el de las clusulas de Horn. a a

2.1.

Bsqueda por barrido de lo general a lo espec u co

Una manera de disear aprendeUnaRegla consiste en organizar la bsqueda n u en el espacio de hiptesis a la manera de ID3, pero siguiendo unicamente la rama o ms promisoria del arbol en cada paso. Esto es, la bsqueda comienza con la a u hiptesis ms general, ninguna restriccin atributo-valor ha sido impuesta, y en o a o cada paso aade una restriccin en forma de prueba atributo-valor, que maxin o miza la ganancia de informacin sobre el conjunto de entrenamiento. Como ID3, o este enfoque ego sta va aadiendo restricciones en los atributos hasta alcanzar n un nivel aceptable de desempeo. A diferencia de ID3, slo se seguir la rama n o a ms promisoria, es decir, aquella que mximiza la ganancia de informacin. Por a a o lo tanto, esta estrategia puede verse como una bsqueda ego en profundidad u sta sin retorno (backtracking). Como hemos visto, este tipo de bsqueda tiene el u riesto de realizar decisiones sub-ptimas en cada iteracin. Para reducir este o o riesgo, podemos extender en algoritmo para realizar una bsqueda por barrido, u

esto es, un bsqueda en donde el algoritmo mantiene una lista de los k mejores u candidatos en cada iteracin, en lugar de un solo candidato. Los descendientes o (especializaciones) de estos k candidatos son calculados y el conjunto que resulta se vuelve a reducir a los k mejores candidatos. Este algoritmo, usado por el programa CN2 [2], se muestra en el cuadro 2. Algunos comentarios sobre aprendeUnaRegla son necesarios. Observen que cada hiptesis considerada en el ciclo principal del algoritmo, es una conjuncin o o de restricciones sobre pares atributo-valor. Cada una de estas hiptesis conjuno tivas corresponde a un conjunto candidato de precondiciones para la regla que est siendo aprendida, y es evaluada por la entropia de los ejemplos que cubre. a La bsqueda considera incrementalmente hiptesis candidato ms espec u o a cas, hasta que alcanza una hiptesis mximamente espec o a ca que contiene todos los atributos disponibles. La regla que es producida por el algoritmo es aquella cuyo desempe~o es el mayor, no necesariamente la hiptesis nal generada en la n o busqueda. La post condicin para la regla producida por el algoritmo, es elegida o en el ultimo paso del mismo, una vez que la precondicin de la regla, representa o da en mejorHip, ha sido determinada. El algoritmo contruye la post condicin o de la regla para predecir el valor del atributo objetivo, que es el ms comn entre a u aquellos ejemplos cubiertos por la precondicin de la regla. Finalmente, observen o que a pesar del uso de la bsqueda por barrido para reducir el riesgo u mplicito en la estrategia ego sta del algoritmo, es posible que ste pueda producir an e u conjuntos de reglas sub optimas. Como sea, el algoritmo coberturaSecuencial ser capaz de aprender un conjunto de reglas disjuntas que cubran los ejemplos a de entrenamiento, al llamar repetidamente a aprendeUnaRegla en el resto de los ejemplos no cubiertos.

2.2.

Variaciones

Diversas variantes del enfoque presentado han sido estudiadas. Por ejemplo, en algunos casos ser deseable tener un programa que aprenda unicamente rea glas que cubre ejemplos positivos, e incluir un valor por default que asigna una clasicacion negativa a los ejemplares no cubiertos por ninguna regla. Este enfoque es deseable por ejemplo, si queremos aprender un concepto como mujer embarazada con probabilidad de tener mellizos. En este caso, la fraccin de o ejemplos positivos en toda la poblacin, es pequeo, de forma que el conjunto o n de reglas que denen el concepto ser ms compacto e inteligible para los usuara a ios si ste indentica solo clusulas de ejemplos positivos, con la clasicacion e a negativa por default, para todos los dems ejemplos. Este enfoque tambin cora e responde con la estrategia de negacin como falla usada por Prolog, en la o cual una expresin que no puede demostrarse verdadera, se asume como falo sa. Para poder aprender estas reglas que predicen un slo valor objetivo, el o algoritmo aprendeUnaRegla puede ser modicado para aceptar un argumento adicional que especique el valor del atributo objetivo que nos interesa. La bsqueda por barrido se lleva a cabo como se mecion, cambiando unicamente u o la funcin desempe~o que evalua las hiptesis. Observen que el uso de entropia o n o en esta extensin yao es apropiado, porque asigna la calicacin mxima a las o o a 4

fun aprendeUnaRegla(objetivo, atribs, ejs, k) input: objetivo: concepto cible; atribs: atributos; ejs: ejemplos de entrenamiento; k : nmero de candidatos a considerar; u static: mejorHip: mejor hiptesis; o candidatos: hiptesis candidato; o restrics: conjunto de restricciones (atr,val); output: regla: la regla aprendida; mejorHip ; candidatos { mejorHip }; while not(vac o(candidatos)) do ;;; Candidatos mas espec cos restrics todasRestricciones(atribs,vals); nuevosCandidatos foreach h candidatos do foreach c restrics do especializar(h,c) enddo enddo nuevosCandidatos ltraDuplEIncons(nuevosCandidatos); ;;; Actualizar mejorHip foreach h nuevosCandidatos do if desempe o(h, ejs, objetivo) > n desempe o(mejorHip, ejs, objetivo) n then mejorHip h endif ;;; Actualizar candidatos candidatos mejores(k, nuevosCandidatos, desempe o); n endwhile returnSi mejorHip Entonces msFrecuente(Val(mejorHip,ejs)); a endfun fundesempe o(h, ejs, objetivo) n hEjs match(ejs, h); returnentropia(hEjs, objetivo); endfun

Cuadro 2: Algoritmos aprendeUnaRegla y desempeo n

hiptesis que cubren exclusivamente ejemplos negativos, as como aquellas que o cubren slo ejemplos positivos. Una medida que evalue la fraccin de ejemplos o o positivos cubierta por la hiptesis, ser ms apropiada en este caso. o a a Otras variaciones pueden encontrarse en el algoritmo AQ [3], un predecesor de CN2. En primer lugar, este algoritmo busca reglas que cubren un atributo objetivo con un valor espec co, aprendiendo un conjunto de reglas a la vez para cada valor del atributo. La bsqueda de una sola regla tambin es computada de u e otra forma, guiada por un slo ejemplo positivo. En part o cular, el algoritmo slo o considera aquellos atributos sastechos por el ejemplo positivo. Cada vez que el algoritmo aprende una nueva regla, un nuevo ejemplo positivo es seleccionado de entre aquellos que no estn an cubiertos por el conjunto de reglas, para a u guiar la bsqueda de una nueva regla disjunta. u La medida de desempeo usada en aprendeUnaRegla puede variar. Algunas n funciones de evaluacin comunes incluyen: o Frecuencia relativa. Esta evaluacin es usada en AQ. Sea n el nmero de o u u ejemplos que cumplen con la precondicin de la regla y nc el nmero de o ejemplos correctamente clasicados. La frecuencia relativa estimada del desempeo de la regla es: n nc n Estimado-m de precisin. Este estimador de la precisin est sesgado hac o o a a la precisin esperada de la regla. Se le preere cuando los datos son escasos o y la regla ser evaluada con base en pocos ejemplos. Como antes, n y nc a denotas los ejemplos que cumplen la precondicin de la regla, y aquellos o que estn bien clasicados, respectivamente. Sea p la probabilida apriori de a que un ejemplo seleccionado aleatoriamente del conjunto de entrenamiento, tendr el valor del atributo objetivo predicho por la regla (si hay 100 a ejemplos en el conjunto de entrenamiento, y de ellos 12 tienen el valor del atributo predicho por la regla, entonces p = 0,12). Finalmente, sea m el peso, o el nmero equivalente de ejemplos para ponderar la probabilidad u apriori p. El estimador-m de la precisin de la regla es: o nc + mp n+m Observen que si m = 0, el estimador-m se convierte en la frecuencia relativa. En la medida que m crece, un mayor nmero de ejemplos es necesario u para contrarestar le precisin asumida apriori p. Esta evaluacin es usada o o en CN2 y el clasicador Bayes naive. Entrop Esta es la medida usada por la funcin desempe~o, en el algoritmo a. o n aqu presentado. Sea S el conjunto de ejemplos que cumplen con la pre condicin de la regla. La entropia mide la uniformidad de los valores de la o

funcin objetivo, en este conjunto de ejemplos. Como tomamos el negativo o de la entrop las mejores reglas tendrn valores ms altos. a, a a
c

entrop ia(S) =
i=1

pi log2 pi

donde c es el nmero de valores diferentes que la funcin objetivo puede u o o tomar; y pi es la proporcin de ejemplos con respecto a S para los cuales la funcin objetivo toma el valor i-simo. Esta evaluacin junto con un o e o test de signicancia estad stica es usado por el algoritmo CN2 [2].

3.

Aprendindo reglas de primer orden e

Ahora consideraremos el problema de aprender reglas que contienen variables, en part cular, el aprendizaje de teor de clusulas de Horn. Estas reglas as a son ms expresivas que su contraparte proposicional. Este tipo de aprendizaje a se conoce como Programacin Lgica Inductiva (ILP) [5], porque un conjunto o o de clusulas de Horn puede constituir un programa vlido en el lenguange de a a programacin lgica Prolog. o o

3.1.

Terminolog a

Antes de continuar, introduciremos la terminolog bsica de la lgica formal. a a o Toda expresin est compuesta de constantes, variables, s o a mbolos de predicado y s mbolos de funciones. La diferencia entre predicados y funciones es que los primeros toman exclusivamente valores booleanos de falso y verdadero. Para representar constantes usaremos cadenas que inicien con una mayscula, y para u las variables usaremos cadenas en minsculas. Para representar predicados usu aremos cadenas que empiezan con may scula, y para las funciones cadenas en u minsculas. u Con estos s mbolos, las expresiones se construyen como sigue: Un trmino e es una constante, o una variable, o una funcin aplicada a un trmino (obo e serven la recursin en la denicin). Por ejemplo x, Juan, mayor(Juan, x), o o padre(Juan), son todos trminos. Una literal es cualquier predicado o su nee gacin, aplicada a un trmino, por ejemplo, Soltera(x), V iudo(padre(Juan)), o e Soltero(Juan), son literales. Si una literal incluye negacin se le llama literal o negativa, en cualquier otro caso es una literal positiva. Una clusula es cualquier disyuncin de literales, donde se asume que todas a o las variables estn cuanticadas universalmente. Una clusula de Horn es una a a clusula que contiene a lo ms una literal positiva, de forma que: a a H L1 . . . Ln donde H es la literal positiva, y Li son las literales negativas. Debido a las equivalencias (B A) (B A) y (A B) (A B), la clusula de a Horn puede escribirse alternativamente como: 7

H (L1 . . . Ln ) que es equivalente a la regla: Si L1 . . . Ln Entonces H Cualquiera que sea la notacin adoptada, las precondiciones L1 . . . Ln de o la clusula de Horn, son llamadas el cuerpo de la regla, o bien, su antecedente. a La literal H que forma la postcondicin de la clusula de Horn, se llama cabeza, o a o alternativamente consecuente.

3.2.

FOIL: aprendiendo reglas de primer orden

El programa FOIL [6] emplea una estretegia muy similar a la cobertura secuencial para aprender reglas de primer orden. Formalmente, FOIL aprende conjuntos de reglas de primer orden, donde cada regla es similar a una clusula a de Horn, con dos excepciones: i) las reglas aprendidas por FOIL son ms rea strictivas que las clusulas de Horn en general, al no permitir la inclusin de a o funciones (esto reduce el espacio de bsqueda); y ii) Las reglas de FOIL son u ms expresivas que las clusulas de Horn al permitir literales negadas en el a a cuerpo de la regla. Esta conguracin es lo sucientemente poderosa como para o aprender coneptos como la denicin recursiva de QuickSort, o bien discriminar o movimiento legales de los ilegales en ajedrez. El algoritmo FOIL se muestra en el cuadro 3. Observen que el ciclo principal corresponde a una variacin del algoritmo coberturaSecuencial, esto o es, aprende una regla a la vez removiendo los ejemplos cubiertos por la ultima regla aprendida, antes de cont nuar. El ciclo interno es a su vez una variante del algoritmo aprendeUnaRegla, modicado para trabajar con reglas en primer orden. Observen tambin las pequeas diferencias de FOIL con los algoritmos e n mencionados, en part cular, el hecho de que FOIL busque solamente reglas que predicen cuando la literal objetivo es verdadera. Los algoritmos introducidos previamente, buscan reglas que predicen cuando el objetivo es verdadero y cuando es falso. FOIL no ejecuta una bsqueda por barrido, utiliza un ascenso de u gradiente simple1 . La bsqueda de FOIL puede entenderse mejor si se considera su estructura u jerarqu El ciclo principal del algoritmo agrega una nueva regla a la hiptesis ca. o disjunta reglas. El efecto de esto es generalizar la hiptesis actual, es decir, ino crementar el nmero de ejemplares clasicados como positivos, agregando una u nueva disyuncin. Visto a este n o vel, el algoritmo lleva a cabo una bsqueda de u lo espec co a lo general, comenzando con la hipotesis ms espec a ca posible (la disyuncin vac y terminando con una hiptesis lo sucientemente general o a) o para cubrir todos los ejemplos de entrenamiento positivos. El ciclo interno del algoritmo lleva a cabo otra bsqueda en un ms detallada para encontrar la u a
1 Puede

verse tambin como un b squeda por barrido con amplitud k=1 e u

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 nueva nuevaRegla (objetivo t); nuevaReglaNeg neg; while nuevaReglaNeg do ;;; Agregar literal para especializar litsCand nuevasLiterales(nuevaRegla,predicados); mejorLit maxllitsCand foilGain(L,nuevaRegla); reglaNueva (objetivo mejorLit); nuevaReglaNeg sat(nuevaReglaNeg, nuevaRegla); enddo reglas reglas nuevaRegla; pos cubre(pos,reglas); enddo returnreglas; endfun

Cuadro 3: Algoritmo FOIL

denicin exacta de cada regla aprendida, donde el espacio de bsqueda de este o u ciclo est formado por conjunciones de literales. En este espacio, FOIL lleva a a cabo una bsqueda de lo general a lo espec u co (ascenso de gradiente), comenzando con la hiptesis ms general (cojuncin vac para entonces especializar o a o a), la hiptesis, agregando una literal en cada iteracin, de forma que los ejemplos o o de entrenamiento negatvos sean rechazados. La diferencia principal entre FOIL y los algoritmos de la seccin anterior se o deben a que el algoritmo expresa sus hiptesis en un lenguaje de primer orden. o Las diferencias incluyen: 1. En su bsqueda de lo general a lo espec u co, FOIL emplea etapas de diferente n de detalle, para generar los candidatos a especializacin de una vel o regla. Esto se debe a la necesidad de introducir reglas en la precondicin o de la regla. FOIL emplea una medida de desempeo diferente a la entropia usada en n aprendeUnaRegla (cuadro 2). Esta diferencia es producto de la necesidad de distinguir las diferentes instanciaciones, en las variables de una regla; y por el hecho de que el algoritmo busca slo reglas que cubren ejemplos o positivos. Estas diferencias son discutidas en detalle en el resto de la seccin. o 3.2.1. Generacin de candidatos a especializacin en FOIL o o

2.

Para generar candidatos a especializacin de la regla aprendida hasta el o momento, FOIL genera diversas literales nuevas, cada una de las cuales pueden ser agregadas a las precondiciones de la regla actual. Por ejemplo, consideren que la regla aprendida es: P (x1 , x2 , . . . xn ) L1 , . . . Ln donde L1 , . . . , Ln son las literales formando la precondicin de la regla; y o o P (x1 , x2 , . . . xn ) es la literal que forma la poscondicin de la regla. FOIL calcula los candidatos a generalizacin consierando nuevas literales Ln+1 que satisfacen o uno de los siguiente criterios: Q(v1 , . . . vr ) donde Q predicados es un s mbolo de predicado; y vi son nuevas variables, o variables que ya estn presentes en la regla. Al menos a una de las vi en la literal creada, debe existir ya como variable en la regla actual. Igual(xj , xk ) donde xj y xk son varibles que ya estn presentes en la regla. a La negacin de alguna de las dos formas de literal antes mencionadas. o Como ejemplo, consideren reglas de aprendizaje para predecir la literal objetivo N ieta(x, y), en done otros predicados para describir los ejemplos son P adre 10

y M ujer. La bsqueda de lo general a lo espec u co de FOIL comienza con la regla ms general: a N ieta(x, y) que establece que N ieta(x, y) es cierto para cualquier x y cualquier y. Para especializar esta regla inicial, las siguientes literales son generadas como candidatos a agregarse a la precondicin de la regla: Igual(x, y), M ujer(x), M ujer(y), o P adre(x, y), P adre(y, x), P adre(x, z), P adre(z, x), P adre(y, z), P adre(z, y), as como la negacin de cada una de estas literales. Observen que z es una o variable nueva aqu mientras que x e y son variables existentes. Ahora consid, eren que de manera ego sta, FOIL selecciona a P adre(y, z) como la literal ms a promisioria, produciendo as la regla ms espec a ca: N ieta(x, y) P adre(y, z) Al generar candidatos para generalizar nuevamente la regla, FOIL considerar ahora todas las literales mencionadas en el paso anterior, ms las siguientes: a a M ujer(z), Igual(z, x), Igual(z, y), P adre(z, w), P adre(w, z), as como sus ne gaciones. Estas literales son consideras por la introduccin de z en la etapa o anterior, lo cual lleva a FOIL a considerar ahora la nueva variable w. Si FOIL selecciona en este momento la literal P adre(z, x) y posteriormente M ujer(y), eso resultar en la siguiente regla, que cubre slo ejemplos positivos a o y, por lo tanto, termina con la bsqueda de especializaciones: u N ieta(x, y) P adre(y, z) P adre(z, x) M ujer(y) En este punto, FOIL eliminar todos los ejemplos positivos cubiertos por a esta regla del conjunto de entrenamiento. Si an quedan ejemplos positivos por u cubrir, entonces comenzar otra bsqueda de lo general a lo espec a u co de una nueva regla. 3.2.2. Guiando la b squeda de FOIL u

Para seleccionar la literal ms promisoria de entre los candidatos generados a en cada etapa del algoritmo, FOIL considera el desempeo de clasicacin de n o la regla sobre el conjunto de entrenamiento. Al hacer esto, el algoritmo consiera todas las instanciaciones posibles de cada variable en la regla. Por ejemplo, consideren nuevamente la bsqueda de un conjunto de reglas para predecir la u literal objetivo N ieta(x, y). Como ejemplo de entramiento, asumimis el siguiente conjunto de hechos de forma general P (x, y) que se leen P es el x de y: Nieta(Victor,Sharon) Mujer(Sharon) Padre(Sharon,Bob) Padre(Bob,Victor) Padre(Tom,Bob)

Aqu asumiremos el supuesto del mundo cerrado (CWA, Close World As sumption) de que cualquier literal que involucre los predicados N ieta, P adre 11

y M ujer, as como las constantes V ictor, Sharon, Bob, y T om, que no se en cuentre en el listado anterior, puede ser consierada como falsa. Podemos tambin e armar expl citamente, por ejemplo, que N ieta(T om, Bob), etc. Para seleccionar la mejor especializacin de la regla actual, FOIL considera o cada forma distinta en la que las variables de la regla, pueden ser instanciadas por las constantes en los ejemplos de entrenamiento. Por ejemplo, en la etapa inicial, cuando la regla es: N ieta(x, y) las variables x e y no estn restringidas por la precondicin de la regla, y a o pueden ser instanciadas por cualquier combinacin de las constantes V ictor, o Sharon, Bob, y T om. Usaremos la notacin {x/Bob, y/Sharon} para expresar o una instanciacin de variables part o cular. Al mapeo de cada variable a una constante se le conoce como substitucin. Dadas las cuatro constantes, hay 16 substio tuciones posibles para esta regla inicial. La substitucin {x/V ictor, y/Sharon} o corresponde a la instanciacin por un ejemplo positivo, porque la instanciacin o o incluye el hecho N ieta(V ictor, Sharon). Las otras 15 instanciaciones permitidas por la regla, constituyen evidencia negativa para la regla (ningn hecho en el u conjunto de entrenamiento corresponde a alguna de ellas). En cada etapa, la regla es evaluada con respecto a estos conjuntos de substituciones positivas y negativas, ddole preferencia a las reglas que poseen ms a a substituciones positivas, y pocas negativas. Conforme se agregan nuevas literales a la regla, el conjunto de substituciones cambia. Observen que si una literal agregada introduce una nueva variable, el conjunto de substituciones crecera. Observen tambin que si la nueva variable puede instanciarse con muchas cone stantes, entonces el nmero de substituciones que se adapten a la nueva regla, u puede ser mayor que aquellas de la regla original. La funcin de evaluacin usada por FOIL para estimar la utilidad al agregar o o una literal, se basa en el nmero de subtituciones positivas y negativas cubiertas, u antes y despus de aadir la literal. Consideren cualquier regla R, y una literal e n candidato L, que debe ser agregada al cuerpo de R. Sea R la reglada creada al agregar L a R. El valor gananciaF oil(L, R) de agregar L a R se dene como: gananciaF oil(L, R) t log2 pR pR log2 pR + nR pR + nR

donde pR son las substituciones positivas al agregar L y nR son las substituciones negativas al agregar L, etc.; y t es el total de ejemplos positivos cubiertos por la regla R que permanecen cubiertos al agregar la literal L. Cuando una nueva variable se introduce al agregar L, entonces la substitucin original se asume o cubierta, mientras alguna de las instanciaciones que la extienden, est presente e en la substitucin de R . o La mtrica gananciaFoil tiene una interpretacin directa en trminos de e o e u la teor de informacin. De acuerdo a esta teoria log2 pRpR R es el nmero a o +n m nimo de bits necesario para codicar la clasicacin de una instanciacin o o positiva arbitraria entre las instanciaciones cubiertas por la regla R. Por lo tanto 12

gananciaFoil puede verse como la reduccin por L en el nmero total de bits o u necesarios para codicar la clasicacin de todas las instanciaciones positivas o de R. 3.2.3. Aprendiendo reglas recursivas

En la presentacin de FOIL hemos ignorado la posibilidad de que las literales o agregadas en el cuerpo de la regla, hagan referencia al predicado objetivo, esto es, el predicado que aparece en la cabeza de la regla. Sin embargo, si inclu mos el predicato objetivo en la lista de predicados esto permitir la formacin de a o reglas recursivas. Por ejemplo, la denicin recursiva de ancestro: o Si P adre(x, y) Si P adre(x, z) Ancestro(z, y) Entonces Ancestro(x, y) Entonces Ancestro(x, y)

Por supuesto, que la segunda regla sea inclu en el conjunto aprendido, deda pende de que la literal Ancestro(z, y) supere en desempeo a las dems literales. n a Un problema a considerar es cmo evitar que las reglas aprendidas produzcan o un procedimiento de recursin innita. Ver Cameron-Jones y Quinan [1] para o una discusin en detalle de aprendizaje de conceptos recursivos con FOIL. o

4.

Induccin como deduccin invertida o o

Un segundo enfoque a la programacin lgica inductiva est basado en la o o a simple observacin de que la induccin es slo el inverso de la deduccin. En geno o o o eral el aprendizaje automtico involucra la construccin de teor que explican a o as los datos observados. Dados un conjunto de datos D y algn conocimiento paru cial apriori (background) B, el aprendizaje puede describirse como la generacin o de una hiptesis h que junto con B, explica D. Asumiendo que los ejemplos de o o entrenamiento toman la forma xi , f (xi ) el esta restriccin se dene como: xi , f (xi ) D.B h xi |= f (xi ) La expresin X |= Y se lee Y sigue deductivamente de X, o alternatio vamente X exige ( mplica) Y . Esta expresin describe la restriccin que debe o o satisfacer la hiptesis aprendida h: para todo ejemplo de entrenamiento xi , la o clasicacin f (xi ) es una consequencia deductiva de B, h y xi . o Como un ejemplo, consideren el caso donde el concepto objetivo a ser aprendedido es pares de gente (u, v) tal que el hijo2 de u es v, representado por el predicado Hijo(u, v). Asuman que nos hes dado un ejemplo positivo del concepto: Hijo(Bob, Sharon), donde el ejemplar es descrito por las literales a Hombre(Bob), M ujer(Sharon), y P adre(Sharon, Bob)3 . Supongan adems que tenemos como conocimiento background la regla: P adre(u, v) P apa(u, v). En
2 Entendido 3 Padre

aqu como hijo o hija. considerado como ambos padres

13

este caso, dos de las hiptesis posibles que satisfacen la restriccin mencionada o o son: h1 h2 : : Hijo(u, v) P adre(u, v) Hijo(u, v) P apa(u, v)

Observen que la literal objetivo Hijo(Bob, Sharon) es implicada lgicamente o por h1 xi , sin necesidad de considerar el conocimiento apriori B. En el caso de la hiptesis h2 la situacin es diferente,, la literal objetivo es implicada lgio o o camente por B h2 xi y no unicamente por h2 xi . Esto ejemplica el papel del conocimiento background para expandir el conjunto de hipotesis aceptables para un conjunto de entrenamiento dado. Tambin ilustra como predicados e nuevos como P apa pueden incluirse en las hiptesis aprendidas, sin que estn o e presentes en la descripcin original de los ejemplos de entrenamiento. Este proo cedimiento de aumentar el conjunto de predicados con base en el conocimiento background se cnoce como induccin constructiva. o Lo relevante de formular la restriccin sobre las hiptesis de esta forma es o o que dene el problema de aprendizaje en trminos de la lgica formal y la ine o ferencia deductiva. En los casos de la lgica proposicional y la lgica de primer o o orden, existen algoritmos bien estudiados, para automatizar la deduccin. Resulo ta interesante que esos procedimientos puedan ser invertidos para automatizar el proceso de generalizacin inductiva. o El tema general de esta seccin es cmo construir operadores de implicacin o o o inversos. Un operador de implicacin inverso O(B, D) toma un conjunto de o entrenamiento D y una teor de background B, para producir una hiptesis h, a o que satisface la restriccin mencionada: o O(B, D) = h tal que xi , f (xi ) D.B h xi |= f (xi ) Por supuesto que existen muchas hiptesis que satisfacen esta restriccin. o o Una heur stica comn en ILP se basa en el principio de descripcin m u o nima (navaja de Occam). Diferentes atributos pueden usarse para formular hiptesis o compatibles con la restriccin: o Esta formulacin subsume la denicin comn de aprendizaje como la o o u bsqueda de un concepto general que cubre un conjunto de entrenamiento u dado. Este caso corresponde a B = Al incorporar B, la formulacin permite una denicin ms rica de cuano o a do una hiptesis se ajusta a los datos. Hast ahora, esto se determina a o partir de un lenguaje que dene exclusivamente los ejemplos de entrenamiento y la hiptesis, independientemente del dominio del problema. o La consideracin de conocimiento background permite consierar lenguajes o espec cos a cierto dominio. Al considerar B, es posible utilizar este conocimiento background para guiar la bsqueda de h, en lugar de explorar el espacio de todas las u hiptesis sintcticamente correctas. o a 14

Al mismo tiempo, la investigacin en programacin lgica inductiva siguieno o o do esta formulacin, ha encontrado diversas dicultades practicas: o El requerimiento xi , f (xi ) D.B hxi |= f (xi ), no se ajusta naturalmente al caso de ruido en los ejemplos de entrenamiento. El problema es que esta expresin no permite la posibilidad de que pueda haber errores en o la descripcin de los ejemplos observados. Los errores pueden introducir o un conjunto de restricciones inconsistentes para h. Desafortunadamente, la mayor de los marcos de lgica formal, pierden completamente su habilia o dad para distinguir la verdad de lo falso, una vez que consideran aserciones ambiguas. El lenguaje de primer orden es tan expresivo, que el nmero de hiptesis u o que satiosfacen la restriccin xi , f (xi ) D.B h xi |= f (xi ) es tan o grande, que la bsqueda en el espacio de hipotesis es, en la mayor de u a los casos, intratable. Algunos trabajos recientes se orientan a trabajar con formas restringidas de primer orden, o conocimiento adicional de segundo orden, para tratar de mejorar la tratabilidad del problema. A pesar de que intuitivamente, el conocimiento background B deber a ayudar a restringir y orientar la bsqueda en el espacio de hiptesis, en la u o mayor de los sistemas ILP, la complejidad de este espacio se incrementa a al considerar B.

5.

Resolucin invertida o

Un mtodo general para automatizar la deduccin se conoce como regla e o de resolucin [7]. Esta regla es consistente y completa para la deduccin en o o primer orden. Por lo tanto, resulta interesante investigar si es posible invertir la resolucin para construir un operador de implicacin inverso. CIGOL [4] utiliza o o precisamente este operador. Es ms sencillo introducir el principio de resolucin en su forma proposia o cional. Sea L una literal proposicional arbitraria. Sean P y R clusulas proposia cionales arbitrarias. La regla de resolucion se dene como: P L P L R R

y puede leerse de la siguiente manera: Dadas las dos clusulas sobre la l a nea, se concluye la clusula debajo de la l a 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 P o R deben ser verdadera, por lo que P R. La forma general del operador de resolucin proposicional se muestra en o o el cuadro 4. Dada dos clusulas C1 y C2 , el operador de resolucin primero a identica una literal L que ocurra como literal positiva en alguna de estas dos

15

1. 2.

Dadas las clusulas iniciales C1 y C2 , encontrar una literal L de la clusula C1 , a a tal que L ocurra en C2 . 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 resolucin proposicional o clusulas, y como negativa en la otra. Esto lo lleva a concluir de acuerdo a la a regla de resolucin. o Es fcil invertir el operador de resolucin, para obtener un operador de a o implicacin inversa O(C, C1 ) que lleve a cabo inferencias inductivas. En general, o este operador inverso debe derivar una de las clusulas iniciales, C2 , dados el a resolvente C y la otra clusula inicial C1 . Consideren un ejemplo donde nos es a o dado el resolvente C = A B y la clusula inicial C1 = B D. Cmo podemos a derivar una clusula C2 tal que C1 C2 |= C ? Primero observen que por la a denicin del operador de resolucin, cualquier literal que ocurra en C, pero no o o en C1 , debe estar presente en C2 . En nuestro ejemplo esto indica que C@ debe incluir A. Segundo, la literal que ocurre en C1 , pero no en C, debe ser la literal eliminada por la regla de resolucin, y por lo tanto su negacin debe ocurrir o o en C2 . En nuestro ejemplo esto indica que C2 debe incluir la literal D. Por lo o tanto C2 = A D. Aplicando el operador de resolucin a C1 y C2 produce efectivamente el resolvente C. Observen que hay una segunda solucin para C2 en el ejemplo anterior. o e a a ca A D B. La En part cular, C2 , puede ser tambin la clusul ms espec diferencia con la solucin anterior es que ahora hemos incluido en C2 , una literal o o que ocurre en C1 . Lo important aqu es observar que el operador de resolucin inverida es no determinista En general, habr muchas clusulas C1 y C2 que a a produzcan el resolvente C. Una heur stica para elegir entre las alternativas es preferir clusulas cortas, sobre las largas. Si incorporamos este sesgo por las a clusulas cortas, el operador de resolucin invertido se dene como en el cuadro a o 5. Es posible disear un algoritmo de aprendizaje de reglas basado en el opern ador de resolucin invertido. El algoritmo puede producir hiptesis que, junto o o con el conocimiento background, impliquen los ejemplos observados. Una estretegia es usar la cobertura secuencial para iterativamente ir aprendiendo una clusula de Horn a la vez. En cada iteracin el algoritmo selecciona un ejema o plo de entrenamiento que an no sea cubierto por las reglas aprenididas hasta u ese momento. El operador invertido es aplicado entonces para generar hiptesis o candidato hi tal que (B hi xi |= f (xi ), donde el background B incluye las reglas aprendidas hasta ese momento. Observen que esta es una bsqueda guiada u 16

1. 2.

Dadas las clusulas iniciales C1 y C, encontrar una literal L que ocurre en la a a clusula C1 , pero no en la clusula C. a Formar una segunda clusla C2 incluyendo las siguientes literales: a C = (C \ (C1 \ {L})) {L}

Cuadro 5: Operador de resolucin invertido proposicional o por los ejemplos. Por supuesto, una estretegia para elegir hiptesis alternativas o es elegir aquella que tenga mayor precisin de clasicacin sobre los ejemplos o o de entrenamiento. CIGOL utiliza este diseo, aunque por supuesto, opera en n representaciones de primer orden.

5.1.

Resolucin en primer orden o

Recuerden que una substitucin es un mapeo de un conjunto de variables o a un conjunto de trminos, por ejemplo = {x/Bob, y/z}. Decimos que la e o substitucin unica las clusulas L1 y L2 , si y slo si L1 = L2 . Por ejemplo, o a si L1 = P adre(x, y) y L2 = P adre(Bill, z), entonces = {x/Bill, z/y} es un unicador de L1 y L2 porque L1 = L2 = P adre(Bill, y). De esta forma, en a la resolucin en primer orden buscamos una literal L1 de la clusula C1 y una o a literal L2 de la clusula C2 , tal que un unicador entre L1 y L2 pueda ser encontrado. La regla de resolucin calcula el resolvente entonces de acuerdo a: o C = (C1 \ {L1 } (C2 \ {L2 }

5.2.

Resolucin invertida en primer orden o

La regla de resolucin para primer orden puede ser manipulada algebra o camente para denir la resolucin invertida. Primero observen que el unicador o puede ser unicamente factorizado en 1 y 2 , donde = 1 2, donde 1 contiene las substituciones que involucran las variables de la clusula C1 y 2 a contiene las substituciones que involucran variables de la clusula C2 . Esto es a posible porque C1 y C2 comenzaran siempre con nombres de variables distintos. Usando esta factorizacin reescribimos la regla de resolucin como: o o C = (C1 \ {L1 }1 (C2 \ {L2 }2 Ahora, si restringimos la resolucin invertida a inferir unicamente clusulas o a C2 que no contengan literales que aparezcan en C1 , la regla anterior puede expresarse como: C \ (C1 \ {L1 }1 = (C2 \ {L2 }2 17

Utilizando el hecho de que L2 = L1 1 1 , resolviendo para C2 obtenemos 2 la regla de resolucin invertida: o C2 = (C \ (C1 \ {L1 })1 )1 {L1 1 1 } 2 2 Recuerden que este operador es no determinista. La gura 1 ilustra la aplicacin de este operador. o

Figura 1: Ejemplo de resolucin invertida o

Referencias
[1] Cameron-Jones, R. and Quinlan, J. R.: Avoiding pitfalls when learning recursive theories. Proceedings of the Eight International Workshop on Machine Learning, 389 393, Morgan Kaufmann, San Mateo, CA., USA, 1993 [2] Clark, P., and Nibblett, R.: The CN2 induction algorithm. Machine Learning, 3, 261284, 1989 [3] Michalkski, R.S., Mozetic, L., Hong, J., and Lavrac, H.: The multi-purpose incremental learning system AQ15 and its testing application to three medical domains. In: Proceedings of the Fifth National Conference on AI, p. 10411045. Morgan Kaufmann 1986 [4] Muggleton, S., and Buntine, W.: Machine invention of rst-order predicates by inverting resolution. In: Proceedings of the Fifth International Machine Learning Conference, 339352, Morgan Kaufmann, Ann Arbor, MC., USA, 1988 [5] Muggleton, S., de Raed, L.: Inductive Logic Programming: Theory and Methods. Journal of Logic Programming, 19:629679 (1994) 18

[6] Quinlan, J.R.: Learning logical denitions from relaions. Machine Learning, 5, 239266, 1990 [7] Robinson, J.A.: A machine-oriented logic based on the resolution principle. Journal of the ACM, 12(1):2341, 1965

19

Você também pode gostar