A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação em Lógica Indutiva Jacques Robin DI-UFPE.

Apresentações semelhantes


Apresentação em tema: "Programação em Lógica Indutiva Jacques Robin DI-UFPE."— Transcrição da apresentação:

1 Programação em Lógica Indutiva Jacques Robin DI-UFPE

2 O que é programação em lógica? * Paradigma de linguagem de programação que unifica: Engenharia de Software (especificação formal, linguagens de programação) Inteligência Artificial (raciocínio com Formalismos de Representação do Conhecimento) Banco de Dados -- Dedutivos (BDD) Teoria Lógica (TL) das provas * Metáfora computacional considerando: Teoria Lógica = Especificação Formal de Software = Programa Executável = BDD = Base de Conhecimento (BC) Programar = Especificar = apenas declarar axiomas e regras Axiomas da TL = fatos da BC = parte extensional do BDD = dados explícitos de um BD tradicional Regras da TL e da BC = parte intencional do BDD Teoremas da TL deduzidos a partir dos axiomas e das regras = dados implícitos do BDD

3 West é criminoso? : em L1 * Requisitos em inglês 1. It is crimimal for an American to sell weapons to an hostile country 2. Nono owns missiles 3. Nono acquires all its missiles from West 4. West is American 5. Nono is a nation 6. Nono is an enemy of the USA 0. Is West a crimimal?  * Em lógica da 1 a ordem 1.  P,W,N american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P) 2.  W owns(nono,W)  missile(W) 3.  W owns(nono,W)  missile(W)  sells(west,nono,W) 7.  X missile(W)  weapon(W) 8.  X enemy(N,america)  hostile(N) 4. american(west) 5. nation(nono) 6. enemy(nono,america) 9. nation(america)

4 West é criminoso? em formal normal * Em lógica da 1 a ordem 1.  P,W,N american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P) 2.  W owns(nono,W)  missile(W) 3.  W owns(nono,W)  missile(W)  sells(west,nono,W) 7.  X missile(W)  weapon(W) 8.  X enemy(N,america)  hostile(N) 4. american(west) 5. nation(nono) 6. enemy(nono,america) 9. nation(america) * Em formal normal american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P) owns(nono,m1) missile(m1) owns(nono,W)  missile(W)  sells(west,nono,W) missile(W)  weapon(W) enemy(N,america)  hostile(N) american(west) nation(nono) enemy(nono,america) nation(america)

5 West é criminoso? em Prolog * Em Lógica de Horn: american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W) => criminal(P) owns(nono,m1) missile(m1) owns(nono,W)  missile(W)  sells(west,nono,W) missile(W)  weapon(W) enemy(N,america)  hostile(N) american(west) nation(nono) enemy(nono,america) nation(america) * Em Prolog: criminal(P) :- american(P), weapon(W), nation(N), hostile(N), sells(P,N,W). owns(nono,m1). missile(m1). sells(west,nono,W) :- owns(nono,W), missile(W). weapon(W) :- missile(W). hostile(N) :- enemy(N,america). american(west). nation(nono). enemy(nono,america). nation(america).

6 West é criminoso? Funcionamento de Prolog criminal(P) :- american(P), weapon(W), nation(N), hostile(N), sells(P,N,W). owns(nono,m1). missile(m1). sells(west,nono,W) :- owns(nono,W), missile(W). weapon(W) :- missile(W). hostile(N) :- enemy(N,america). american(west). nation(america). enemy(nono,america). nation(nono). criminal(west)? <- yes. american(west)? -> yes. weapon(W)? <- W = m1. t missile(W)? -> W = m1. nation(N)? -> N = america. hostile(america)? <- no. t enemy(america,america)? -> no. backtrack: nation(N), N \ {america}? -> N = nono. hostile(nono)? <- yes. t enemy(nono,america)? -> yes. sells(west,nono,m1)? <- yes. t owns(nono,m1)? -> yes. t missile(nono,m1)? -> yes.

7 Aprendizagem Indutivo Programação em Lógica Programação em Lógica Indutiva (IPL) O que é ILP (Inductive Logic Programming)? * ILP x resto da aprendizagem Descobre conhecimento novo expressado em lógica da 1a ordem * ILP x resto da programação em lógica Inverte mecanismos de dedução para implementar indução

