Programación lógica inductiva

La Programación lógica inductiva (ILP, por sus siglas en inglés) es un subcampo de lainteligencia artificial simbólica que usa programación lógica como representación uniforme para ejemplos, hipótesis y conocimiento previo. Dada una codificación del conocimiento previo sabida y un conjunto de ejemplos representados como base de datos lógica de hechos, un sistema de ILP derivará una lógica hipotetizada cuya consecuencia lógica implique todos los ejemplos positivos y ninguno de los negativos.

  • Esquema: Ejemplos positivos + ejemplos negativos + conocimiento previo ⇒ hipòtesis.

La programación lógica inductiva es particularmente útil en bioinformática y procesamiento del lenguaje natural . Gordon Plotkin y Ehud Shapiro sentaron las bases teóricas iniciales para el aprendizaje automático inductivo en un entorno lógico.[1][2][3]​ Shapiro construyó su primera implementación (Modelo de Sistema de Inferencia) en 1981:[4]​ un programa Prolog que dedujo inductivamente programas lógicos a partir de ejemplos positivos y negativos. El término Programación lógica inductiva se introdujo por primera vez[5]​ en un artículo de Stephen Muggleton en 1991.[6]​ Muggleton también fundó la conferencia internacional anual sobre programación de lógica inductiva, introdujo las ideas teóricas de la Invención de Predicados, la resolución inversa,[7]​ y la implicación inversa.[8]​ Muggleton implementó la vinculación inversa primero en el sistema PROGOL . El término " inductivo " aquí se refiere a la inducción filosófica (es decir, que sugiere una teoría para explicar los hechos observados) en lugar de matemática (es decir, que demuestra una propiedad para todos los miembros de un conjunto bien ordenado).

Definición formal editar

Los conocimientos previos se dan como una teoría lógica B, comúnmente en forma de cláusulas Horn utilizadas en la programación lógica . Los ejemplos positivos y negativos se dan como una conjunción   y   de ground literals sin negar y negados, respectivamente. Una hipótesis correcta h es una proposición lógica que satisface los siguientes requisitos.[9]

 

La " necesidad " no impone una restricción a h, pero prohíbe cualquier generación de hipótesis mientras los hechos positivos sean explicables sin ella.

La "suficiencia " es lo que requiere cualquier hipótesis generada h para explicar todos los ejemplos positivos  .

La " consistencia débil " prohíbe la generación de cualquier hipótesis h que contradiga el conocimiento básico B.

La "consistencia fuerte " también prohíbe la generación de cualquier hipótesis h que sea inconsistente con los ejemplos negativos  , dado el conocimiento de fondo B ; esto implica "Consistencia débil "; Si no se dan ejemplos negativos, ambos requisitos coinciden. Džeroski[10]​ requiere solo "Suficiencia " (que llama "Completitud") y "Consistencia fuerte ".

Ejemplo editar

 
Presuntas relaciones familiares en la sección "Ejemplo"

El siguiente ejemplo bien conocido sobre el aprendizaje de definiciones de relaciones familiares utiliza las siguientes abreviaturas:

par: padre, fem: mujer, dau: hija, g: George, h: Helen, m: Mary, t: Tom, n: Nancy, y e: Eve.

Comienza con el sgte. conocimiento previo (cf. imagen):

  ,

los ejemplos positivos

  ,

y la proposición trivial true para denotar la ausencia de ejemplos negativos.

El enfoque de Plotkin[11][12]​ de "generalización general menos relativa (rlgg) " a la programación lógica inductiva se utilizará para obtener una sugerencia sobre cómo definir formalmente la relación hija dau .

Este enfoque utiliza los siguientes pasos.

  • Relativiza cada ejemplo positivo literal con el conocimiento previo (o de fondo) completo:
      ,
  • Lo convierte en cláusula forma normal :
      ,
  • Anti-unifica cada par compatible[13][14]​ de literales:
    •   de   y   ,
    •   de   y   ,
    •   de   y   ,
    •   de   y  , similar para todos los demás literales de conocimiento de fondo
    •   de   y   y muchos más literales negados
  • Elimina todos los literales negados que contienen variables que no aparecen en un literal positivo:
    • después de eliminar todos los literales negados que contienen otras variables que  , solamente   permanece, junto con todos los literales básicos del conocimiento de fondo
  • Convierta las cláusulas de nuevo a la forma Horn:
    •  

