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

3 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

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

5 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

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

7 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

8 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

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

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

11 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

12 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

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

14  -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 

15 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

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

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

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

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

20 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

21 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

22 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

23 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

24 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

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

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

27 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

28 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))?

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

30 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

31 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


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

Apresentações semelhantes


Anúncios Google