Introdução a programação em lógica Jacques Robin, DI-UFPE jr.
Programação em Lógica Indutiva Jacques Robin DI-UFPE.
Transcript of Programação em Lógica Indutiva Jacques Robin DI-UFPE.
Programação em Lógica IndutivaProgramação em Lógica Indutiva
Jacques RobinDI-UFPE
Aprendizagem Indutivo
Programação em Lógica
Programação em Lógica Indutiva (IPL)
O que é ILP (Inductive Logic O que é ILP (Inductive Logic Programming)?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
LearningFeedback
MLP
Kohonen
ID3
VSEBL
ILP
Supervised
Reinforcement
Unsupervised
Prior Knowlegde
Probas
L
earn
ing P
ara
dig
m
Sym
bolic
Sta
tC
onex
Evol
Fuzz
y
Num
eri
c
Logic
CBR
Clustering
BNGA
Logic
PRAM
Regression
kNN
Learned Function
L0 L1
f:{0,1} {0,1}f:RR f:N N
Linear ¬Linear
None
Programação em LógicaProgramação em Lógica
Teoria Lógica = Especificação Formal = Implementação = Programa = BD dedutivo = Base de Conhecimento (BC) Programar = 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
Executar programa = consultar BDD = provar teorema
ILP na mapa da programação em lógicaILP na mapa da programação em lógica
Inductive
Pure
Deductive
Hybrid
||
OO
CSP
GPPLDBQL
LP
Proba
DDB
DOOD
Florid
Life
Progol
Foil
Cigol
PrologDatalog
MetalogEqlog
logParlog
Logtalk
Eclipse
CDB
Types Z
R
FD
CLP(R)
Disco
Revisão de Deductive Logic Revisão de Deductive Logic Programming (DLP): Lógica da 1a ordemProgramming (DLP): Lógica da 1a ordem
Fórmula Fórmula-Atômica | (Fórmula) | Fórmula
| Quantificador Variável, ... Fórmula,| Fórmula Conectivo Fórmula
Fórmula-Atômica Predicado(Termo,...) | Termo = Termo
Termo Função(termo,...) | Constante
| Variável
Conectivo | | | Quantificador | | !Constante wumpus | agente | flecha | ...Variável X | Wumpus | Agente | ...Predicado adjacente | vivo | ...Função em | brisa | ...
Revisão de DLP: unificaçãoRevisão de DLP: unificação Substituição de variáveis de um termo (ou formula) f:
• conjunto de pares Var/termo Unificação de 2 termos f e g:
• substituição S das variáveis de f e g tal que S(f)=S(g)• 2 resultados:
S r=S(f)=S(g)
Exemplos:?- prof(X,disc(Y,dept(di,ufpe))) = prof(geber,disc(ia,Z)).X = geber, Y = ia, Z = dept(di,ufpe).? prof(X,disc(X,dept(di,ufpe))) = prof(geber,disc(ia,Z))fail
Unificador mais geral: com menor número de variáveis instanciadas
Substituição mínima: com menor número de pares Var/const
Revisão de DLP: Cláusulas de HornRevisão de DLP: Cláusulas de Horn
Formulas de L1 da forma: Muitas mas nem todas as formulas de L1 tem
conjunto equivalente de cláusulas de Horn, cex:
Lógica de Horn:
Geralmente, programação em lógica: • baseada em• usa hipótese do mundo fechado, ie.,
tudo que não é mencionado nem deduzível suposto falso
• com negação por falha nas premissas, ie, not p(X) verificado sse p(X) falha verificado sse no BDE ou na
conclusão de uma regra com premissas verificadas
n1n11H1 hhfHorn,declaúsulash,h/LfL
CPP n1
Y)kills(X,animal(Y)r(X)animalLoveYX,
H1L
P(X) P(X)not P(X)
Revisão de DLP: ResoluçãoRevisão de DLP: Resolução Forma geral:
Exemplos:
),...)Y(...,Q...,...)Y(...,Q,...)X(...,P...,...)X(...,P(),...)XC(...,(
,...))Y(...,((,...))X(...,((,...},/YX{...,
,...)Y(...,Q...,...)Y(...,Q,...)Y(...,P
,...)X(...,P...,...)X(...,P...,...)X(...,P,...)XC(...,
mim
1i1
mim
1i1
ci
kik
kik
kj
ki
mjm
1j1
kjk
mim
kik
1i1
ci
tom)father(X,X)(bob,grandChild
Z/tom}{Y/bob,Y)father(Z,Z)father(X,X)(Y,grandChild
Tbob),father(tom
Tshannon)(bob,grandChild
}{X/shannontom)father(X,X)(bob,grandChild
Ttom)nnon,father(sha
Revisão de DLP: refutação usando Revisão de DLP: refutação usando resoluçãoresolução
West é criminoso?West é criminoso? Da lógica da 1a ordem para PrologDa lógica da 1a ordem para Prolog
Em L1: 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 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).
West é criminoso?West é criminoso? Prova em PrologProva 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(america).enemy(nono,america).nation(nono).
criminal(west)? <- yes.•american(west)? -> yes.•weapon(W)? <- W = m1.
missile(W)? -> W = m1.•nation(N)? -> N = america.•hostile(america)? <- no.
enemy(america,america)? -> no.•backtrack: nation(N), N \ {america}? -> N = nono.•hostile(nono)? <- yes.
enemy(nono,america)? -> yes.•sells(west,nono,m1)? <- yes.
owns(nono,m1)? -> yes.missile(nono,m1)? -> yes.
Motivação de ILP: porque querer induzir Motivação de ILP: porque querer induzir representações em lógica da 1a ordem?representações em lógica da 1a ordem?
ID3, version-space, redes neurais e redes bayesianas:• induzem representações em lógica de ordem 0• não conseguem induzir relações abstratas e definições
recursivas• nem conseguem usar essas como conhecimento a priori do
domínio Tarefa de DLP :
• dados fatos Xi e conhecimento a priori B• deduzir conclusões f(Xi) tal que: Xi,f(Xi) Xi B |= f(Xi)
Tarefa de ILP: indução como inverso de dedução• dados exemplos (Xi,f(Xi)) e conhecimento a priori B• aprende hipótese H tal que: Xi,f(Xi) Xi B H |= f(Xi)• com Xi, f(Xi), B e H representados em L1
Aprender relação abstrata com ILP: Aprender relação abstrata com ILP: daughter(D,P) = f(father,female,male,mother).daughter(D,P) = f(father,female,male,mother). 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).
Objetivo: Induzir: daughter(D,P) :- female(D), parent(P,D).
Aprender daughter(D,P) com atributos Aprender daughter(D,P) com atributos (L0)(L0)
Conhecimento a priori (extensional)name1 = ann…name5 = tomfather11 = F…father31 = T…father54 = Tmother11 = F…mother55 = Ffemale1 = T…female5 = Fmale1 = F...
Exemplos Positivos:
daughter42 = Tdaughter13 = T
Negativos:daughter11 = F…daughter44 = F
Consegue induzir: daughter(D,P) :- female(D),
parent(P,D), D = {1,2,3,4,5}, P = {1,2,3,4,5}.
Aprender definição recursiva com ILP: Aprender definição recursiva com ILP: ancestorancestor = f(parent, ancestor). = f(parent, ancestor).
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:ancestor(tom,sue).ancestor(eve,sue).... 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).
Dimensões de ILPDimensões de ILP
Tarefa:• Grau de automação: interativo x autónomo• Incremental (na apresentação dos dados): sim/não• Semântica: monótona normal, monótona definita, não-monótona• Descoberta de predicados: com/se• Entrada: D+, D+^D-, D+^B, D+^D-^B• Saída: um x vários predicados, LP x CLP
Abordagem:• Operadores: -subsumption, rlgg, resolução ou implicação inversa• Restrições da linguagem de hipótese L(H) (language bias):
sintáticas x semânticas parametrizadas x declarativas
• Estratégia de busca: Global: especialização (top-down) x generalização (bottom-up) Local (preference bias):
Algoritmo genérico de ILPAlgoritmo genérico de ILP
inicialize fila de hipótese FH repetir
• delete H de FH• escolha regras de inferências R1, …, Rk em R• induz H1, …, Hn aplicando R1, …, Rk a H• coloca H1, …, Hn em FH• pode FH
até satisfazer critérioDeParada para FH
Qualquer algoritmo de ILP:• é uma instância desse algoritmo • com definições e implementações particulares para:
inicialize, delete, escolha, pode e critérioDeParada
Generalizacão x EspecializaçãoGeneralizacão x Especialização
Generalização (busca bottom-up)
parte da hipótese a mais específica: um exemplo +
iterativamente generaliza-la aplicando regras de indução até a 1a que cobre:
• todos os exemplos +• nenhum exemplo -
inicializa: FH <- {h0}, h0 D+
deleta: escolha: pode: critérioDeParada:
Especialização (busca top-down)
parte da hipótese a mais geral:
c(…,X,…) :-. iterativamente especializa-la aplicando regras de dedução até a 1a que cobre:
• todos os exemplos +• nenhum exemplo -
inicializa: FH <- {c(…,X,…) :-.}.
deleta: escolha: pode: critérioDeParada:
Semântica monótonaSemântica monótona
Propriedades:• Consistência a priori: B D- |= F• Necessidade a priori: B | F• Consistência a posteriori: B D- H |= F• Completude a posteriori: B H |= D+
Casos particulares:• Monótona definida:
Monótona normal com B e H limitado a cláusulas definidas, ie, c(X,Y) :- p(X), q(Y) mas não T :- p(X), q(Y).
• Monótona baseada em exemplos: Monótona definida com todos D fatos instanciados (unit ground clauses) ie, c(a,b) ou not c(a,b) mas nem c(X,b), nem c(a,b) :- p(a),q(b).
Modelos de HerbrandModelos de Herbrand
M(L) modelo de Herbrand de um programa lógico L sse:• M(L) = {p(…, c, …) | p pred(L) c const(L) L |= p(…,c,
…)} = todos os fatos instanciados formados a partir de predicados e constantes de L e deriváveis a partir de
L Exemplo: L: male(paulo). female(ana). male(joao).
parent(paulo,joao). parent(ana,joao). father(F,C) :- parent(F,C), male(F). mother(M,C) :- parent(F,C), female(M). M(L): male(paulo). female(ana). male(joao). parent(paulo,joao). parent(ana,joao). father(paulo,joao). mother(ana,joao).
Thm: L sem not M(L) mínimo
Semântica não-monótonaSemântica não-monótona
Pressupostos:• D+ B • D- = L(H) - B via hipótese do mundo fechado• B limitado a cláusulas definidas• M+(B) = modelo de Herbrand mínimo de B
Propriedades:• Validade: H M+(B)• Completude: H |= M+(B)• Minimal: G H G inválido ou incompleto
Mais conservadora do que semântica monótona:• B = {bird(tweety). bird(oliver).}• D+ = {flies(tweety).}• Com semântica monótona, flies(X) :- bird(X). H• Com semântica não-monótona, flies(X) :- bird(X). H
Regras e operadores para ILPRegras e operadores para ILP
Especialização (refinamento) baseado em -Subsumption
Relative Least General Generalization (RLGG) Resolução inversa em V Resolução inversa em W (invenção de predicados) Implicação inversa Derivação inversa (inverse entailment)
-Generalização (-Generalização (-Subsumption)-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
Generalização mínima relativaGeneralizaçã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 BDE = {D1, …, Dn} a priori:
• rlgg(C1,C2) = lgg(C1 :- D1, …, Dn. , C2 :- D1, …, Dn)
Generalização mínima relativa: exemploGeneralização mínima relativa: exemplo
Com BDE = {parent(ann,mary). parent(ann,tom). parent(tom,eve). parent(tom,ian). female(ann). female(mary). female(eve).}
rlgg(daughter(mary,ann). , daughter(eve,tom).)
= lgg(daughter(mary,ann) :- BDE. , daughter(eve,tom) :- BDE. ).
= 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).
Em GOLEM: premissas redundantes podadas usando bias semântico limitando
busca a cláusulas determinadas.
Resolução inversa em VResolução inversa em V
Absorção:
Identificacão:
Para L1: necessidade de inverter unificação:• achatar cláusulas introduzindo um novo predicado de
aridade n+1 para cada função de aridade n• ex, member(a,[a,b]) ou member(a,.(a,.(b,nil))) chateado em• member(U,V) :- a(U), dot(V,U,X), dot(X,Y,Z), b(Y), nil(Z).• unificação de 2 cláusulas achatadas reduz-se a casamento
de padrão das suas premissas.
Limitação: vocabulário fixo de predicados
.b,...,b -q,:p
.b,...,b ,a,...,a -: p .a,...,a :q
n1
n1n1n1
.b,...,b -:q
.b,...,b ,a,...,a -: p q.,a,...,a :p
n1
n1n1n1
Exemplo de resolução inversa em V:Exemplo de resolução inversa em V:encadeamento de 2 absorções 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 = parentq2 = femalep1 = p2 = daughtera11 = b11 = a21 = T
11
12
Resolução inversa em W:Resolução inversa em W:invenção de predicadosinvençã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
.c,...,c -:q q. ,a,...,a :p .b,...,b -:q
.c,...,c ,a,...,a :p .b,...,b ,a,...,a -: p
n1n1n1
n1n1n1n1
.c,...,cr, -:p q. ,a,...,a :r .b,...,br, -:p
.c,...,c ,a,...,a :p .b,...,b ,a,...,a -: p
n1n1n1
n1n1n1n1
Exemplo de invenção de predicado Exemplo de invenção de predicado com intra-construçãocom 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 = fatherp = a1 = ancestor c1 = mother
11 1
2
Busca top-down Busca top-down em reticulado de refinamentoem 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:
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: número de D+ tal que: Hn B |= D+ número de D- tal que: Hn B |= D- tamanho de Hn
Busca top-down em reticulado de Busca top-down em reticulado de refinamento: exemplorefinamento: 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).
... ...
Derivação inversaDerivação inversa
Como: • B H |= D B D |= H B D |= M(B D) |= H H |= M(B D)• G -generaliza S G |= S
Então, H pode ser computado em 2 passos:• 1: Deduz M(B D) a partir de B e D • 2: Calcula H = {h L(H) | h -generaliza M(B D)}
Restrições de L(H): motivaçãoRestrições de 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
Restrição de L(H): • meta-conhecimento heurístico a priori • permitindo limitar espaço de busca
Restrições sintáticas de L(H)Restrições sintáticas de 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:• conjuntos de cláusulas e predicados• gramática de cláusulas definidas (DCG -- Definite Clause
Grammar) formalismo built-in da programação em lógica para parsing and
geração de linguagens)
• cláusulas da 2a ordem
Exemplo de restrições sintáticas Exemplo de restrições sintáticas declaradas com conjuntos de cláusulas e declaradas com conjuntos de cláusulas e
predicadospredicados
{ father(F,C) :- { male(F); female(F) }, parent(F,C); mother(M,C) :- { male(M); female(M) }, parent(M,C) }
{ father(F,C) :- male(F), female(F), parent(F.C); father(F,C) :- male(F), parent(F,C); father(F,C) :- female(F), parent(F.C); father(F,C) :- parent(F,C); mother(M,C) :- male(M), female(M),
parent(M,C); mother(M,C) :- male(M), parent(M,C); mother(M,C) :- female(M), parent(MÇ); mother(M,C) :- parent(M,C);
Exemplo de restrições sintáticas Exemplo de restrições sintáticas declaradas com DCGdeclaradas 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 Exemplo de restrições sintáticas declaradas com cláusulas da 2a ordemdeclaradas 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).
Restrições sintáticas parametrizadasRestrições sintáticas parametrizadas
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: V C, ou 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 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: 0 se t C, ou 1 + min(n(s)) se t Pi s Pi ex, n(C, grandfather(G) :- male(G), parent(G,F), parent(F,C)) = 2
Restrições semânticas de L(H): tipos e Restrições semânticas de L(H): tipos e modosmodos
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))?
Determinação:
Restrições semânticas de L(H): Restrições semânticas de L(H): determinaçãodeterminaçã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:
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 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
PROGOL: nas dimensões de ILPPROGOL: nas dimensões de ILP Tarefa:
• Grau de automação: interativo ou autônomo• Incremental (na apresentação dos dados): sim ou não• Semântica: não-monótona• Descoberta de predicados: ?• Entrada: D+ ou D+^D- ou D+^B ou D+^D-^B• Saída: um ou vários predicados, LP
Abordagem:• Operadores: derivação inversa, -generalização• Restrições da linguagem de hipótese L(H) (language
bias): sintáticas e semânticas parametrizadas e declarativas
• Estratégia de busca: Global: top-down, mais bottom-up bounded Local: poda espaço usando função heurística f(H)
estimando poderDePredição(H) x concisão(H)
PROGOL: algoritmoPROGOL: algoritmo
Instância do algoritmo genérico de ILP com: inicialize: H = {obj(…,X,…) :- }. delete: dE, B H |= E escolha: H que maximiza f(H), função heurística de
busca aproximando (poderDePredição(H),concisão(H))
pode: • hipóteses mais específicas que M(B D)• hipóteses que não pode mais melhorar f(H)
critérioDeParada:• |falsos+| + |falsos-| < limiar de ruído, ou• E =
PROGOL: função heurística de buscaPROGOL: função heurística de busca
f(H) = (P(p-n-c-h+1))/p, com:• P = |E+|• p = |E+ deduzidos de H| (verdadeiros +)• n = |E- deduzidos de H| (falsos -)• c = |H| (em número de literais)• h = |variáveis de saída não restritas|
PROGOL: construir hipótese + específica PROGOL: construir hipótese + específica % Restrições semânticas de L(H):- set(r, 10000) % max Prolog unif:- set(h, 100) % max Prolog search
depth:- modeh(1,implies5(+bool5, +bool5, -
bool5).:- modeb(1,or5(+bool5, +bool5, -bool5).:- modeb(1,not5(+bool5, -bool5).bool5(X) :- integer(X), X => 0, X <= 4.
% B: conhecimento a priori not5(I,Out) :- Out is 4 - I.or5(X,X,X).or5(I,J,Out) :- I > J, Out is I.or5(I,J,Out) :- I < J, Out is J.
% E+: exemplos positivosimplies5(4,4,4).implies5(4,0,0).implies5(0,4,4).implies5(1,2,3)% E-: exemplos negativos:- implies5(2,0,0).:- implies5(4,2,4).
1/ d= implies5(4,4,4) mode declar or5(4,4,4) M(B d) not5(4,0) M(B d) or5(4,0,4) M(B d) or5(0,4,4) M(B d) or5(0,0,0) M(B d) not5(4,0) M(B d) M(B d) = or5(4,4,4) not5(4,0) or5(4,0,4) or5(0,4,4) or5(0,0,0) not5(4,0) implies5(4,4,4). maxspec{h | h H |= e} = or5(A,A,A)
not5(A,B) or5(A,B,A) or5(B,A,A) or5(B,B, B)
not5(B,A) implies5(A,A,A).
CProgol Version 4.4|- consult(implies5a)?[No contradictions found]yes|- generalise(implies5/3)?[Generalising implies5(4,4,4).][Most specific clause is]implies5(A,A,A) :- or5(A,A,A), not5(A,B), or5(A,B,A), or5(B,A,A), or5(B,B,B),
not5(B,A).
PROGOL: Generalizar hipótese + PROGOL: Generalizar hipótese + especifica 1 especifica 1 % Restrições semânticas de L(H):- set(r, 10000) % max Prolog unif:- set(h, 100) % max Prolog search depth:- modeh(1,implies5(+bool5, +bool5, -
bool5).:- modeh(1,or5(+bool5, +bool5, -bool5).:- modeh(1,not5(+bool5, -bool5).bool5(X) :- integer(X), X => 0, X <= 4.
% B: conhecimento a priori not5(I,Out) :- Out is 4 - I.or5(X,X,X).or5(I,J,Out) :- I > J, Out is I.or5(I,J,Out) :- I < J, Out is J.
% E+: exemplos positivosimplies5(4,4,4).implies5(4,0,0).implies5(0,4,4).implies5(1,2,3)% E-: exemplos negativos:- implies5(2,0,0).:- implies5(4,2,4).
% Generalising implies5(A,A,A).[C:0,1,0,0 implies5(A,A,A).][C:-5,1,1,0 implies5(A,B,A).] % pruned[C:2,3,1,0 implies5(A,B,B).] % 1st tried [C:0,2,0,1 implies5(A,A,B).] % pruned[C:1,5,2,1 implies5(A,B,C).] % 2nd % Specialising implies5(A,B,B)[C:0,3,1,0 implies5(A,B,B) :- or5(B,B,B).][C:0,3,1,0 implies5(A,B,B) :- or5(B,B,C).][C:0,2,0,0 implies5(A,B,B) :- or5(A,B,B).][C:-2,2,1,0 implies5(A,B,B) :- or5(A,B,A).][C:0,3,1,0 implies5(A,B,B) :- or5(A,B,C).][C:0,2,0,0 implies5(A,B,B) :- or5(B,A,B).][C:-2,2,1,0 implies5(A,B,B) :- or5(B,A,A).][C:0,3,1,0 implies5(A,B,B) :- or5(B,A,C).][C:0,3,1,0 implies5(A,B,B) :- or5(A,A,A).][C:0,3,1,0 implies5(A,B,B) :- or5(A,A,C).][C:0,3,1,0 implies5(A,B,B) :- not5(B,C).][C:0,3,1,0 implies5(A,B,B) :- not5(A,C).][C:-2,3,1,0 implies5(A,B,B) :- not5(B,C), or5(B,C,D).]...[C:-2,3,1,0 implies5(A,B,B) :- or5(A,A,C), not5(C,D).]
PROGOL: Generalizar hipótese + PROGOL: Generalizar hipótese + especifica 2especifica 2
% Specialising implies5(A,B,C)[C:0,5,2,1 implies5(A,B,C) :- or5(A,A,A).]...[C:0,5,2,1 implies5(A,B,C) :- or5(B,B,D).][C:-2,3,1,0 implies5(A,B,C) :- or5(B,B,C), not5(C,D).]...[C:0,4,0,1 implies5(A,B,C) :- or5(A,B,B), not5(B,D).][C:0,5,2,1 implies5(A,B,C) :- not5(A,D).][C:0,5,2,1 implies5(A,B,C) :- not5(B,D).][C:0,4,0,0 implies5(A,B,C) :- or5(B,A,B), not5(A,D), or5(A,D,C).]...[C:-1,4,0,1 implies5(A,B,C) :- or5(A,B,B), not5(B,D), not5(D,E).][C:0,4,1,0 implies5(A,B,C) :- not5(A,D), or5(A,D,C).][C:-1,5,2,1 implies5(A,B,C) :- not5(A,D), or5(A,D,E).][C:2,5,0,0 implies5(A,B,C) :- not5(A,D), or5(B,D,C).] % BINGO![C:-3,3,1,1 implies5(A,B,C) :- not5(A,D), or5(B,D,B).][C:-1,5,2,1 implies5(A,B,C) :- not5(A,D), or5(B,D,E).][122 explored search nodes, f=2,p=5,n=0,h=0][5 redundant clauses retracted]
% Restrições semânticas de L(H):- set(r, 10000) % max Prolog unif:- set(h, 100) % max Prolog search depth:- modeh(1,implies5(+bool5, +bool5, -
bool5).:- modeh(1,or5(+bool5, +bool5, -bool5).:- modeh(1,not5(+bool5, -bool5).bool5(X) :- integer(X), X => 0, X <= 4.
% B: conhecimento a priori not5(I,Out) :- Out is 4 - I.or5(X,X,X).or5(I,J,Out) :- I > J, Out is I.or5(I,J,Out) :- I < J, Out is J.
% E+: exemplos positivosimplies5(4,4,4).implies5(4,0,0).implies5(0,4,4).implies5(1,2,3)% E-: exemplos negativos:- implies5(2,0,0).:- implies5(4,2,4).
PROGOL: exemplo com ruídoPROGOL: exemplo com ruído
Aplicações de ILP para KDD: previsãoAplicações de ILP para KDD: previsão
Outras aplicações de ILP para KDDOutras aplicações de ILP para KDD
Classificação:
Aplicações de ILPAplicações de ILPpara Engenharia de Softwarepara Engenharia de Software
ILP x outros métodos de aprendizagemILP x outros métodos de aprendizagem
Vantagens de ILP? Vantagens dos outros métodos?
Assuntos de pesquisa atual em ILPAssuntos de pesquisa atual em ILP
ReferênciasReferências