La cláusula Horn resultante es la hipótesis h obtenida por el enfoque rlgg. Ignorando los hechos del conocimiento de fondo, la cláusula lee informalmente "   se llama hija de   Si   es el padre de   y   es femenino ", que es una definición comúnmente aceptada.

Con respecto a los requisitos anteriores, La "Necesidad " se cumplió porque el predicado dau no aparece en el conocimiento de fondo. La "suficiencia " se satisface con la hipótesis calculada h, ya que, junto con   desde el conocimiento previo, implica el primer ejemplo positivo   y de manera similar h y   desde el conocimiento previo implica el segundo ejemplo positivo  . La "Consistencia débil " es satisfecha por h, ya que h se mantiene en la estructura Herbrand (finita) descrita por el conocimiento de fondo; lo mismo pasa con la "Consistencia fuerte".

La definición común de la relación de la abuela, a saber.  , no se puede aprender utilizando el enfoque anterior, ya que la variable y ocurre solo en el cuerpo de la cláusula; los literales correspondientes se habrían eliminado en el cuarto paso del enfoque. Para superar este defecto, ese paso tiene que modificarse de modo que pueda parametrizarse con diferentes heurísticas de post-selección literales . Históricamente, la implementación de GOLEM se basa en el enfoque rlgg.

Sistemas de programación de lógica inductiva editar

Un sistema de programación lógica inductiva es un programa que toma como entrada teorías lógicas de entrada   y genera una hipótesis correcta H. Un algoritmo de un sistema ILP consta de dos partes: búsqueda de hipótesis y selección de hipótesis. Primero se busca una hipótesis con un procedimiento de programación de lógica inductiva, luego se elige un subconjunto de las hipótesis encontradas (en la mayoría de los sistemas, una hipótesis) mediante un algoritmo de selección. Un algoritmo de selección puntúa cada una de las hipótesis encontradas y devuelve las que tienen la puntuación más alta. Un ejemplo de función de puntaje puede ser una que incluya longitud de compresión mínima donde una hipótesis con la menor complejidad de Kolmogorov tiene el puntaje más alto y por lo tanto se la elige. Un sistema ILP está completo si y solo si para cualquier teoría lógica de entrada   cualquier hipótesis correcta H se puede encontrar con su procedimiento de búsqueda de hipótesis.

Búsqueda de hipótesis editar

Los sistemas ILP modernos como Progol,[6]​ Hail[15]​ e Imparo[16]​ encuentran una hipótesis H utilizando el principio de la vinculación inversa para las teorías B, E, H :   . Primero construyen una teoría intermedia F llamada teoría de puente que satisface las condiciones   y   . Entonces como  , generalizan la negación de la teoría del puente F con la anti-vinculación.[17]​ Sin embargo, la operación del anti-vinculación, dado que es altamente no determinista es computacionalmente más costosa. Por lo tanto, se puede realizar una búsqueda alternativa de hipótesis utilizando la operación de la subsunción inversa (anti-subsunción), que es menos no determinista que la anti-vinculación.

Surgen preguntas sobre la integridad de un procedimiento de búsqueda de hipótesis de un sistema ILP específico. Por ejemplo, el procedimiento de búsqueda de hipótesis de Progol basado en la regla de inferencia de vinculación inversa no se completa con el ejemplo de Yamamoto .[18]​ Por otro lado, Imparo se completa por el procedimiento anti-vinculación[19]​ y su procedimiento de subsunción inversa extendida.[20]

Implementaciones editar

Véase también editar