8 Programação em Lógica Indutiva x Dedutiva * PL Dedutiva (Prolog, BD dedutivas): Fatos positivos declarados  Regras |= Fatos positivos deduzidos Conhecimento prévio em extensão  Conhecimento prévio em intenção |= Novo conhecimento comprovado em extensão * PL Indutiva (Progol, BD indutivas): Fatos positivos declarados  Fatos negativos declarados  Regras declaradas ?|= Regras induzidas Conhecimento prévio em extensão  Conhecimento prévio em intenção |= Novo conhecimento hipotético em intenção * Linguagens de ILP x Prolog: com negações no BD e nas conclusões sem símbolo de função, e.g.: pessoa(nome(joão),idade(20)) sem fatos universais, e.g.: ancestral(X,adão).

9 Programação em Lógica Indutiva: tarefa genérica * Dados: B = Base de conhecimento prévio (regras) D+ = base de dados (exemplos, fatos) positivos D- = base de dados (exemplos, fatos) negativos Viés de aprendizagem (restrições sobre forma das regras) * Aprende hipótese H (regras) tal que: H verifica restrições do viés de aprendizagem, e   D-, B  H  D-, e  D+, B  H |= D+ em ILP monótona, ou  D+, B  H  D+ em ILP não monótona  definido por limiar, para evitar overfitting e ser tolerante ao ruído

10 Viés de aprendizagem em ILP * Objetivo: reduzir busca no espaço de hipótese * Sintática paramétrica sobre cláusulas: limitar número de premissas por cláusula, número de variáveis por cláusula, profundidade dos termos das cláusulas, nível dos termos das cláusulas. * Semântica sobre predicados : tipos dos seus argumentos instanciação dos seus argumentos t constante #, variável de entrada + ou variável de saída - número de vezes que um predicado pode ser satisfeito

11 Programação em Lógica Indutiva (ILP): características * Tarefas: classificação, previsão e controle * Ambiente pode ser: inacessível, não episódico contínuo, ruidoso dinâmico?, grande? relacional, diverso * Supervisionado: E+  E- ou E+ * Treino antes da ação * Incremental ou não * Não iterativo * Top-down ou bottom-up ou bidirecional * Guloso * Global * Aproveita conhecimento prévio para podar busca da hipótese * Aproxima qualquer função Representação do conhecimento: exemplos, conhecimento prévio e conhecimento aprendido uniformemente representados por conjunto de conjunto de cláusulas de Horn, i.e., regras da lógica 1a ordem da forma c(...,X,Y,Z,...) :- p1(...,X,Y,...),...,pn(...,Y,Z,...). com semântica ...X,Y,Z,... c(...,X,Y,Z,...)  p1(...,X,Y,...) ...  pn(...,Y,Z,...)

12 Necessidades das regras relacionais Conhecimento a priori name1 = ann … name5 = tom father11 = F … father31 = T … father54 = T mother11 = F … mother55 = F female1 = T … female5 = F male1 = F Exemplos positivos: daughter42 = T daughter13 = T Exemplo negativos: daughter11 = F … daughter44 = F Aprende: daughter13(D,P) :- female3(D), parent13(P,D). daughter42(D,P) :- female4(D), parent42(P,D).

13 Aprender relações abstratas com ILP Conhecimento a priori Intencional: parent(F,C) :- father(F,C). parent(M,C) :- mother(P,C). Extensional: father(pat,ann). father(tom,sue). female(ann). female(eve). female(sue). male(pat). male(tom). mother(eve,sue). mother(ann,tom). Exemplos Positivos: daughter(sue,eve). daughter(ann,pat). Negativos: not daughter(tom,ann). not daughter(eve,ann). Aprende: daughter(D,P) :- female(D), parent(P,D).

14 Aprender definição recursiva com ILP Conhecimento a priori Intencional: parent(F,C) :- father(F,C). parent(M,C) :- mother(M,C). Extensional: father(pat,ann). father(tom,sue). female(ann). female(eve). female(sue). male(pat). male(tom). mother(eve,sue). mother(ann,tom). Exemplos positivos: ancestor(tom,sue). ancestor(eve,sue).... Exemplo negativos: not ancestor(ann,eve). not ancestor(sue,eve).... Definição induzida: ancestor(A,D) :- parent(A,D). ancestor(A,D) :- parent(A,P), ancestor(P,D).

