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

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Construção de listas de decisão Os tópicos anteriores tratam de indução de conceitos que podem ser descritos usando uma única região de decisão Neste tópico.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Linguagens de Programação
Introdução à Programação Lógica
Banco de Dados Dedutivo
Cálculo Relacional Datalog não-recursivo
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
Agentes Baseados em Conhecimento
Agentes Baseados em Conhecimento
Busca Cega (Exaustiva)
PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque.
Jacques Robin, DI-UFPE Prolog: comparação com outras linguagens de programação e de representação do conhecimento Jacques Robin, DI-UFPE.
Programação em lógica e lógica
Programação em Lógica Indutiva
Programação em Lógica Indutiva
Prolog: Predicados Built-in 2
Jacques Robin, Francisco Carvalho, Flávia Barros
APRENDIZAGEM COM CONHECIMENTO A PRIORI
1 Projeto Filtragem de Mensagens Eletrônicas Disciplina: Inteligência Artificial Simbólica Professores: Geber Ramalho e Jacques Robin.
Programação em Lógica Indutiva
FACENS – Engenharia da Computação Inteligência Artificial
FACENS – Engenharia da Computação Inteligência Artificial
Programação Lógica: PROLOG
Sistema Progol TÉCNICAS E HEURÍSTICAS. Progol – Tópicos Definição do sistema; Declarações de Modo; Construção da cláusula mais específica; Algoritmo de.
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
Aula Prática - Prolog Sistemas Inteligentes /~if684
Prolog Programação Lógica Ícaro A. Souza.
Sistemas Inteligentes
Aula Prática - Prolog Sistemas Inteligentes /~if684
Aula prática - análise contextual
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Agentes Baseados na Lógica Proposicional
Indução de Árvore de Decisão
Learning Sets of Rules Tom Mitchel (cap. 10)
Agentes Baseados em Conhecimento
Aprendizado de Máquina - Introdução
Sistemas Especialistas
Sistemas Inteligentes
Marcílio C. P. de Souto DIMAp/UFRN
Planejamento Hierárquico Jacques Robin CIn-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema.
Progol: uma extensão indutiva de Prolog Jacques Robin CIn-UFPE.
Semântica de uma fórmula da lógica da 1a ordem via modelo de Herbrand
Estratégias de Resolução
Métodos Formais.
Programação em Lógica Indutiva Jacques Robin DI-UFPE.
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Introdução a Programação em Lógica e Prolog Jacques Robin CIn-UFPE Aula I/II.
Jacques Robin CIn-UFPE Tipologia do conhecimento de saída da mineração de dados.
Aprendizagem por Reforço Alexandre Luiz G. Damasceno.
Programação Lógica com Prolog
Resolução de Problemas de Busca
Decidibilidade, Corretude, Completude, Consistência
Prof. Anne Magály de Paula Canuto
REVISÃO Prof. Mário Dantas
Elsa Carvalho 262 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Negação Com os.
Inteligência Artificial I
Programação em Lógica Indutiva
HAC 1 MD - junho/2008 Tecnologias de suporte à Mineração de Dados Gerenciamento de dados Data Warehouse OLAP Arquiteturas Visualização Sistemas de Suporte.
Métodos Formais Juan Andrés Mussini.
Classificação de Textos
Aprendizado por Indução
Aprendizagem Simbólica
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1 Planejamento Baseado em Lógica André Novaes CIn - UFPE.
1 Lógica de Predicados BCC101 Matemática Discreta I.
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentação:

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

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

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 * PL com Restrições (CLP, BD de restrições): Restrições instanciadas  Restrições abstrata |= Restrições instanciadas (mais numerosas)  Restrições abstratas (menos numerosas e menos abstratas) Conhecimento prévio em extensão  Conhecimento prévio em intenção |= Novo conhecimento comprovado em extensão  Novo conhecimento comprovado em intenção

Programação em Lógica Indutiva: tarefa genérica * Dados: exemplos positivos (Xi,f(Xi)) exemplos negativos (Xj,  f(Xj)) conhecimento prévio B (regras) viés de aprendizagem (restrições sobre forma das regras) * Aprende hipótese H (regras) tal que: ~  Xi,f(Xi), Xi  B  H |= f(Xi) ~  Xj,f(Xj), Xj  B  H |= f(Xj) H verifica restrições do viés de aprendizagem ~ definido por limiar de tolerância ao ruído * Linguagem 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)).

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

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,...)

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