Referencias editar

  1. Plotkin G.D. Automatic Methods of Inductive Inference, PhD thesis, University of Edinburgh, 1970.
  2. Shapiro, Ehud Y. Inductive inference of theories from facts, Research Report 192, Yale University, Department of Computer Science, 1981. Reprinted in J.-L. Lassez, G. Plotkin (Eds.), Computational Logic, The MIT Press, Cambridge, MA, 1991, pp. 199–254.
  3. Shapiro, Ehud Y. (1983). Algorithmic program debugging. Cambridge, Mass: MIT Press. ISBN 0-262-19218-7
  4. Shapiro, Ehud Y. "The model inference system." Proceedings of the 7th international joint conference on Artificial intelligence-Volume 2. Morgan Kaufmann Publishers Inc., 1981.
  5. Luc De Raedt. A Perspective on Inductive Logic Programming. The Workshop on Current and Future Trends in Logic Programming, Shakertown, to appear in Springer LNCS, 1999. CiteSeerX: 10.1.1.56.1790
  6. a b Muggleton, S.H. (1991). «Inductive logic programming». New Generation Computing 8 (4): 295-318. doi:10.1007/BF03037089. 
  7. Muggleton S.H. and Buntine W. "Machine invention of first-order predicate by inverting resolution","Proceedings of the 5th International Conference on Machine Learning, 1988.
  8. Muggleton, S.H. (1995). «Inverting entailment and Progol». New Generation Computing 13 (3–4): 245-286. doi:10.1007/bf03037227. 
  9. Muggleton, Stephen (1999). «Inductive Logic Programming: Issues, Results and the Challenge of Learning Language in Logic». Artificial Intelligence 114 (1–2): 283-296. doi:10.1016/s0004-3702(99)00067-3. ; here: Sect.2.1
  10. Džeroski, Sašo (1996), «Inductive Logic Programming and Knowledge Discovery in Databases», en Fayyad, U.M.; Piatetsky-Shapiro, G.; Smith et al., eds., Advances in Knowledge Discovery and Data Mining, MIT Press, pp. 117-152  .; here: Sect.5.2.4
  11. Plotkin, Gordon D. (1970). «A Note on Inductive Generalization». En Meltzer, B., ed. Machine Intelligence 5: 153-163. 
  12. Plotkin, Gordon D. (1971). «A Further Note on Inductive Generalization». En Meltzer, B., ed. Machine Intelligence 6: 101-124. 
  13. i.e. sharing the same predicate symbol and negated/unnegated status
  14. in general: n-tuple when n positive example literals are given
  15. Ray, O., Broda, K., & Russo, A. M. (2003). Hybrid abductive inductive learning Archivado el 8 de abril de 2022 en Wayback Machine.. In LNCS: Vol. 2835. Proceedings of the 13th international conference on inductive logic programming (pp. 311–328). Berlin: Springer.
  16. Kimber, T., Broda, K., & Russo, A. (2009). Induction on failure: learning connected Horn theories. In LNCS: Vol. 5753. Proceedings of the 10th international conference on logic programing and nonmonotonic reasoning (pp. 169–181). Berlin: Springer.
  17. Yoshitaka Yamamoto, Katsumi Inoue, and Koji Iwanuma. Inverse subsumption for complete explanatory induction. Machine learning, 86(1):115–139, 2012.
  18. Akihiro Yamamoto. Which hypotheses can be found with inverse entailment? In Inductive Logic Programming, pages 296–308. Springer, 1997.
  19. a b Timothy Kimber. Learning definite and normal logic programs by induction on failure. PhD thesis, Imperial College London, 2012.
  20. David Toth (2014). Imparo is complete by inverse subsumption. arXiv:1407.3836
  21. Muggleton, Stephen; Santos, Jose; Tamaddoni-Nezhad, Alireza (2009). «ProGolem: a system based on relative minimal generalization». ILP. 
  22. Santos, Jose; Nassif, Houssam; Page, David; Muggleton, Stephen; Sternberg, Mike (2012). «Automated identification of features of protein-ligand interactions using Inductive Logic Programming: a hexose binding case study». BMC Bioinformatics 13: 162. PMC 3458898. PMID 22783946. doi:10.1186/1471-2105-13-162. Archivado desde el original el 3 de marzo de 2016. Consultado el 10 de julio de 2020. 

Otras lecturas editar