15 ILP x métodos baseados em atributos (ID3, Redes Neurais, Redes Bayesianas) Vantagens: * Aprende conhecimento relacional em lógica da 1a ordem * Aprende conhecimento diretamente executável (programa Prolog) * Re-aproveita conhecimento prévio no mesmo formalismo * Capaz de inventar novos predicados (i.e., conceitos) Limitações: * Dificilmente aprende conhecimento interessante a partir apenas de exemplos * Métodos suficientemente eficientes para grandes BD: requer viés muito restringidor sobre regras a aprender não tem capacidade a inventar novos predicados

16 Aplicações práticas de KDD por ILP * Medicina e saúde: previsão dos efeitos de uma nova droga composta a partir dos efeitos dos seus componentes em drogas testadas previsão da forma 3D de uma proteína a partir da sua seqüência de ácidos-amidos descoberta de regras diagnosticas em reumatologia * CAD/CAM: descoberta de regras escolhendo resolução de elementos finitos em modelos numéricos de estresses em estruturas derivar regras de diagnostico de falha em satélites a partir de regras causais modelando o funcionamento dos mesmos * Jogos: descoberta de regras para jogar xadrez * Engenharia de software: programação (em lógica) automática otimização de código (de programas lógicos) teste e depuração de código (de programas lógicos) descobertas de restrições de integridade implícitas em BD * Processamento de linguagem natural: aprendizagem de regras de gramáticas de uma língua natural a partir de grande corpus de textos

17 Regras e operadores para ILP * Especialização (refinamento) baseado em  -Generalização * Generalização Mínima Relativa (RLGG Relative Least General Generalization) * Resolução inversa em V * Resolução inversa em W (invenção de predicados) * Implicação inversa * Derivação inversa (inverse entailment)

18  -Generalização (  -Subsumption) * G  -generaliza S sse  substituição ,  (G)  S ie, G se unifica com uma parte de S ex, com  = {D/ann}, daughter(D,P) :- female(D).  -generaliza daughter(ann,P) :- female(ann), parent(P,ann). * Sugere 2 operadores de especializações: aplicar substituição, ex, t especializar daughter(D,P) :- female(D). t em daughter(ann,P) :- female(ann). acrescentar premissa, ex, t especializar daughter(D,P) :- female(D). t em daughter(D,P) :- female(D), parent(P,D). * Propriedades: (G  -generaliza S)  (G |= S) -- “G entails S” mas em geral (G |= S)  (G  -generaliza S)

19 Busca top-down em reticulado de refinamento: exemplo daughter(D,P). daughter(D,D). daughter(D,P) :- parent(P,D). daughter(D,P) :- parent(D,X). daughter(D,P) :- female(D). daughter(D,P) :- female(D), female(D). daughter(D,P) :- female(D), parent(P,D).... daughter(D,P) :- parent(P,D), female(D)....

20 Busca top-down em reticulado de refinamento * Adaptação de ID3 para representação da 1a ordem * Espaço de hipótese: reticulado no qual cada no  -generaliza seus filhos em cima: conclusão a aprender sem premissa em baixo: contradição ou hipótese mais específica H ms tal que: t H ms  B |= D+ (e H ms  B |  D-) * Percorre reticulado de cima para baixo em largura 1 a * Cada passo implementa uma abordagem gerar e testar gerar: todas as hipóteses H n em L(H) refinando a hipótese atual testar: função heurística de: t número de D+ tal que: H n  B |= D+ t número de D- tal que: H n  B |= D- t tamanho de H n

21 Viés sintático parametrizado * lista dos nomes de predicado permitidos em hipóteses * número máximo de premissas por cláusula * número máximo de variáveis por cláusula * profundidade máxima dos termos das cláusulas * nível máximo dos termos das cláusulas: variável V é ligada em cláusula C :- P1, …, Pn sse: t V  C, ou t  i  {1, …, n},  W  V: V  Pi  W  Pi  W ligada em C :- P1, …, Pn. cláusula ligada sse todas suas variáveis são ligadas t ex, p(X) :- q(Z) não ligada, p(X) :- q(X,Y),r(Y,Z),u(Z,W) ligada. nível n(t) de um termo t em cláusula ligada C :- P1, …, Pn: t 0 se t  C, ou 1 + min(n(s)) se t  Pi  s  Pi t ex, n(C, grandfather(G) :- male(G), parent(G,F), parent(F,C)) = 2


Carregar ppt "Programação em Lógica Indutiva Jacques Robin DI-UFPE."

Apresentações semelhantes


Anúncios Google