Aprendizaje Autom´tico: a Programaci´n L´gica Inductiva. o o
Dr. Alejandro Guerra Hern´ndez a Universidad Veracruzana Facultad de F´ ısica e Inteligencia Artificial Maestr´ en Inteligencia Artificial ıa Sebasti´n Camacho No. 5, Xalapa, Ver., M´xico 91000 a e aguerra@uv.mx www.uv.mx/aguerra Abril 22, 2004
1.
Introducci´n o
Una de las representaciones de hip´tesis m´s expresivas y f´ciles de como a a prender son los conjuntos de reglas Si – Entonces. Esta sesi´n 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 cl´usulas de Horn en primer orden. Debido a que a las cl´usulas de Horn pueden verse como programas escritos en un lenguaje de a programaci´n l´gica como Prolog, su aprendizaje se conoce como Programaci´n o o o L´gica Inductiva (ILP). o En muchos casos es util aprender una funci´n objetivo representada como ´ o un conjunto de reglas si-entonces, que en de manera conjunta definen la funci´n. o Como hemos visto, es posible construir un conjunto de reglas aprendiendo un a ´rbol de decisi´n (clase 07) y convirti´ndolo en el cojunto de reglas equivalente, o e una por cada rama de la ra´ del ´rbol a alguna de sus hojas. Un segundo m´toız a e do que hemos visto es el de codificar cada regla como una cadena de bits y usar un algoritmo gen´tico (clase08) para explorar el espacio de hip´tesis posibles. e o En esta sesi´n estudiaremos algoritmos que aprenden estos conjuntos de reglas o directamente y que difieren de los m´todos mencionados en dos aspectos fune damentales. Primero, est´n dise˜ados para trabajar con reglas que contienen a n variables. Esto es significativo porque las reglas en primer orden son considerablemente m´s 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.
1
Como un ejemplo de reglas de primer orden, consideren el siguiente par de reglas que en conjunto definen 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 n´mero 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 definen de manera concisa una funci´n recuro siva que ser´ dif´ de representar usando arboles de decisi´n o cualquier otro ıa ıcil o m´todo de representaci´n proposicional. De hecho, formuladas de una manee o ra poco diferente, el par de reglas anterior forman un programa Prolog v´lido a para computar la relaci´n ancestro. Un algoritmo de prop´sito general capaz o o de aprender estos conjuntos de reglas es por lo tanto, un algoritmo para inferir autom´ticamente 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 hip´tesis un conjunto de reglas disyuntivas son m´s faciles de entender o a en esta configuraci´n. 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 precisi´n, 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 predicci´n es correcta. o Dada esta sub-rutina para aprender una sola regla, una aproximaci´n 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 fracci´n de ejemplos positivos deseada. o El conjunto resultante puede ordenarse de acuerdo a su precisi´n, para aplicar o las reglas m´s precisas primero, al clasificar nuevos ejemplares. Un algoritmo a protot´ ıpico se muestra en el cuadro 1. Este algoritmo de cobertura secuencial representa uno de los enfoques m´s a usados para aprender conjuntos de reglas disyuntivas. El enfoque reduce el problema original en una sencuencia de problemas m´s simples, cada uno de los cuales a requiere que una sola regla conjuntiva sea aprendida. Puesto que la b´squeda u
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 desempe˜ o(regla, ejs) > umbral do n reglas ← reglas ∪ regla; ejs ← ejs \ { ejs bien clasifiados }; regla ← aprendeUnaRegla(objetivo, atribs, ejs); enddo reglas ← ordenarPorDesempe˜o(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 m´s peque˜o, 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 continuaci´n consideraremos el caso o proposicional y m´s tarde el de las cl´usulas de Horn. a a
2.1.
B´squeda por barrido de lo general a lo espec´ u ıfico
Una manera de dise˜ar aprendeUnaRegla consiste en organizar la b´squeda n u en el espacio de hip´tesis a la manera de ID3, pero siguiendo unicamente la rama o ´ m´s promisoria del arbol en cada paso. Esto es, la b´squeda comienza con la a ´ u hip´tesis m´s general, ninguna restricci´n atributo-valor ha sido impuesta, y en o a o cada paso a˜ade una restricci´n en forma de prueba atributo-valor, que maxin o miza la ganancia de informaci´n sobre el conjunto de entrenamiento. Como ID3, o este enfoque ego´ ısta va a˜adiendo restricciones en los atributos hasta alcanzar n un nivel aceptable de desempe˜o. A diferencia de ID3, s´lo se seguir´ la rama n o a m´s promisoria, es decir, aquella que m´ximiza la ganancia de informaci´n. Por a a o lo tanto, esta estrategia puede verse como una b´squeda ego´ en profundidad u ısta sin retorno (backtracking). Como hemos visto, este tipo de b´squeda tiene el u riesto de realizar decisiones sub-´ptimas en cada iteraci´n. Para reducir este o o riesgo, podemos extender en algoritmo para realizar una b´squeda por barrido, u
3
esto es, un b´squeda en donde el algoritmo mantiene una lista de los k mejores u candidatos en cada iteraci´n, 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 hip´tesis considerada en el ciclo principal del algoritmo, es una conjunci´n o o de restricciones sobre pares atributo-valor. Cada una de estas hip´tesis 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 b´squeda considera incrementalmente hip´tesis candidato m´s espec´ u o a ıficas, hasta que alcanza una hip´tesis m´ximamente espec´ o a ıfica 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 hip´tesis final generada en la n o b’usqueda. La post condici´n para la regla producida por el algoritmo, es elegida o en el ultimo paso del mismo, una vez que la precondici´n de la regla, representa´ o da en mejorHip, ha sido determinada. El algoritmo contruye la post condici´n o de la regla para predecir el valor del atributo objetivo, que es el m´s com´n entre a u aquellos ejemplos cubiertos por la precondici´n de la regla. Finalmente, observen o que a pesar del uso de la b´squeda por barrido para reducir el riesgo ´ u ımplicito en la estrategia ego´ ısta del algoritmo, es posible que ´ste pueda producir a´n 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 reıa ´ glas que cubre ejemplos positivos, e incluir un valor por default que asigna una clasificaci’on 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 fracci´n de o ejemplos positivos en toda la poblaci´n, es peque˜o, de forma que el conjunto o n de reglas que definen el concepto ser´ m´s compacto e inteligible para los usuara a ios si ´ste indentifica solo cl´usulas de ejemplos positivos, con la clasificaci’on e a negativa por default, para todos los dem´s ejemplos. Este enfoque tambi´n cora e responde con la estrategia de “negaci´n como falla” usada por Prolog, en la o cual una expresi´n que no puede demostrarse verdadera, se asume como falo sa. Para poder aprender estas reglas que predicen un s´lo valor objetivo, el o algoritmo aprendeUnaRegla puede ser modificado para aceptar un argumento adicional que especifique el valor del atributo objetivo que nos interesa. La b´squeda por barrido se lleva a cabo como se mecion´, cambiando unicamente u o ´ la funci´n desempe~o que evalua las hip´tesis. Observen que el uso de entropia o n o en esta extensi´n yao es apropiado, porque asigna la calificaci´n m´xima a las o o a 4
fun aprendeUnaRegla(objetivo, atribs, ejs, k) input: objetivo: concepto cible; atribs: atributos; ejs: ejemplos de entrenamiento; k : n´mero de candidatos a considerar; u static: mejorHip: mejor hip´tesis; o candidatos: hip´tesis 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´ ıficos restrics ← todasRestricciones(atribs,vals); nuevosCandidatos ← foreach h ∈ candidatos do foreach c ∈ restrics do especializar(h,c) enddo enddo nuevosCandidatos ← filtraDuplEIncons(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 m´sFrecuente(Val(mejorHip,ejs)); a endfun fundesempe˜ o(h, ejs, objetivo) n hEjs ← match(ejs, h); returnentropia(hEjs, objetivo); endfun
Cuadro 2: Algoritmos aprendeUnaRegla y desempe˜o n
5
hip´tesis que cubren exclusivamente ejemplos negativos, as´ como aquellas que o ı cubren s´lo ejemplos positivos. Una medida que evalue la fracci´n de ejemplos o o positivos cubierta por la hip´tesis, ser´ m´s 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´ ıfico, aprendiendo un conjunto de reglas a la vez para cada valor del atributo. La b´squeda de una sola regla tambi´n es computada de u e otra forma, guiada por un s´lo ejemplo positivo. En part´ o ıcular, el algoritmo s´lo o considera aquellos atributos safistechos por el ejemplo positivo. Cada vez que el algoritmo aprende una nueva regla, un nuevo ejemplo positivo es seleccionado de entre aquellos que no est´n a´n cubiertos por el conjunto de reglas, para a u guiar la b´squeda de una nueva regla disjunta. u La medida de desempe˜o usada en aprendeUnaRegla puede variar. Algunas n funciones de evaluaci´n comunes incluyen: o Frecuencia relativa. Esta evaluaci´n es usada en AQ. Sea n el n´mero de o u u ejemplos que cumplen con la precondici´n de la regla y nc el n´mero de o ejemplos correctamente clasificados. La frecuencia relativa estimada del desempe˜o de la regla es: n nc n Estimado-m de precisi´n. Este estimador de la precisi´n est´ sesgado hac´ o o a ıa la precisi´n esperada de la regla. Se le prefiere 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 precondici´n de la regla, y aquellos o que est´n bien clasificados, 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 n´mero equivalente de ejemplos para ponderar la probabilidad u apriori p. El estimador-m de la precisi´n 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 n´mero de ejemplos es necesario u para contrarestar le precisi´n asumida apriori p. Esta evaluaci´n es usada o o en CN2 y el clasificador Bayes naive. Entrop´ Esta es la medida usada por la funci´n desempe~o, en el algoritmo ıa. o n aqu´ presentado. Sea S el conjunto de ejemplos que cumplen con la preı condici´n de la regla. La entropia mide la uniformidad de los valores de la o
6
funci´n objetivo, en este conjunto de ejemplos. Como tomamos el negativo o de la entrop´ las mejores reglas tendr´n valores m´s altos. ıa, a a
c
−entrop´ ia(S) =
i=1
pi log2 pi
donde c es el n´mero de valores diferentes que la funci´n objetivo puede u o o tomar; y pi es la proporci´n de ejemplos con respecto a S para los cuales la funci´n objetivo toma el valor i-´simo. Esta evaluaci´n junto con un o e o test de significancia estad´ ıstica es usado por el algoritmo CN2 [2].
3.
Aprendi´ndo reglas de primer orden e
Ahora consideraremos el problema de aprender reglas que contienen variables, en part´ ıcular, el aprendizaje de teor´ de cl´usulas de Horn. Estas reglas ıas a son m´s expresivas que su contraparte proposicional. Este tipo de aprendizaje a se conoce como Programaci´n L´gica Inductiva (ILP) [5], porque un conjunto o o de cl´usulas de Horn puede constituir un programa v´lido en el lenguange de a a programaci´n l´gica Prolog. o o
3.1.
Terminolog´ ıa
Antes de continuar, introduciremos la terminolog´ b´sica de la l´gica formal. ıa a o Toda expresi´n 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 may´scula, y para u las variables usaremos cadenas en min´sculas. Para representar predicados usu aremos cadenas que empiezan con may´ scula, y para las funciones cadenas en u min´sculas. u Con estos s´ ımbolos, las expresiones se construyen como sigue: Un t´rmino e es una constante, o una variable, o una funci´n aplicada a un t´rmino (obo e serven la recursi´n en la definici´n). Por ejemplo x, Juan, mayor(Juan, x), o o padre(Juan), son todos t´rminos. Una literal es cualquier predicado o su nee gaci´n, aplicada a un t´rmino, por ejemplo, Soltera(x), V iudo(padre(Juan)), o e ¬Soltero(Juan), son literales. Si una literal incluye negaci´n se le llama literal o negativa, en cualquier otro caso es una literal positiva. Una cl´usula es cualquier disyunci´n de literales, donde se asume que todas a o las variables est´n cuantificadas universalmente. Una cl´usula de Horn es una a a cl´usula que contiene a lo m´s 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 cl´usula 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 notaci´n adoptada, las precondiciones L1 ∧ . . . ∧ Ln de o la cl´usula de Horn, son llamadas el cuerpo de la regla, o bien, su antecedente. a La literal H que forma la postcondici´n de la cl´usula 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 cl´usula a de Horn, con dos excepciones: i) las reglas aprendidas por FOIL son m´s rea strictivas que las cl´usulas de Horn en general, al no permitir la inclusi´n de a o funciones (esto reduce el espacio de b´squeda); y ii) Las reglas de FOIL son u m´s expresivas que las cl´usulas de Horn al permitir literales negadas en el a a cuerpo de la regla. Esta configuraci´n es lo suficientemente poderosa como para o aprender coneptos como la definici´n 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 variaci´n 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, modificado para trabajar con reglas en primer orden. Observen tambi´n las peque˜as 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 b´squeda por barrido, utiliza un ascenso de u gradiente simple1 . La b´squeda de FOIL puede entenderse mejor si se considera su estructura u jerarqu´ El ciclo principal del algoritmo agrega una nueva regla a la hip´tesis ıca. o disjunta reglas. El efecto de esto es generalizar la hip´tesis actual, es decir, ino crementar el n´mero de ejemplares clasificados como positivos, agregando una u nueva disyunci´n. Visto a este n´ o ıvel, el algoritmo lleva a cabo una b´squeda de u lo espec´ ıfico a lo general, comenzando con la hip’otesis m´s espec´ a ıfica posible (la disyunci´n vac´ y terminando con una hip´tesis lo suficientemente general o ıa) o para cubrir todos los ejemplos de entrenamiento positivos. El ciclo interno del algoritmo lleva a cabo otra b´squeda en un m´s detallada para encontrar la u a
1 Puede
verse tambi´n como un b´ squeda por barrido con amplitud k=1 e u
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 nueva nuevaRegla ← (objetivo ← t); nuevaReglaNeg ← neg; while nuevaReglaNeg do ;;; Agregar literal para especializar litsCand ← nuevasLiterales(nuevaRegla,predicados); mejorLit ← maxl∈litsCand 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
9
definici´n exacta de cada regla aprendida, donde el espacio de b´squeda de este o u ciclo est´ formado por conjunciones de literales. En este espacio, FOIL lleva a a cabo una b´squeda de lo general a lo espec´ u ıfico (ascenso de gradiente), comenzando con la hip´tesis m´s general (cojunci´n vac´ para entonces especializar o a o ıa), la hip´tesis, agregando una literal en cada iteraci´n, de forma que los ejemplos o o de entrenamiento negatvos sean rechazados. La diferencia principal entre FOIL y los algoritmos de la secci´n anterior se o deben a que el algoritmo expresa sus hip´tesis en un lenguaje de primer orden. o Las diferencias incluyen: 1. En su b´squeda de lo general a lo espec´ u ıfico, FOIL emplea etapas de diferente n´ de detalle, para generar los candidatos a especializaci´n de una ıvel o regla. Esto se debe a la necesidad de introducir reglas en la precondici´n o de la regla. FOIL emplea una medida de desempe˜o 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 s´lo reglas que cubren ejemplos o positivos. Estas diferencias son discutidas en detalle en el resto de la secci´n. o 3.2.1. Generaci´n de candidatos a especializaci´n en FOIL o o
2.
Para generar candidatos a especializaci´n 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 precondici´n de la regla; y o o P (x1 , x2 , . . . xn ) es la literal que forma la poscondici´n de la regla. FOIL calcula los candidatos a generalizaci´n 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 est´n 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 est´n presentes en la regla. a La negaci´n 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 b´squeda de lo general a lo espec´ u ıfico de FOIL comienza con la regla m´s 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 precondici´n 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 negaci´n 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 m´s a promisioria, produciendo as´ la regla m´s espec´ ı a ıfica: 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, m´s 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 introducci´n 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 s´lo ejemplos positivos ıa o y, por lo tanto, termina con la b´squeda 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 a´n quedan ejemplos positivos por u cubrir, entonces comenzar´ otra b´squeda de lo general a lo espec´ ıa u ıfico de una nueva regla. 3.2.2. Guiando la b´ squeda de FOIL u
Para seleccionar la literal m´s promisoria de entre los candidatos generados a en cada etapa del algoritmo, FOIL considera el desempe˜o de clasificaci´n 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 b´squeda 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 tambi´n e afirmar expl´ ıcitamente, por ejemplo, que ¬N ieta(T om, Bob), etc. Para seleccionar la mejor especializaci´n 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 est´n restringidas por la precondici´n de la regla, y a o pueden ser instanciadas por cualquier combinaci´n de las constantes V ictor, o Sharon, Bob, y T om. Usaremos la notaci´n {x/Bob, y/Sharon} para expresar o una instanciaci´n de variables part´ o ıcular. Al mapeo de cada variable a una constante se le conoce como substituci´n. Dadas las cuatro constantes, hay 16 substio tuciones posibles para esta regla inicial. La substituci´n {x/V ictor, y/Sharon} o corresponde a la instanciaci´n por un ejemplo positivo, porque la instanciaci´n o o incluye el hecho N ieta(V ictor, Sharon). Las otras 15 instanciaciones permitidas por la regla, constituyen evidencia negativa para la regla (ning´n 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, d´dole preferencia a las reglas que poseen m´s 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 tambi´n que si la nueva variable puede instanciarse con muchas cone stantes, entonces el n´mero de substituciones que se adapten a la nueva regla, u puede ser mayor que aquellas de la regla original. La funci´n de evaluaci´n usada por FOIL para estimar la utilidad al agregar o o una literal, se basa en el n´mero de subtituciones positivas y negativas cubiertas, u antes y despu´s de a˜adir 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 define 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 substituci´n original se asume o cubierta, mientras alguna de las instanciaciones que la extienden, est´ presente e en la substituci´n de R . o La m´trica gananciaFoil tiene una interpretaci´n directa en t´rminos de e o e u la teor´ de informaci´n. De acuerdo a esta teor’ia −log2 pRpR R es el n´mero ıa o +n m´ ınimo de bits necesario para codificar la clasificaci´n de una instanciaci´n o o positiva arbitraria entre las instanciaciones cubiertas por la regla R. Por lo tanto 12
gananciaFoil puede verse como la reducci´n por L en el n´mero total de bits o u necesarios para codificar la clasificaci´n de todas las instanciaciones positivas o de R. 3.2.3. Aprendiendo reglas recursivas
En la presentaci´n 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 formaci´n de ıa o reglas recursivas. Por ejemplo, la definici´n 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, deıda pende de que la literal Ancestro(z, y) supere en desempe˜o a las dem´s literales. n a Un problema a considerar es c´mo evitar que las reglas aprendidas produzcan o un procedimiento de recursi´n infinita. Ver Cameron-Jones y Quinan [1] para o una discusi´n en detalle de aprendizaje de conceptos recursivos con FOIL. o
4.
Inducci´n como deducci´n invertida o o
Un segundo enfoque a la programaci´n l´gica inductiva est´ basado en la o o a simple observaci´n de que la inducci´n es s´lo el inverso de la deducci´n. En geno o o o eral el aprendizaje autom´tico involucra la construcci´n de teor´ que explican a o ıas los datos observados. Dados un conjunto de datos D y alg´n conocimiento paru cial apriori (background) B, el aprendizaje puede describirse como la generaci´n o de una hip´tesis h que junto con B, explica D. Asumiendo que los ejemplos de o o entrenamiento toman la forma xi , f (xi ) el esta restricci´n se define como: ∀ xi , f (xi ) ∈ D.B ∧ h ∧ xi |= f (xi ) La expresi´n X |= Y se lee “Y sigue deductivamente de X”, o alternatio vamente X exige (´ ımplica) Y . Esta expresi´n describe la restricci´n que debe o o satisfacer la hip´tesis aprendida h: para todo ejemplo de entrenamiento xi , la o clasificaci´n 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 adem´s 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 hip´tesis posibles que satisfacen la restricci´n 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 l´gicamente o por h1 ∧ xi , sin necesidad de considerar el conocimiento apriori B. En el caso de la hip´tesis h2 la situaci´n es diferente,, la literal objetivo es implicada l´gio o o ´ camente por B ∧ h2 ∧ xi y no unicamente por h2 ∧ xi . Esto ejemplifica el papel del conocimiento background para expandir el conjunto de hip’otesis aceptables para un conjunto de entrenamiento dado. Tambi´n ilustra como predicados e nuevos como P apa pueden incluirse en las hip´tesis aprendidas, sin que est´n o e presentes en la descripci´n original de los ejemplos de entrenamiento. Este proo cedimiento de aumentar el conjunto de predicados con base en el conocimiento background se cnoce como inducci´n constructiva. o Lo relevante de formular la restricci´n sobre las hip´tesis de esta forma es o o que define el problema de aprendizaje en t´rminos de la l´gica formal y la ine o ferencia deductiva. En los casos de la l´gica proposicional y la l´gica de primer o o orden, existen algoritmos bien estudiados, para automatizar la deducci´n. Resulo ta interesante que esos procedimientos puedan ser invertidos para automatizar el proceso de generalizaci´n inductiva. o El tema general de esta secci´n es c´mo construir operadores de implicaci´n o o o inversos. Un operador de implicaci´n inverso O(B, D) toma un conjunto de o entrenamiento D y una teor´ de background B, para producir una hip´tesis h, ıa o que satisface la restricci´n mencionada: o O(B, D) = h tal que ∀ xi , f (xi ) ∈ D.B ∧ h ∧ xi |= f (xi ) Por supuesto que existen muchas hip´tesis que satisfacen esta restricci´n. o o Una heur´ ıstica com´n en ILP se basa en el principio de descripci´n m´ u o ınima (navaja de Occam). Diferentes atributos pueden usarse para formular hip´tesis o compatibles con la restricci´n: o Esta formulaci´n subsume la definici´n com´n de aprendizaje como la o o u b´squeda de un concepto general que cubre un conjunto de entrenamiento u dado. Este caso corresponde a B = ∅ Al incorporar B, la formulaci´n permite una definici´n m´s rica de cuano o a do una hip´tesis se ajusta a los datos. Hast ahora, esto se determina a o partir de un lenguaje que define exclusivamente los ejemplos de entrenamiento y la hip´tesis, independientemente del dominio del problema. o La consideraci´n de conocimiento background permite consierar lenguajes o espec´ ıficos a cierto dominio. Al considerar B, es posible utilizar este conocimiento background para guiar la b´squeda de h, en lugar de explorar el espacio de todas las u hip´tesis sint´cticamente correctas. o a 14
Al mismo tiempo, la investigaci´n en programaci´n l´gica inductiva siguieno o o do esta formulaci´n, ha encontrado diversas dificultades pr’acticas: o El requerimiento ∀ xi , f (xi ) ∈ D.B ∧h∧xi |= f (xi ), no se ajusta naturalmente al caso de ruido en los ejemplos de entrenamiento. El problema es que esta expresi´n no permite la posibilidad de que pueda haber errores en o la descripci´n de los ejemplos observados. Los errores pueden introducir o un conjunto de restricciones inconsistentes para h. Desafortunadamente, la mayor´ de los marcos de l´gica formal, pierden completamente su habiliıa 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 n´mero de hip´tesis u o que satiosfacen la restricci´n ∀ xi , f (xi ) ∈ D.B ∧ h ∧ xi |= f (xi ) es tan o grande, que la b´squeda en el espacio de hip’otesis 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 b´squeda en el espacio de hip´tesis, en la u o mayor´ de los sistemas ILP, la complejidad de este espacio se incrementa ıa al considerar B.
5.
Resoluci´n invertida o
Un m´todo general para automatizar la deducci´n se conoce como regla e o de resoluci´n [7]. Esta regla es consistente y completa para la deducci´n en o o primer orden. Por lo tanto, resulta interesante investigar si es posible invertir la resoluci´n para construir un operador de implicaci´n inverso. CIGOL [4] utiliza o o precisamente este operador. Es m´s sencillo introducir el principio de resoluci´n en su forma proposia o cional. Sea L una literal proposicional arbitraria. Sean P y R cl´usulas proposia cionales arbitrarias. La regla de resoluci’on se define como: P ¬L P ∨ ∨ ∨ L R R
y puede leerse de la siguiente manera: Dadas las dos cl´usulas sobre la l´ a ınea, se concluye la cl´usula 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 resoluci´n proposicional se muestra en o o el cuadro 4. Dada dos cl´usulas C1 y C2 , el operador de resoluci´n primero a identifica una literal L que ocurra como literal positiva en alguna de estas dos
15
1. 2.
Dadas las cl´usulas iniciales C1 y C2 , encontrar una literal L de la cl´usula 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 resoluci´n proposicional o cl´usulas, y como negativa en la otra. Esto lo lleva a concluir de acuerdo a la a regla de resoluci´n. o Es f´cil invertir el operador de resoluci´n, para obtener un operador de a o implicaci´n inversa O(C, C1 ) que lleve a cabo inferencias inductivas. En general, o este operador inverso debe derivar una de las cl´usulas iniciales, C2 , dados el a resolvente C y la otra cl´usula inicial C1 . Consideren un ejemplo donde nos es a o dado el resolvente C = A ∨ B y la cl´usula inicial C1 = B ∨ D. ¿C´mo podemos a derivar una cl´usula C2 tal que C1 ∧ C2 |= C ? Primero observen que por la a definici´n del operador de resoluci´n, 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 resoluci´n, y por lo tanto su negaci´n 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 resoluci´n a C1 y C2 produce efectivamente el resolvente C. Observen que hay una segunda soluci´n para C2 en el ejemplo anterior. o e a a ıfica A ∨ ¬D ∨ B. La En part´ ıcular, C2 , puede ser tambi´n la cl´usul m´s espec´ diferencia con la soluci´n 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 resoluci´n inverida es no determinista – En general, habr´ muchas cl´usulas C1 y C2 que a a produzcan el resolvente C. Una heur´ ıstica para elegir entre las alternativas es preferir cl´usulas cortas, sobre las largas. Si incorporamos este sesgo por las a cl´usulas cortas, el operador de resoluci´n invertido se define como en el cuadro a o 5. Es posible dise˜ar un algoritmo de aprendizaje de reglas basado en el opern ador de resoluci´n invertido. El algoritmo puede producir hip´tesis que, junto o o con el conocimiento background, impliquen los ejemplos observados. Una estretegia es usar la cobertura secuencial para iterativamente ir aprendiendo una cl´usula de Horn a la vez. En cada iteraci´n el algoritmo selecciona un ejema o plo de entrenamiento que a´n no sea cubierto por las reglas aprenididas hasta u ese momento. El operador invertido es aplicado entonces para generar hip´tesis 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 b´squeda guiada u 16
1. 2.
Dadas las cl´usulas iniciales C1 y C, encontrar una literal L que ocurre en la a a cl´usula C1 , pero no en la cl´usula C. a Formar una segunda cl´usla C2 incluyendo las siguientes literales: a C = (C \ (C1 \ {L})) ∪ {¬L}
Cuadro 5: Operador de resoluci´n invertido proposicional o por los ejemplos. Por supuesto, una estretegia para elegir hip´tesis alternativas o es elegir aquella que tenga mayor precisi´n de clasificaci´n sobre los ejemplos o o de entrenamiento. CIGOL utiliza este dise˜o, aunque por supuesto, opera en n representaciones de primer orden.
5.1.
Resoluci´n en primer orden o
Recuerden que una substituci´n es un mapeo de un conjunto de variables o a un conjunto de t´rminos, por ejemplo Θ = {x/Bob, y/z}. Decimos que la e o substituci´n Θ unifica las cl´usulas L1 y L2 , si y s´lo 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 unificador de L1 y L2 porque L1 Θ = L2 Θ = P adre(Bill, y). De esta forma, en a la resoluci´n en primer orden buscamos una literal L1 de la cl´usula C1 y una o a literal L2 de la cl´usula C2 , tal que un unificador entre L1 y ¬L2 pueda ser encontrado. La regla de resoluci´n calcula el resolvente entonces de acuerdo a: o C = (C1 \ {L1 }Θ ∪ (C2 \ {L2 }Θ
5.2.
Resoluci´n invertida en primer orden o
La regla de resoluci´n para primer orden puede ser manipulada algebra´ o ıcamente para definir la resoluci´n invertida. Primero observen que el unificador o Θ puede ser unicamente factorizado en Θ1 y Θ2 , donde Θ = Θ1 Θ2, donde Θ1 ´ contiene las substituciones que involucran las variables de la cl´usula C1 y Θ2 a contiene las substituciones que involucran variables de la cl´usula C2 . Esto es a posible porque C1 y C2 comenzaran siempre con nombres de variables distintos. Usando esta factorizaci´n reescribimos la regla de resoluci´n como: o o C = (C1 \ {L1 }Θ1 ∪ (C2 \ {L2 }Θ2 Ahora, si restringimos la resoluci´n invertida a inferir unicamente cl´usulas 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 resoluci´n invertida: o C2 = (C \ (C1 \ {L1 })Θ1 )Θ−1 ∪ {¬L1 Θ1 Θ−1 } 2 2 Recuerden que este operador es no determinista. La figura 1 ilustra la aplicaci´n de este operador. o
Figura 1: Ejemplo de resoluci´n 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, 261–284, 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. 1041–1045. Morgan Kaufmann 1986 [4] Muggleton, S., and Buntine, W.: Machine invention of first-order predicates by inverting resolution. In: Proceedings of the Fifth International Machine Learning Conference, 339–352, Morgan Kaufmann, Ann Arbor, MC., USA, 1988 [5] Muggleton, S., de Raed, L.: Inductive Logic Programming: Theory and Methods. 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