Aprender relação abstrata com atributos ou lógica proposicional 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: daughter(D,P) :- female(D), parent(P,D), D = {1,2,3,4,5}, P = {1,2,3,4,5}. Limitação: name6 = maria female6 = T parent56 = T |  daughter65

Aprender relação abstrata 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).

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).

Semântica monótona e não-monótona * Com: B = Base de conhecimento prévio H = base de conhecimento Hipotético aprendido D+ = base de Dados (exemplos) positivos D- = base de Dados (exemplos) negativos * ILP monótona: B  H  D+ completude  (B  H  D-) consistência * ILP não monótona: B  H  D+ completude  (B  H  D-) consistência

Generalizacão x Especialização Generalização (busca bottom-up) * parte da hipótese a mais específica: um exemplo + * iterativamente a generaliza * aplicando regras de indução * até a 1a que cobre: todos os exemplos positivos - taxa de erro nenhum exemplo negativos - taxa de erro Especialização (busca top-down) * parte da hipótese a mais geral: * c(…,X,…) :-. * iterativamente a especializa * aplicando regras de dedução * até a 1a que cobre: todos os exemplos positivos - taxa de erro nenhum exemplo negativos - taxa de erro

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)

 -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 e acrescentar premissa * (G  -generaliza S)  (G |= S) -- “G entails S” * mas (G |= S)  (G  -generaliza S) * contrex, G: humano(paiDe(H)) :- humano(H). S: humano(paide(paiDe(H))) :- humano(H). G |= S, porém G não  -generaliza S 

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 Hms tal que: t Hms  B |= D+ (e Hms  B |  D-) * Percorre reticulado de cima para baixo em largura 1a * Cada passo implementa uma abordagem gerar & testar gerar: todas as hipóteses Hn em L(H) refinando a hipótese atual testar: função heurística de: t número de D+ tal que: Hn  B |= D+ t número de D- tal que: Hn  B |= D- t tamanho de Hn

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)....

Generalização mínima relativa * Generalização mínima de 2 termos T e L (literais): substituição dos sub-termos que não se casam com variáveis ex, lgg(daughter(mary,ann),daughter(eve,tom)) = daughther(D,P) unificação inversa * Generalização mínima de 2 cláusulas: lgg(C1 :- P1, …, Q1., C2 :- P2, …, Q2) = lgg(C1,C2) :- lgg(P1,P2), …, lgg(Q1,Q2). ex, lgg(daughter(mary,ann) :- female(mary),parent(ann,mary)., daughter(eve,tom) :- female(eve),parent(tom,eve).) = = daughter(D,P) :- female(D), parent(P,D). * Generalização mínima de 2 termos C1 e C2 relativa a base de conhecimento prévio BCP = {D1, …, Dn}: rlgg(C1,C2) = lgg(C1 :- D1, …, Dn., C2 :- D1, …, Dn)

