Aprendizaje Autom´atico: atico: Programaci´on on L´ ogica ogica Inductiva. Dr. Alejandro Guerra Hern´andez andez Universidad Veracruzana Facultad de F´ısica e Inteligencia I nteligencia Artificial Artificia l Maestr´ Maestr´ıa en Inteligencia Inteligenc ia Artificial Artificia l Sebasti´an an Camacho No. 5, Xalapa, Xalapa , Ver., M´exico exico 91000
[email protected] www.uv.mx/aguerra Abril 22, 2004
1.
Intr Introdu oducc cci´ i´ on on
Una de las representaciones de hip´otesis otesis m´as as expresivas y f´aciles aciles de comprender son los conjuntos de reglas Si – Entonces. Esta sesi´on on explora diversos 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´ausulas ausulas de Horn en primer orden. Debido a que las cl´ausulas ausulas de Horn pueden verse como programas escritos en un lenguaje de programaci´ on on l´ogica ogica como Prolog, su aprendizaje se conoce cono ce como Programaci´ on on L´ ogica ogica Inductiva (ILP). En muchos casos es ´util util aprender una funci´on 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 ´arbol de decisi´on on (clase 07) y convirti´ convirti´endolo endolo en el cojunto de reglas equivalente, una por p or cada rama de la ra´ız ız del ´arbol arbol a alguna de sus hojas. Un segundo m´ etoetodo que hemos visto es el de codificar cada regla como una cadena de bits y usar un algoritmo gen´etico etico (clase08) para explorar el espacio de hip´otesis otesis posibles. posibles. En esta sesi´on on estudiaremos algoritmos que aprenden estos conjuntos de reglas directamente y que difieren de los m´etodos etodos mencionados m encionados en dos aspectos asp ectos fundamentales. Primero, est´an an dise˜ nados para trabajar con reglas que contienen nados variabl ariables. es. Esto Esto es signifi significat cativ ivoo porque porque las reglas reglas en primer primer orden orden son consiconsiderablemente m´as as expresivas que las reglas proposicionales vistas hasta ahora. 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 Padre( Padre(x, y ) indica que y es la madre o el padre de x, y el predicado Ancestro( Ancestro(x, y ) indica que y es un ancestro de x en un n´ umero arbitario de generaciones: umero Si P adre adre((x, y ) Entonce Entoncess Ancest Ancestro ro((x, y ) Si P adre adre((x, z ) ∧ Ancestro( Ancestro(z, y ) Entonce Entoncess Ancest Ancestro ro((x, y ) Observen que estas dos reglas definen de manera concisa una funci´on recursiva que ser´ ser´ıa dif´ d if´ıcil ıcil de representar r epresentar usando arboles arbol es de d e decisi´ de cisi´on o cualquier otro m´etodo etodo de representaci´ representaci ´on on proposicional. De hecho, formuladas de una manera poco diferente, el par de reglas anterior forman un programa Prolog v´alido alido para computar la relaci´on on ancestro. Un algoritmo de prop´osito osito general capaz de aprender estos conjuntos de reglas es por lo tanto, un algoritmo para inferir autom´ aticament aticamentee programas programas Prolog a partir partir de ejemplos. ejemplos. Comenzaremos por considerar algoritmos que aprenden conjuntos de reglas proposicionales, esto es, reglas sin variables. Los algoritmos que buscan en el espacio de hip´otesis otesis un conjunto de reglas disyuntivas son m´as as faciles de entender en esta configuraci´on. on.
2.
Algo Algori ritmo tmoss de cober cobertur tura a secue secuenc ncia iall
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 entrenam entrenamient ientoo positivos positivos y negativo negativos; s; y produce produce como salida, una sola regla que cubre muchos ejemplos positivos y pocos negativos. Necesitamos que esta regla tenga alta precisi´on, on, aunque carezca de amplia cobertura. Eso es, la regla no necesariamente hace predicciones sobre todos los ejemplos, pero, para aquellos que la hace, la predicci´on on es correcta. Dada esta sub-rutina sub-rutina para aprender una sola regla, una aproximaci aproximaci´´on on obvia 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´on on de ejemplos positivos deseada. El conjunto resultante puede ordenarse de acuerdo a su precisi´on, para aplicar las reglas m´as as precisas primero, al clasificar nuevos ejemplares. Un algoritmo protot´ıpico ıpico se muestra muest ra en el cuadro cu adro 1. 1. Este algoritmo de cobertura secuencial representa uno de los enfoques m´as usados para aprender conjuntos de reglas disyuntivas. El enfoque reduce el problema original en una sencuencia de problemas m´as simples, cada uno de los cuales requiere que una sola regla conjuntiva sea aprendida. Puesto que la b´usqueda
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); no(regla, no(regla, ejs) > umbral do while desempe˜ reglas ← reglas ∪ regla; ejs ← ejs \ { ejs bien clasifiados }; regla ← aprendeUnaRegla(objetivo, atribs, ejs); enddo
reglas ← ordenarPorDesempe˜ no(reglas); no(reglas); return reglas; endfun
Cuadro 1: Algoritmo coberturaSecuencial llevada a cabo cab o es ego ego´´ısta, no podemos garantizar que el enfoque encontrar´a el conjunto de reglas m´as as peque˜ no, o bien, el de mejor cobertura sobre el conjunto no, de ejemplos. ejemplos. ¿Como debemos dise˜nar nar aprendeUnaRegla para cubrir los requermientos del algoritmo de cobertura secuencial? A continuaci´on on consideraremos el caso proposicional y m´as as tarde el de las cl´ausulas ausulas de Horn.
2.1.
Busqueda u ´ squeda p or barrido de lo general general a lo espec´ espec´ıfico
Una manera de dise˜nar nar aprendeUnaRegla consiste consiste en organizar organizar la b´usqueda usqueda en el espacio de hip´otesis otesis a la manera de ID3, pero siguiendo ´unicamente unicamente la rama m´ as as promisoria del ´arbol arbol en cada paso. Esto es, la b´usqueda usqueda comienza con la hip´ otesis otesis m´as as general, ninguna restricci´on on atributo-valor ha sido impuesta, y en cada paso a˜nade nade una restricci´on on en forma de prueba atributo-valor, que maximiza la ganancia de informaci´on on sobre el conjunto de entrenamiento. Como ID3, este enfoque enfoq ue ego ego´´ısta va a˜ a ˜nadiendo nadiendo restricciones en los atributos hasta alcanzar un nivel aceptable de desempe˜no. no. A diferencia de ID3, s´olo olo se seguir´a la rama m´ as promisoria, es decir, aquella que m´aximiza as aximiza la ganancia de informaci´on. on. Por lo tanto, esta estrategia puede verse como una b´usqueda ego ego´´ısta en profundidad profun didad sin retorno (backtracking). Como hemos visto, este tipo de b´usqueda tiene el riesto de realizar decisiones sub-´optimas optimas en cada iteraci´ i teraci´on. on. Para reducir este riesgo, podemos extender en algoritmo para realizar una b´usqueda por barrido,
3
esto es, un b´usqueda usqueda en donde el algoritmo mantiene una lista de los k mejores candidatos candidatos en cada iteraci´ on, en lugar de un solo candidato. Los descendientes on, (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´otesis otesis considerada en el ciclo principal del algoritmo, es una conjunci´on de restricciones sobre pares atributo-valor. Cada una de estas hip´otesis conjuntivas corresponde a un conjunto candidato de precondiciones para la regla que est´ a siendo aprendida, y es evaluada por la entropia de los ejemplos que cubre. La b´ usqueda considera incrementalmente hip´otesis usqueda otesis candidato m´as as espec´ esp ec´ıficas, ıfic as, hasta que alcanza una hip´otesis otesis m´aximamente aximam ente espec esp ec´´ıfica que qu e contiene todos los atributos disponibles. La regla que es producida por el algoritmo es aquella no no es el mayor, no necesariamente la hip´otesis cuyo desempe~ otesis final generada en la b’usqueda. La post condici´on on para la regla producida por el algoritmo, es elegida en el ultimo u ´ ltimo paso del mismo, una vez que la precondici´on on de la regla, representada en mejorHip, ha sido determinada. El algoritmo contruye la post condici´on on de la regla para predecir el valor del atributo objetivo, que es el m´as com´ un un entre aquellos ejemplos cubiertos por la precondici´on on de la regla. Finalmente, observen que a pesar del uso de la b´usqueda usqueda p or barrido para reducir el riesgo ´ımplicito ımplicito en la estrategia ego´ısta ısta del algoritmo, es posible que ´este este pueda producir a´un un conjuntos de reglas sub ´optimas. optimas. Como sea, el algoritmo coberturaSecuencial ser´a capaz de aprender un conjunto de reglas disjuntas que cubran los ejemplos de entrenamiento, al llamar repetidamente a aprendeUnaRegla en el resto de los ejemplos ejemplos no cubiertos. cubiertos.
2.2. 2.2.
Variaci ariacione oness
Diversas variantes del enfoque presentado han sido estudiadas. Por ejemplo, en algunos casos ser´ ser´ıa deseable tener un programa que aprenda ´unicamente reglas que cubre ejemplos positivos, e incluir un valor por default que asigna una clasificaci’o clasificaci’on n negativ negativaa a los ejemplares no cubiertos cubiertos por ninguna ninguna regla. 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´on de ejemplos positivos en toda la poblaci´on, on, es peque˜no, no, de forma que el conjunto de reglas que definen el concepto ser´a m´ m as a´s compacto e inteligible para los usuarios si ´este este indentifica solo cl´ausulas ausulas de ejemplos positivos, con la clasificaci’on negativa por default, para todos los dem´as as ejemplos. ej emplos. Este enfoque enfoq ue tambi´en corcor responde con la estrategia de “negaci´on on como falla” usada por Prolog, en la cual una expresi´on on que no puede demostrarse verdadera, se asume como falsa. Para poder aprender estas reglas que predicen un s´olo valor objetivo, el algoritmo aprendeUnaRegla puede ser modificado para aceptar un argumento adicional que especifique el valor del atributo objetivo que nos interesa. La b´usqueda usqueda por barrido se lleva a cabo como se mecion´o, o, cambiando unicamente u ´ nicamente no no que evalua las hip´ la funci´ on on desempe~ otesis. Observen que el uso de entropia otesis. en esta extensi´on on yao es apropiado, porque asigna la calificaci´on m´ axima axima a las 4
fun aprendeUnaRegla(objetivo, atribs, ejs, k) input: objetivo: concepto cible;
atribs: atributos; ejs: ejemplos de entrenamiento; k : n´ umero de candidatos a considerar; umero otesis; otesis; static: mejorHip: mejor hip´ candidatos: hip´ otesis otesis candidato; restrics: conjunto de restricciones (atr,val); output: regla: la regla aprendida; mejorHip ← ∅; candidatos ← { mejorHip }; not( vac´ ´ıo(candi ıo(c andidato datos)) s)) do while not(vac ;;; Candidatos Candida tos mas espec´ 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 no(h, no(h, ejs, objetivo) > if desempe˜
desempe˜ no(mejorHip, ejs, objetivo) no(mejorHip, then mejorHip ← h endif ;;; Actualizar candidatos
candidatos ← mejores(k, nuevosCandidatos, desempe˜ no); no); endwhile asFrecuente(Val(mejorHip,ejs)); asFrecuente(Val(mejorHip,ejs)); returnSi mejorHip Entonces m´ endfun
no(h, no(h, ejs, objetivo) fundesempe˜ hEjs ← match(ejs, h); return entropia(hEjs, objetivo); endfun
Cuadro Cuadro 2: Algoritmos Algoritmos aprendeUnaRegl aprendeUnaReglaa y desempe˜ desempe˜no no
5
hip´ otesis otesis que cubren exclusivamente ejemplos negativos, as´ı como aquellas que cubren s´olo olo ejemplos positivos. Una medida que evalue la fracci´on on de ejemplos positivos cubierta por la hip´otesis, otes is, ser´ıa ıa m´as as apropiada en este caso. 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´ espec´ıfico, aprendiendo un conjunto de reglas a la vez para cada valor del atributo. La b´usqueda usqueda de una sola regla tambi´ t ambi´en en es computad c omputada a de otra forma, guiada por un s´olo olo ejemplo positivo. En part´ part´ıcular, el algoritmo s´ olo olo 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´an a´ un cubiertos por el conjunto de reglas, para un guiar la b´ usqueda de una nueva regla disjunta. usqueda La medida de desempe˜no no usada en aprendeUnaRegla puede variar. Algunas funciones de evaluaci´on on comunes incluyen: Frecuencia relativa. relativa. Esta evaluaci´ on o n es usada en AQ. Sea n el n´ umero umero de
ejemplos que cumplen con la precondici´on on de la regla y nc el n´ umero umero de ejemplos correctamente clasificados. La frecuencia relativa estimada del desempe˜no no de la regla es: nc n Estimado-m de precisi´ on. on. Este estimador estimador de la precisi´on on est´a sesgado ses gado hac´ıa ıa
la precisi´on on esperada de la regla. Se le prefiere cuando los datos son escasos y la regla ser´a evaluada con base en pocos ejemplos. Como antes, n y nc denotas los ejemplos que cumplen la precondici´on de la regla, y aquellos que est´an an bien clasificados, respectivamente. Sea p la probabilida apriori de que un ejemplo seleccionado aleatoriamente del conjunto de entrenamiento, tendr´ tendr´a el valor del atributo objetivo predicho por la regla (si hay 100 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´ umero equivalente de ejemplos para ponderar la probabilidad umero apriori p. El estimador-m de la precisi´on on de la regla es: 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´umero umero de ejemplos es necesario para contrarestar le precisi´on on asumida apriori p. Esta evaluaci´on on es usada en CN2 y el clasificador Bayes naive. no no, en el algoritmo Entr Entrop´ op´ıa. ıa . Esta es la medida usada por la funci´on on desempe~
aqu´ı presentad pres entado. o. Sea S el conjunto de ejemplos que cumplen con la precondici´ on de la regla. La entropia mide la uniformidad de los valores de la on
6
funci´on on objetivo, en este conjunto de ejemplos. Como tomamos el negativo de la entrop´ entrop´ıa, las mejores reglas tendr´an an valores m´as as altos. c
−entrop´ia( ia(S ) =
p log p i
2 i
i=1
donde c es el n´ umero de valores diferentes que la funci´on umero on objetivo puede tomar; y pi es la proporci´on on de ejemplos con respecto a S para los cuales la funci´on on objetivo toma el valor i-´esimo. esimo. Esta evaluaci´on on junto con un test de significancia estad´ estad´ıstica es usado por el algoritmo CN2 [2].
3.
Aprendi´ Aprendi´ endo endo reglas reglas de primer orden
Ahora consideraremos el problema de aprender reglas que contienen variables, en part p art´´ıcular, el aprendizaj aprendi zajee de teor´ teor´ıas de cl´ c l´ausulas ausulas de Horn. Estas reglas son m´as as expresivas que su contraparte proposicional. Este tipo de aprendizaje se conoce c onoce como Programaci´ Program aci´on on L´ L ´ogica ogica Inductiva (ILP) [5], porque un conjunto de cl´ausulas ausulas de Horn puede constituir un programa v´alido alido en el lenguange de programaci´ on on l´ogica ogica Prolog.
3.1.
Terminolog ermino log´ ´ıa
Antes de continuar, introduciremos introduc iremos la terminolog´ term inolog´ıa ıa b´asica asica de la l´ogica ogica formal. Toda expresi´on on est´ e st´a compuesta co mpuesta de constantes, c onstantes, variables, s´ımbolos ımbolo s de d e predicado p redicado y s´ımbolos ımbolos de funciones. funciones. La diferencia diferencia entre predicados predicados y funciones funciones es que los primeros toman exclusivamente valores booleanos de falso y verdadero. Para representar constantes usaremos cadenas que inicien con una may´uscula, uscula, y para las variables usaremos cadenas en min´usculas. usculas. Para representar predicados usaremos cadenas que empiezan con may´uscula, uscula, y para las funciones cadenas en min´ usculas. usculas. Con estos s´ımbolos, las expresiones se construyen como sigue: Un t´ ermino ermino er min no (obes una constante, o una variable, o una funci´on aplicada a un t´ermi serven la recursi´on on en la definici´on). on). Por ejemplo x, Juan, Juan, mayor( mayor (Juan,x), Juan,x), padre( padre(Juan), Juan), son todos t´ erminos. erminos. Una literal es cualquier predicado o su negaci´on, on, aplicada a un t´ ermino, ermino, por ejemplo, Soltera( Soltera(x), V iudo iudo(( padre( padre(Juan)), Juan)), ¬Soltero( Soltero(Juan), Juan), son literales. Si una literal incluye negaci´on on se le llama literal negativa , en cualquier otro caso es una literal positiva . ausula es cualquier disyunci´ Una cl´ on de literales, donde se asume que todas on ausula de Horn es una las variables est´an an cuantificadas universalmente. Una cl´ cl´ausula ausula que contiene a lo m´as as una literal positiva, de forma que: H ∨ ¬L1 ∨ . . . ∨ ¬Ln donde H es la literal positiva, y Li son las literales negativas. Debido a las equivalencias (B (B ∨ ¬ A) ≡ (B ← A) y ¬(A ∧ B ) ≡ (¬A ∨ ¬ B ), la cl´ausula ausula de 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´on on adoptada, las precondiciones L1 ∧ . . . ∧ Ln de la cl´ausula ausula de Horn, son llamadas el cuerpo de la regla, o bien, su antecedente. La literal H que forma la postcondici´on on de la cl´ausula ausula de Horn, se llama cabeza , o alternativamente consecuente .
3.2. 3.2.
FOIL: FOIL: apren aprendie diendo ndo regla reglass de primer primer orden 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´ausula de Horn, con dos excepciones: i) las reglas aprendidas por FOIL son m´as restrictivas que las cl´ausulas ausulas de Horn en general, al no permitir la inclusi´on on de funciones (esto reduce el espacio de b´usqueda); usqueda); y ii) Las reglas de FOIL son m´ as as expresiv expresivas as que las cl´ ausulas ausulas de Horn al permitir permitir literales literales negadas negadas en el cuerpo de la regla. Esta configuraci´on on es lo suficientemente poderosa como para aprender coneptos como la definici´on on recursiva de QuickSort, o bien discriminar 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´on on del algoritmo coberturaSecuencial, esto es, aprende una regla a la vez removiendo los ejemplos cubiertos por la ´ultima regla aprendida, aprendida, antes antes de cont cont´ınuar. ınuar. El ciclo interno es a su vez una varian variante te del algoritmo aprendeUnaRegla, modificado para trabajar con reglas en primer orden. Observen tambi´ en en las peque˜nas nas diferencias de FOIL con los algoritmos mencionados, en part´ 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´usqueda usqueda por barrido, utiliza un ascenso de gradiente simple1 . La b´ usqueda de FOIL puede entenderse mejor si se considera su estructura usqueda jerarqu´ jerarqu´ıca. El ciclo principal del algoritmo agrega una nueva nueva regla a la hip´otesis otesis disjunta reglas . El efecto de esto es generalizar la hip´otesis otesis actual, actual, es decir, incrementar el n´umero umero de ejemplares clasificados como positivos, agregando una nueva disyunci´on. on. Visto a este n´ıvel, el algoritmo lleva a cabo una b´usqueda usqueda de lo espec´ espec´ıfico a lo general, general, comenzando comenzando con la hip’otesis hip’otesis m´as as espec´ıfica ıfica posible posi ble (la disyunci´on on vac´ vac´ıa) y terminando termina ndo con c on una un a hip´ hip ´otesis otesis lo suficientemente general para cubrir todos los ejemplos de entrenamiento positivos. El ciclo interno del algoritmo lleva a cabo otra b´usqueda usqueda en un m´as as detallada para encontrar la 1
Puede verse tambi´ en en como un b´usqueda 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 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 Cuadro 3: Algoritmo Algoritmo FOIL
9
definici´on on exacta de cada regla aprendida, donde el espacio de b´usqueda de este ciclo est´a formado por conjunciones de literales. En este espacio, FOIL lleva a cabo una b´ usqueda usqueda de lo general a lo espec´ espec´ıfico (ascenso de gradiente), comenzando con la hip´otesis otesis m´as as general general (cojunci´ on on vac´ vac´ıa), para entonces especializar especi alizar la hip´ otesis, otesis, agregando agregando una literal literal en cada iteraci´ on, de forma que los ejemplos on, de entrenamiento negatvos sean rechazados. La diferencia principal entre FOIL y los algoritmos de la secci´on anterior se deben a que el algoritmo expresa sus hip´otesis en un lenguaje de primer orden. Las diferencias incluyen: 1. En su b´ usqueda usqueda de lo general a lo espec´ espec´ıfico, FOIL emplea etapas de diferente n´ n´ıvel de detalle, para generar los candidatos a especializaci´on on de una regla. Esto se debe a la necesidad de introducir reglas en la precondici´on de la regla. 2. FOIL FOIL emple emplea a una medid medida a de desem desempe˜ pe˜ no diferente a la entropia usada en no aprendeUna aprendeUnaRegla Regla (cuadro (cuadro 2). Esta diferencia diferencia es producto producto de la necesidad necesidad de distinguir las diferentes instanciaciones, en las variables de una regla; y por el hecho de que el algoritmo busca s´olo olo reglas que cubren ejemplos positivos. Estas diferencias son discutidas en detalle en el resto de la secci´on. 3.2.1. 3.2.1.
Genera Generaci´ ci´ on de candidatos a especializaci´ on on on en FOIL
Para generar candidatos a especializaci´on on de la regla aprendida hasta el 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 ( P (x1 , x2 , . . . xn ) ← L1 , . . . Ln donde L1 , . . . , Ln son las literales formando la precondici´on o n de la regla; y P ( P (x1 , x2 , . . . xn ) es la literal que forma la poscondici´on on de la regla. FOIL calcula los candidatos a generalizaci´on on consierando nuevas literales Ln+1 que satisfacen uno de los siguiente siguiente criterios: criterios: Q(v1 , . . . vr ) donde Q ∈ predicados es un s´ımbolo de predicado; y vi son nuevas variables, o variables que ya est´an presentes en la regla. Al menos una de las vi en la literal creada, debe existir ya como variable en la regla actual. Igual( Igual(xj , xk ) donde xj y xk son varibles que ya est´an an presentes en la regla. La negaci´on on de alguna de las dos formas de literal antes mencionadas. Como ejemplo, consideren reglas de aprendizaje para predecir la literal objetivo Nieta( Nieta(x, y ), en done otros predicados para describir los ejemplos son Padre 10
y Mujer. Mujer. La b´ usqueda usqueda de lo general general a lo espec´ espec´ıfico de FOIL FOIL comienza comienza con la regla m´as as general: Nieta( Nieta(x, y) ← que establece que Nieta( Nieta(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´on on de la regla: Igual( Igual(x, y ), Mujer( Mujer(x), Mujer( Mujer(y), Padre( Padre(x, y ), Padre( Padre(y, x), Padre( Padre(x, z ), Padre( Padre(z, x), Padre( Padre(y, z ), Padre( Padre(z, y), as´ as´ı como la negaci´on on de cada una de estas literales. Observen que z es una variable nueva aqu´ı, ı, mientras que x e y son variables existentes. Ahora consideren que de manera ego´ısta, ısta, FOIL selecciona a Padre( Padre(y, z ) como la literal m´as as promisioria, produciendo as´ as´ı la regla m´ as as espe es pec´ c´ıfica: ıfi ca: Nieta( Nieta(x, y) ← Padre( Padre(y, z ) Al generar candidatos para generalizar nuevamente la regla, FOIL considerar´a ahora todas las literales mencionadas en el paso anterior, m´as as las siguientes: Mujer( Mujer(z ), Igual( Igual(z, x), Igual( Igual(z, y ), Padre( Padre(z, w), Padre( Padre(w, z ), as´ as´ı como sus negaciones. Estas literales son consideras por la introducci´on o n de z en la etapa anterior, lo cual lleva a FOIL a considerar ahora la nueva variable w. Si FOIL selecciona en este momento la literal Padre( Padre(z, x) y posteriormente Mujer( Mujer(y ), eso resultar´ resultar´ıa en la siguiente regla, que cubre s´olo olo ejemplos positivos y, por lo tanto, termina con la b´usqueda usqueda de especializaciones: Nieta( Nieta(x, y ) ← Padre( Padre(y, z ) ∧ Padre( Padre(z, x) ∧ Mujer( Mujer(y) En este punto, FOIL eliminar´ıa ıa todos to dos los ejemplos positivos p ositivos cubiertos p or esta regla del conjunto de entrenamiento. Si a´un quedan ejemplos positivos por cubrir, cubrir , entonces enton ces comenzar´ co menzar´ıa ıa otra o tra b´ b ´usqueda usqueda de lo general a lo espec´ espec´ıfico de una nueva regla. 3.2. 3.2.2. 2.
Guia Guiand ndo o la la b´ usqueda usqueda de FOIL
Para seleccionar la literal m´as as promisoria de entre los candidatos generados en cada etapa del algoritmo, FOIL considera el desempe˜no no de clasificaci´on on de 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´usqueda usqueda de un conjunto de reglas para predecir la literal objetivo Nieta( Nieta(x, y). Como ejemplo de entramiento, asumimis el siguiente conjunto conjunto de hechos hechos de forma general P ( P (x, y) que se leen “P “ P es el x de y ”: Nieta(Vict Nieta(Victor,Sh or,Sharon) aron) Mujer ujer(S (Sha haro ron) n)
Padre(Sh Padre(Sharon,B aron,Bob) ob) Padr adre(Bo e(Bob, b,Vi Vict ctor or))
Padre(T Padre(Tom,Bob om,Bob))
cerrado (CWA, Close World AsAqu´ Aqu´ı asumiremos el supuesto del mundo cerrado sumption) de que cualquier literal que involucre los predicados Nieta, Nieta, Padre
11
y Mujer, Mujer, as´ as´ı como las constantes V icto ictorr, Sharon, Sharon, Bob, Bob , y T om, om, que no se encuentre en el listado li stado anterior, anterio r, puede ser consierada con sierada como c omo falsa. fals a. Podemos tambi´ t ambi´en en afirmar expl´ıcitamente, ıcitam ente, por p or ejemplo, eje mplo, que ¬Nieta( Nieta(Tom,Bob), Tom,Bob), etc. Para seleccionar la mejor especializaci´on on de la regla actual, FOIL considera 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: Nieta( Nieta(x, y) ← las variables x e y no est´an an restringidas por la precondici´on on de la regla, y pueden ser instanciadas por cualquier combinaci´on on de las constantes V ictor ictor,, Sharon, Sharon, Bob, Bob , y T om. om. Usaremos la notaci´on on {x/Bob, x/Bob, y/Sharon y/Sharon} para expresar una instanciaci´on on de variables part´ part´ıcular. Al mapeo de cada variable a una conon . Dadas las cuatro constantes, hay 16 substistante se le conoce como substituci´ tuciones posibles para esta regla inicial. La substituci´on on {x/V ictor ictor,, y/Sharon y/Sharon} corresponde a la instanciaci´on on por un ejemplo positivo, porque la instanciaci´on incluye el hecho Nieta( Nieta(V icto ictor,Sharo r,Sharon n). Las otras 15 instanciaciones permitidas por la regla, constituyen evidencia negativa para la regla (ning´un hecho en el 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´adole adole preferencia a las reglas que poseen m´as 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´en en que si la nueva nueva variable puede instanciarse con muchas constantes, entonces el n´umero umero de substituciones que se adapten a la nueva regla, puede ser mayor que aquellas de la regla original. La funci´on on de evaluaci´on on usada por FOIL FOIL para estimar estimar la utilidad utilidad al agregar agregar una literal, se basa en el n´umero umero de subtituciones positivas y negativas cubiertas, antes y despu´es es de a˜nadir nadir la literal. literal. Consideren Consideren cualquier cualquier regla R, y una literal candidato L, que debe ser agregada al cuerpo de R. Sea R la reglada creada al agregar L a R. El valor gananciaF gananciaF oil( oil(L, R) de agregar L a R se define como:
pR pR − log2 gananciaFoil( gananciaFoil(L, R) ≡ t 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´on on original se asume cubierta, mientras alguna de las instanciaciones i nstanciaciones que la extienden, est´ e presente en la substituci´on on de R . La m´etric etr icaa gananciaFoil tiene una interpretaci´on on directa en t´ erminos ermino s de p la teor´ teor´ıa de informaci´ infor maci´on. on. De acuerdo a esta teor’ia −log2 p +n es el n´umero umero m´ınimo de bits necesario necesario para codificar codificar la clasificaci´ clasificaci´ on on de una instanciaci´on on positiva arbitraria entre las instanciaciones cubiertas por la regla R. Por lo tanto
R
R
12
R
gananciaFoil puede verse como la reducci´on on por L en el n´ umero umero total de bits
necesarios para codificar la clasificaci´on on de todas las instanciaciones positivas de R. 3.2.3. 3.2.3.
Aprendiend Aprendiendo o reglas reglas recursiv recursivas as
En la presentaci´on on de FOIL hemos ignorado la posibilidad de que las literales 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 ımos el predicato objetivo en la lista de predicados esto permitir´ permi tir´ıa ıa la formaci´ formaci on o´n de reglas recursivas. Por ejemplo, la definici´on on recursiva de ancestro: Si P adre adre((x, y ) Entonce Entoncess Ancest Ancestro ro((x, y ) Si P adre adre((x, z ) ∧ Ancestro( Ancestro(z, y ) Entonce Entoncess Ancest Ancestro ro((x, y ) Por supuesto, que la segunda regla sea inclu´ıda ıda en el conjunto aprendido, depende de que la literal Ancestro( Ancestro(z, y) supere en desempe˜ desempe˜no no a las dem´as as literales. Un problema a considerar es c´omo omo evitar que las reglas aprendidas produzcan un procedimiento de recursi´on on infinita. Ver Cameron-Jones y Quinan [1] para una discusi´ discusi´ on en detalle de aprendizaje de conceptos recursivos con FOIL. on
4.
Induccion o ´n como deducci´ on on invertida
Un segundo enfoque a la programaci´on on l´ ogica ogica inductiva est´a basado en la simple observaci´ observaci´ on on de que la inducci´on on es s´olo olo el inverso de la deducci´on. on. En general el aprendizaje aprendizaje autom´atico atico involucra la construcci´on on de teor´ teor´ıas que explican explic an los datos observados. Dados un conjunto de datos D y alg´ un un conocimiento parcial apriori (background) B , el aprendizaje puede describirse como la generaci´on on de una hip´otesis otesis h que junto con B , explica D. Asumiendo que los ejemplos de entrenamiento toman la forma xi , f ( f (xi ) el esta restricci´on on se define como:
∀xi , f ( f (xi ) ∈ D.B ∧ h ∧ xi |= f ( f (xi ) La expresi´on on X |= Y se lee “Y “ Y sigue deductivamente de X ”, ”, o alternativamente X exige exig e (´ımplic ımp lica) a) Y . Y . Esta expresi´on on describe la restricci´on on que debe satisfacer la hip´otesis otesis aprendida h: para todo ejemplo de entrenamiento xi , la clasificaci´ on on f (xi ) es una consequencia consequencia deductiva deductiva de B , h y xi . Como un ejemplo, consideren el caso donde el concepto objetivo a ser aprendedido es “pares de gente (u, ( u, v) tal que el hijo 2 de u es v”, representado por el predicado predicado Hijo( Hijo(u, v ). Asuman que nos hes dado un ejemplo positivo del concepto: Hijo( Hijo(Bob, Sharon), Sharon), donde el ejemplar es descrito por las literales Hombre( Hombre(Bob), Bob ), Mujer( Mujer(Sharon), Sharon), y Padre( Padre(Sharon, Sharon, Bob) Bob)3 . Supongan adem´as as que tenemos como conocimiento background la regla: Padre( Padre(u, v ) ← Papa( Papa(u, v ). En 2 3
Entendido aqu´ı como hijo o hija. Padre Padre considerado considerado como ambos padres
13
este caso, dos de las hip´otesis otesis posibles que satisfacen satisfacen la restricci´ restricci´ on on mencionada son: h1 h2
: Hijo( Hijo(u, v ) ← Padre( Padre(u, v ) : Hijo( Hijo(u, v ) ← Papa( Papa(u, v )
Observen que la literal objetivo Hijo( Hijo(Bob, Sharon) Sharon) es implicada l´ogicamente ogicamente por h1 ∧ xi , sin necesidad de considerar el conocimiento apriori B . En el caso de la hip´otesis otesis h2 la situaci´ situaci´ on es diferente,, la literal objetivo es implicada l´ogion ogicamente por B ∧ h2 ∧ xi y no unicamente ´unicamente por h2 ∧ xi . Esto ejemplifica el papel del conocimiento background para expandir el conjunto de hip’otesis aceptables para un conjunto de entrenamiento entrenamiento dado. Tambi´ en en ilustra como predicados nuevos como Papa pueden incluirse en las hip´otesis otesis aprendidas, sin que est´ en en presentes en la descripci´on on original de los ejemplos de entrenamiento. Este procedimiento de aumentar el conjunto de predicados con base en el conocimiento on constructiva . backgrou background nd se cnoce como inducci´ Lo relevante de formular la restricci´on on sobre las hip´otesis otesis de esta forma es que define el problema problema de aprendizaje aprendizaje en t´ erminos erminos de la l´ogica ogica formal y la inferencia deductiva. En los casos de la l´ogica ogica proposicional y la l´ogica ogica de primer orden, existen algoritmos bien estudiados, para automatizar la deducci´on. Resulta interesante que esos procedimientos puedan ser invertidos para automatizar el proceso p roceso de generaliz gen eralizaci´ aci´on on inductiva. in ductiva. El tema general de esta secci´on on es c´omo omo construir operadores de implicaci´on on inversos. Un operador de implicaci´on on inverso inverso O(B, D) toma un conjunto de entrenamiento D y una teor´ teor´ıa de background B , para producir una hip´otesis otesis h, que satisface la restricci´ restricci´ on on mencionada: O(B, D) = h tal que ∀xi , f ( f (xi ) ∈ D.B ∧ h ∧ xi |= f ( f (xi ) Por supuesto que existen muchas hip´otesis otesis que satisfacen esta restricci´on. on. Una heur´ıstica ıstica com´un un en ILP se basa en el principio de descripci´on m´ınim ın imaa (navaja de Occam). Diferentes atributos pueden usarse para formular hip´otesis compatibles con la restricci´on: on: Esta formulaci´ formulaci´ on on subsume la definici´on on com´ un de aprendizaje como la un b´usqueda usqueda de un concepto general que cubre un conjunto de entrenamiento dado. Este caso corresponde a B = ∅ Al incorporar incorporar B , la formulaci´ on permite una definici´on on on m´ as as rica de cuando una hip´otesis otesis se ajusta a los datos. Hast ahora, esto se determina a partir de un lenguaje que define exclusivamente los ejemplos de entrenamiento y la hip´otesis, otesis, independientemente del dominio del problema. La consideraci´on on de conocimiento background permite consierar lenguajes espec´ıficos ıficos a cierto dominio. domini o. Al considerar B , es posible utilizar este conocimiento background para guiar la b´ usqueda usqueda de h, en luga lugarr de expl explor orar ar el espa espaci cioo de todas todas las las hip´ otesis otesis sint´acticamente acticamente correctas. 14
Al mismo tiempo, la investigaci´ on on en programaci´on on l´ogica ogica inductiva siguiendo esta formulaci´on, on, ha encontrado diversas dificultades pr’acticas: El requerimiento ∀xi , f ( f (xi ) ∈ D.B ∧ h ∧ xi |= f ( f (xi ), no se ajusta naturalnaturalmente al caso de ruido en los ejemplos de entrenamiento. El problema es que esta expresi´on on no permite la posibilidad de que pueda haber errores en la descripci´on on de los ejemplos observados. Los errores pueden introducir un conjunto de restricciones inconsistentes para h. Desafortunadamente, la mayor´ mayor´ıa de los marcos de l´ogica ogica formal, pierden completamente su habilidad para distinguir la verdad de lo falso, una vez que consideran aserciones ambiguas. El lenguaje de primer orden es tan expresivo, que el n´umero de hip´otesis otesis que satiosfacen la restricci´on on ∀xi , f ( f (xi ) ∈ D.B ∧ h ∧ xi |= f ( f (xi ) es tan grande, que la b´usqueda usqueda en el espacio espacio de hip’otesis hip’otesis es, en la may mayor or´´ıa de 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 intuitiv intuitivamen amente, te, el conocimient conocimientoo backgrou background nd B deb de ber´ıa ayudar a restringir y orientar la b´usqueda usqueda en el espacio de hip´otesis, otesis, en la mayor´ mayor´ıa de los sistemas ILP, la complejidad de este espacio se incrementa al considerar B .
5.
Reso esoluci luci´ on ´ on invertida
Un m´ etodo etodo general general para automatiza automatizarr la deducci´ deducci´on on se conoce como regla de resoluci´ resoluci´ on [7]. Esta regla es consistente y completa para la deducci´on on en primer orden. Por lo tanto, resulta interesante investigar si es posible invertir la resoluci´ on on para construir construir un operador operador de implicaci´ implicaci´on on inverso. CIGOL [4] utiliza precisamente este operador. Es m´ as sencillo introducir el principio de resoluci´on as on en su forma proposicional. Sea L una literal proposicional arbitraria. Sean P y R cl´ ausulas ausulas proposicionales 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´ausulas ausula s sobre la l´ınea, se concluye la cl´ausula ausula debajo de la l´ınea. Dadas las dos aserciones 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´on on proposicional se muestra en el cuadro 4. Dada dos cl´ausulas ausulas C 1 y C 2 , el operador de resoluci´on on primero identifica una literal L que ocurra como literal positiva en alguna de estas dos
15
1.
Dada Dadass las las cl´ clausulas a´usulas iniciales tal que ¬L ocurra en C 2 .
2.
Formar el resolve resolvente nte C incluyendo todas las literales de ¬L:
C 1
y
C = C 1
C 2 ,
encontrar una literal
L
C 1
de la cl´ ausula ausula C 1 ,
y
C 2 ,
excepto
L
y
\ {L} ∪ C 2 \ {¬L}
Cuadro 4: Operador de resoluci´on on proposicional cl´ausulas, ausulas, y como negativa en la otra. Esto lo lleva a concluir de acuerdo a la regla de resoluci´on. on. Es f´ acil acil invert invertir ir el operado operadorr de resolu resoluci´ ci´ on, on, para obtene obtenerr un operado operadorr de implicaci´ on on inver i nversa sa O(C, C 1 ) que lleve a cabo inferencias inductivas. En general, este operador inverso debe derivar una de las cl´ausulas iniciales, C 2 , dados el resolvente C y la otra cl´ausula ausula inicial C 1 . Consideren un ejemplo donde nos es dado el resolvente C = A ∨ B y la cl´ausula ausula inicial C 1 = B ∨ D. ¿C´ omo omo podemos derivar una cl´ausula ausula C 2 tal que C 1 ∧ C 2 |= C ? Primero observen que por la definici´on on del operador de resoluci´on, on, cualquier literal que ocurra en C , pero no en C 1 , debe estar presente en C 2 . En nuestro ejemplo esto indica que C @ debe incluir A. Segundo, la literal que ocurre en C 1 , pero no en C , debe ser la literal eliminada por la regla de resoluci´on, on, y por lo tanto su negaci´on debe ocurrir en C 2 . En nuestro ejemplo esto indica que C 2 debe incluir la literal ¬D. Por lo tanto C 2 = A ∨ ¬ D. Aplicando el operador de resoluci´on on a C 1 y C 2 produce efectivamente el resolvente C . Observen que hay una segunda soluci´on para C 2 en el ejemplo anterior. En part par t´ıcul ıc ular ar,, C 2 , puede ser tambi´en en la cl´ausul ausul m´ as as espec´ esp ec´ıfica ıfi ca A ∨ ¬D ∨ B . La diferencia con la soluci´on on anterior es que ahora hemos incluido en C 2 , una literal literal que ocurre en C 1 . Lo important imp ortant aqu´ aqu´ı es observar que el operador op erador de resoluci´on on inverida es no determinista – En general, habr´a muchas cl´ausulas ausulas C 1 y C 2 que produzcan el resolvente C . Una heur´ heur´ıstica para elegir entre las alternativas alternativas es preferir cl´ausulas ausulas cortas, sobre las largas. Si incorporamos este sesgo por las cl´ausulas ausulas cortas, el operador de resoluci´on on invertido se define como en el cuadro 5. Es posible dise˜nar nar un algoritmo de aprendizaje de reglas basado en el operador de resoluci´on on invertido. El algoritmo puede producir hip´otesis otesis que, junto con el conocimiento background, impliquen los ejemplos observados. Una estretegia es usar la cobertura secuencial para iterativamente ir aprendiendo una cl´ausula ausula de Horn a la vez. En cada iteraci´on el algoritmo selecciona un ejemplo de entrenamiento que a´un un no sea cubierto por las reglas aprenididas hasta ese momento. El operador invertido es aplicado entonces para generar hip´otesis candidato hi tal que (B ( B ∧ hi ∧ xi |= f ( f (xi), donde el background B incluye las reglas aprendidas hasta ese momento. Observen que esta es una b´usqueda guiada 16
1.
Dada Dadass las las cl´ clausulas a´usulas iniciales C 1 y C , encontrar una literal cl´ ausula ausula C 1 , pero no en la cl´ausula ausula C .
2.
Formar ormar una una segun segunda da cl´ cl´ ausla ausla
C 2
L
que ocurre en la
incluyendo las siguientes literales:
C = (C \ (C 1
\ {L})) ∪ {¬ L}
Cuadro 5: Operador de resoluci´on on invertido proposicional por los ejemplos. Por supuesto, una estretegia para elegir hip´otesis alternativas es elegir aquella que tenga mayor precisi´on on de clasificaci´on on sobre los ejemplos de entrenamiento. CIGOL utiliza este dise˜no, no, aunque por supuesto, opera en representaciones de primer orden.
5.1. 5.1.
Reso Resolu luci ci´ ´ on on en primer orden
Recuerden que una substituci´on on es un mapeo de un conjunto de variables a un conjunto conjunto de t´ erminos, erminos, por ejemplo ejemplo Θ = {x/Bob, x/Bob, y/z}. Decimos que la substituci´ on on Θ unifica las cl´ausulas ausulas L1 y L2 , si y s´olo olo si L1 Θ = L2 Θ. Por ejemplo, si L1 = Padre( Padre(x, y ) y L2 = Padre( Padre(Bill,z), Bill,z), entonces Θ = {x/Bill, x/Bill, z/y} es un unificador de L1 y L2 porque L1 Θ = L2 Θ = Padre( Padre(Bill,y). Bill,y). De esta forma, en la resoluci´ resoluci´ on en primer orden buscamos una literal L1 de la cl´ausula on ausula C 1 y una literal L2 de la cl´ausula ausula C 2 , tal que un unificador entre L1 y ¬L2 pueda ser encontrado. La regla de resoluci´on on calcula el resolvente entonces de acuerdo a: C = (C ( C 1 \ {L1 }Θ ∪ (C 2 \ {L2 }Θ
5.2. 5.2.
Reso Resolu luci ci´ ´ on invertida en primer orden on
La regla de resoluci´on on para primer orden puede ser manipulada algebra´ algebra´ıcamente para definir la resoluci´on on invertida. Primero observen que el unificador Θ puede ser ´unicamente unicamente factorizado en Θ 1 y Θ2 , donde Θ = Θ 1 Θ2, donde Θ1 contiene las substituciones que involucran las variables de la cl´ausula C 1 y Θ2 contiene las substituciones que involucran variables de la cl´ausula C 2 . Esto es posible porque C 1 y C 2 comenzaran siempre con nombres de variables distintos. Usando esta factorizaci´on on reescribimos la regla de resoluci´on on como: C = (C ( C 1 \ {L1 }Θ1 ∪ (C 2 \ {L2 }Θ2 Ahora, si restringimos la resoluci´on on invertida a inferir unicamente u ´ nicamente cl´ausulas ausulas C 2 que no contengan literales que aparezcan en C 1 , la regla anterior puede expresarse como: C \ (C 1 \ {L1 }Θ1 = (C ( C 2 \ {L2 }Θ2 17
Utilizando el hecho de que L2 = ¬L1 Θ1 Θ2 1 , resolviendo para C 2 obtenemos la regla de resoluci´on on invertida: −
C 2 = (C \ (C 1 \ {L1 })Θ1 )Θ2 1 ∪ {¬L1 Θ1 Θ2 1 } −
−
Recuerden que este operador es no determinista. La figura 1 ilustra la aplicaci´ on on de este operador.
Figura 1: Ejemplo de resoluci´ on on invertida
Referencias [1] Cameron-Jones, R. and Quinlan, J. R.: Avoiding pitfalls when learning recurrecursive theories. Proceedings of the Eight International Workshop on Machine Learning, 389 – 393, Morgan Kaufmann, San Mateo, CA., USA, 1993 [2] Clark, Clark, P., and Nibblett, Nibblett, R.: The CN2 induction induction algorithm. algorithm. Machine LearnLearning, 3, 261–284, 1989 [3] Michalks Michalkski, ki, R.S., Mozetic, Mozetic, L., Hong, J., and Lavrac, Lavrac, H.: The multi-purpose 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 invention of first-order predicates predicates by inverting resolution. In: Proceedings of the Fifth International Machine Learning Conference, 339–352, Morgan Kaufmann, Ann Arbor, MC., USA, 1988 [5] Muggle Muggleton ton,, S., de Raed, Raed, L.: Induct Inductiv ivee Log Logic ic Progra Programmi mming: ng: Theory Theory and Methods. Journal of Logic Programming, 19:629–679 (1994) 18
[6] Quinlan, Quinlan, J.R.: Learning Learning logical definitions definitions from relaions. relaions. Mac Machine hine Learning, Learning, 5, 239–266, 1990 [7] Robinson, Robinson, J.A.: A machine-or machine-orient iented ed logic based on the resolution resolution principle. principle. Journal of the ACM, 12(1):23–41, 1965
19