Programação em lógica indutiva: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Criado ao traduzir a página "Inductive logic programming"
(Sem diferenças)

Revisão das 21h16min de 6 de dezembro de 2016

Programação em lógica indutiva (ILP) é um subcampo de aprendizado de máquina que utiliza lógica de programação como uma representação uniforme, por exemplo, conhecimento prévio e hipóteses. Dada uma codificação de conhecimento prévio e um conjunto de exemplos representado como uma lógica de banco de dados de fatos, um sistema ILP irá derivar um programa de lógica hipotetizado que envolve todos os aspectos positivos e nenhum dos exemplos negativos.

  • Esquema: os exemplos positivos + exemplos negativos + conhecimento prévio ⇒ hipótese.

Programação em lógica indutiva é particularmente útil em bioinformática e processamento de linguagem natural. Gordon Plotkin e Ehud Shapiro definiram a fundamentação teórica inicial para aprendizagem de máquina indutiva em uma lógica de definição.[1][2][3] Shapiro construiu a sua primeira implementação (Sistema de Modelo de Inferência), em 1981:[4] um programa Prolog que indutivamente inferia programas lógicos de exemplos positivos e negativos. O termo Programação em lógica indutiva foi introduzido pela primeira vez[5] em um artigo publicado por Stephen Muggleton , em 1991.[6] Muggleton também fundou a conferência internacional sobre Programação em lógica indutiva, introduziu as idéias teóricas de Invenção de Predicado, Resolução inversa,[7] e Implicação Inversa.[8] Muggleton implementado Implicação Inversa primeiro no sistema PROGOL. O termo "indutivo" aqui refere-se ao filosófico (por exemplo, sugerindo uma teoria para explicar fatos observados), ao invés do matemático (por exemplo, a prova de propriedade para todos os membros de um conjunto ordenado) de indução.

Definição Formal

O conhecimento de prévio é dado como uma lógica da teoria B, comumente na forma de cláusulas de Horn usado em lógica de programação. Os exemplos positivos e o negativos são fornecidos como um conjunto e de não negados e negados literais, respectivamente. Uma hipótese correta h é uma proposição lógica satisfazer os seguintes requisitos.[9]