Busca bottom-up com generalização mínima relativa: exemplo Com BCP = {parent(ann,mary). parent(ann,tom). parent(tom,eve). parent(tom,ian). female(ann). female(mary). female(eve).} e BDE+ = {daughter(mary,ann)., daughter(eve,tom)}. rlgg(daughter(mary,ann)., daughter(eve,tom).) = lgg(daughter(mary,ann) :- BCP., daughter(eve,tom) :- BCP. ). = lgg(daughter(mary,ann), daughter(eve,tom)) :- lgg(parent(ann,mary), parent(ann,mary)), lgg(parent(ann,mary), parent(ann,tom), lgg(parent(ann,mary), parent(tom,eve),... lgg(female(mary), female(eve)), lgg(female(eve), female(eve)). = daughter(D,P) :- BDE, parent(ann,D0), parent(P,D), parent(P1,D1), parent(P2,D2), parent(P3,D3), parent(P4,D4), female(D1), female(D2), female(D). = daughther(D,P) :- parent(P,D),female(D).

Resolução inversa em V * Absorção: * Identificacão: * Limitação: vocabulário fixo de predicados

Exemplo de resolução inversa em V: encadeamento de 2 absorções E1: daughter(mary,ann). B1: parent(ann,mary). B2: female(mary). H1: daughter(mary,P) :- parent(P,mary). H2: daughter(D,P) :- parent(P,D), female(D). :{ann/P} :{mary/D} q1 = b21 = parent q2 = female p1 = p2 = daughter a11 = b11 = a21 = T

Resolução inversa em W: invenção de predicados * Intra-construção: * Inter-construção: * Limitações: incapacidade em inverter derivação envolvendo várias vezes a mesma cláusula hipotética complexidade da busca aumenta com conhecimento a priori ex, intra-construção: 2 cláusulas  3 cláusulas

Exemplo de invenção de predicado com intra-construção ancestor(A,D) :- ancestor(A,F), father(F,D). ancestor(A,D) :- ancestor(A,M), mother(M,D). ancestor(A,D) :- ancestor(A,P), q(P,D). q(P,D) :- father(P,D). q(P,D) :- mother(P,D). :{F/P}:{M/P} q = parent b1 = father p = a1 = ancestor c1 = mother

Viés sobre L(H): motivação * Se L(H) contem qualquer cláusula de Horn gerável: por refinamento da cláusula sem premissa por resolução inversa de 2 elementos de B U D+ * Então: espaço de busca (seja bottom-up ou top-down) grande demais para ser explorado eficientemente as vezes até infinito * Viés sobre L(H): meta-conhecimento heurístico a priori permitindo limitar espaço de busca

Viés sintático sobre L(H) * Conhecimento estrutural a priori sobre as hipóteses: preciso e específico do domínio ou heurístico e geral * Dimensões: explícito/implícito parametrizado/declarativo * Formalismos de declaração explícito de bias sintático: gramática de cláusulas definidas (DCG -- Definite Clause Grammar ) t formalismo built-in da programação em lógica para parsing and geração de linguagens) cláusulas da 2a ordem

Exemplo de viés sintático declarado com DCG head(father(P,C)). head(mother(P,C)). body(father(P,C)) --> m(P),f(P),[parent(P,C)]. body(mother(P,C)) --> m(P),f(P),[parent(P,C)]. m(M) --> [ ]. m(M) --> [male(M)]. f(M) --> [ ]. f(M) --> [female(M)].

Exemplo de restrições sintáticas declaradas com cláusulas da 2a ordem Q(P,F) :- R(P,F). Q(P,F) :- S(P). Q(P,F) :- S(P), R(P,F). Q(P,F) :- S1(P), S2(P), R(P,F). * Substituição da 2a ordem *  = {Q/father,S/male,R/parent} * seleciona cláusula: father(P,F) :- male(P), parent(P,F).

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

Viés semântico sobre L(H): tipos e modos * Tipos: const(a). const(b). … clist([]). clist([H|T]) :- const(H), clist(T). * Modos: restrições sobre predicados na conclusão (modeh) ou premissa (modeb) das regras número de vezes que um predicado pode ser satisfeito tipos dos seus argumentos instanciação dos seus argumentos (constante #, variável de entrada + ou variável de saída -) ex: modos para append :- modeh(1,append(+clist,+clist,-clist))? :- modeh(1,append([+const|+clist],+clist,[-const|-clist]))? :- modeh(1,append(#clist,+clist,-clist))? :- modeb(1,append(+clist,+clist,-clist))?

Viés semântico sobre L(H): determinação * h(…,X0i,...) :- p1(...,X1j,…), …, pn(…,Xnk,…). determinada dados um conhecimento a priori B e exemplos D sse: as instanciações dos X0j, …, Xij restringem os X(i+1)j a um único valor, ie,  i  {1,…,n},  Xij  pi,  Xkl, k < I,  ! v tal que: t Xij/v compatível com Xkl/vkl * Exemplo: D: parent(jef,paul). parent(jef,ann). male(paul). female(ann). hasFather(C) :- parent(P,C). determinada: P/jef isFather(F) :- parent(F,C). não determinada: C/{paul;ann} * Torna aprendizagem eficiente (porém incompleto)

Preferências sintáticas e probabilísticas *  (H) = número de bits na codificação mínima de H * Thm: H que minimiza  (H) em L(H) também maximiza P(H|B  E) ie, a hipótese mais concisa sempre corresponde a mais verossímil * Prova: Thm de Bayes + Thm de Shannon * Justificação téorica do navalha de Occam

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