"Necessidade" não impõe uma restrição sobre h, mas proíbe qualquer geração de uma hipótese, enquanto os fatos positivos são explicáveis sem ela. "Suficiência" requer qualquer hipótese gerada h para explicar todos os exemplos positivos . "A fraca consistência" proíbe a geração de qualquer hipótese h que contradiz o conhecimento prévio B. "Consistência forte" também proíbe a geração de qualquer hipótese h que é inconsistente com os exemplos negativos , dado o conhecimento prévio B; isso implica "Fraca consistência"; se exemplos negativos não são dados, ambas as exigências coincidem. Džeroski [10] exige apenas "Suficiência" (chamado de "Integridade" e "Forte consistência".

Exemplo

Relações familiares assu na secção "Exemplo"

O seguinte exemplo bem conhecido sobre a aprendizagem definições das relações familiares usa abreviaturas

, , , , , , , e .

Ele começa a partir do conhecimento prévio (imagem)

,

os exemplos positivos

,

e a proposição trivial  para indicar a ausência de exemplos negativos.

A abordagem de "generalização relativa menos geral (rlgg)" de Plotkin para Programação em Lógica Indutiva deve ser utilizada para obter uma sugestão sobre como definir formalmente a relação filha {\textit {dau}}.

Esta abordagem utiliza os seguintes passos.

  • Relativizar cada exemplo de literal positivo com o conhecimento prévio completo:
    ,
  • Converter para forma normal conjuntiva:
    ,
  • Anti-unificar cada par compatível [11] [12] de literais:
    • de  e ,
    • de  e ,
    • de  e ,
    • de  e , similar para qualquer outro literal de conhecimento prévio:
    • de  e , e muitos mais literais negados
  • Excluir todos os literais negados contendo variáveis que não ocorrem em um literal positivo:
    • Após excluir todos os literais negados contendo outras variáveis além de , somente  resta, juntamente com todos os literais que vieram do conhecimento prévio
  • Converter cláusulas de volta para a forma de Horn:

A cláusula de Horn resultante é a hipótese h obtida pela abordagem rlgg. Ignorando os fatos do conhecimento prévio, a cláusula informalmente lê "x_{{me}} é chamado de uma filha de x_{{ht}} se x_{{ht}} é o pai de x_{{me}} e x_{{me}} é feminina", que é uma definição comumente aceita.

Sobre os requisitos acima, "Necessidade" estava satisfeita porque o predicado não aparece no conhecimento prévio, o que, portanto, não implica qualquer propriedade que contém esse predicado, tal como os exemplos positivos são. "Suficiência" é satisfeita pela hipótese h calculada, pois, juntamente com a partir do conhecimento prévio, implica o primeiro exemplo positivo , e da mesma forma h e a partir do conhecimento prévio implica o segundo exemplo positivo . "A fraca consistência" é satisfeita por h, pois h detém na estrutura de Herbrand (finita) descrita pelo conhecimento prévio; semelhante para o "Consistência forte".

A definição comum da relação avó, , não pode ser aprendida através da abordagem acima, uma vez que a variável y ocorre somente na cláusula corpo; os literais correspondentes teriam sido eliminados na 4ª etapa da abordagem. Para superar essa falha, que passo tem que ser modificada de tal forma que possa ser parametrizada com diferentes heurística de pós-seleção de literais. Historicamente, a implementação GOLEM é baseada na abordagem rlgg.

Systema de Programação em Lógica Indutiva

Systema de Programação em Lógica Indutiva é um programa que toma como entrada teorias lógicas  e saída uma hipótese correta H em relação a essas teorias. Um algoritmo de um sistema de ILP é composto de duas partes: a hipótese de pesquisa e hipótese de seleção. Primeiro uma hipótese é pesquisada com um método de Programação em Lógica Indutiva, em seguida, um subconjunto das hipóteses encontradas (na maioria dos sistemas, uma hipótese) é escolhido por um algoritmo de seleção. Um algoritmo de seleção de pontua cada um das hipóteses e devolve aquelas com a maior pontuação. Um exemplo de função de pontuação inclue compactação mínima de comprimento onde de uma hipótese com uma menor complexidade de Kolmogorov tem a pontuação mais alta e é devolvida. Um sistema de ILP é completa se e somente se para qualquer entrada de teorias lógicas  qualquer hipótese correta H em relação a estas teorias pode ser encontrad com seu método de pesquisa de hipótese.

Pesquisa de Hipótese

Modernos sistemas de ILP como Progol,[6] Saraiva, [13] e Imparo [14] encontram uma hipótese H , utilizando o princípio da implicação inversa[6] para as teorias B, E, H: . Primeiro eles constroem uma teoria intermediária F chamada de uma teoria ponte que satisfaça as condições e . Em seguida, como , eles generalizam a negação da teoria ponte F com a anti-implicação.[15] No entanto, a operação de anti-implicação, sendo altamente não-determinística, é computacionalmente mais cara. Portanto, uma pesquisa de hipótese alternativa pode ser conduzida usando a operação da inversa de classificação (anti-subsunção), que é menos não-determinística que anti-implicação.

Perguntas sobre completude de uma pesquisa de hipótese específica de um sistema ILP de surgiram. Por exemplo, Progol o método de pesquisa de hipótese com base na regra de inferência da implicação inversa não é completa pelo  exemplo de Yamamoto .[16] por outro lado, Imparo é completa, tanto para o método de anti-implicação [17] quanto para o método de classificação inversa extendida [18].

Implementações

Veja também

Referências

  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.
  3. Shapiro, Ehud Y. (1983).
  4. Shapiro, Ehud Y. "The model inference system."
  5. Luc De Raedt.
  6. a b c 8. 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., "Inverting entailment and Progol", New Generation Computing, 13:245-286, 1995.
  9. 114. doi:10.1016/s0004-3702(99)00067-3 
  10. Džeroski, Sašo (1996), «Inductive Logic Programming and Knowledge Discovery in Databases», in: Fayyad, U.M.; Piatetsky-Shapiro, G.; Smith, P.; Uthurusamy, R., Advances in Knowledge Discovery and Data Mining, MIT Press, pp. 117–152 ; here: Sect.5.2.4
  11. i.e. sharing the same predicate symbol and negated/unnegated status
  12. in general: n-tuple when n positive example literals are given
  13. Ray, O., Broda, K., & Russo, A. M. (2003).
  14. Kimber, T., Broda, K., & Russo, A. (2009).
  15. Yoshitaka Yamamoto, Katsumi Inoue, and Koji Iwanuma.
  16. Akihiro Yamamoto.
  17. a b Timothy Kimber.
  18. David Toth (2014).
  19. (PDF) http://www.doc.ic.ac.uk/~jcs06/papers/ilp09/progolem.pdf  Em falta ou vazio |título= (ajuda)
  20. 13. doi:10.1186/1471-2105-13-162 

Ler mais