CLP(BN): Constraint Logic Programming with Bayes Net Constraints - PowerPoint PPT Presentation

About This Presentation
Title:

CLP(BN): Constraint Logic Programming with Bayes Net Constraints

Description:

CLP(BN): Constraint Logic Programming with Bayes Net Constraints Rodrigo Cunha Cin-UFPE Roteiro Contexto Introdu o BN (Bayesian Networks) PRM (Probabilistic ... – PowerPoint PPT presentation

Number of Views:82
Avg rating:3.0/5.0
Slides: 47
Provided by: cinUfpeB3
Category:

less

Transcript and Presenter's Notes

Title: CLP(BN): Constraint Logic Programming with Bayes Net Constraints


1
CLP(BN) Constraint Logic Programming with Bayes
Net Constraints
Rodrigo Cunha Cin-UFPE
2
Roteiro
  • Contexto
  • Introdução
  • BN (Bayesian Networks)
  • PRM (Probabilistic Relational Modelo)
  • CLP(BN)
  • Exemplo de CLP(BN)
  • Avaliação (Evaluation)
  • Aula Prática
  • Referências Bibliográficas

3
O que é CLP(BN)?
  • Extensão de Prolog que considera probabilidades
    bayesianas sobre termos lógicos como restrições
    na maneira de CLP.
  • Restrições de natureza diferentes do que CLP(FD),
    CLP(R)
  • epistemológica no lugar de ontológica
  • não sobre domínio modelado mas sobre crenças do
    agente sobre domínio
  • Segue esquema geral CLP
  • máquina de inferência inter-laça unificação de
    termos lógicos com resolução de restrições
  • resolvedor de restrições implementa algoritmos
    herdados de redes bayesianas (marginalização,
    simulação estocástica, ..)

4
Contexto
  • Fig Jr.

5
CLP(BN) e Redes Bayesianas
  • CLP(BN)
  • Estritamente mais expressivo que Probabilistic
    Relational Model (PRM)
  • Autoriza recursão
  • PRM
  • redes bayesianas da 1a ordem
  • arcos com CPT não ligam mais proposições, mas
    tabelas relacionais cujos elementos são descritos
    em jargão orientado a objetos
  • resultado da instanciação de PRM via unificação
    de variáveis rede Bayesiana

6
Revisão de PRM
  • Constantes, nomeando objetos de classes
  • Ex ProfSmith pertence a classe Professor, Jones
    pertence a classe Estudante, Bloggs pertence a
    classe Estudante
  • Funções Simples classes -gt imagem finita
  • Ex Inteligencia(Jones) alta, baixa,
    Famoso(ProfSmith) true, false
  • Funções Complexas de classes em classes
  • Ex Orientador(Jones) ProfSmith
  • Informação probabilística especificar pais para
    as funções simples
  • ?x, x?? Estudante ? Parents(Sucesso(x))
    Inteligencia(x), Famoso(Orientador(x))
  • ?x, x?? Estudante ? P(Sucesso(x) true
    Inteligencia(x) alta, Famoso(Orientador(x))
    true) 0.95

7
Revisão de PRM
Professor
Fame(ProfSmith)
Fame
Funding(ProfSmith)
Funding
Intelligence(Jones)
Intelligence(Bloggs)
Student
Inteligence
Success(Jones)
Success(Bloggs)
Success
Advisor
8
Jargões relacionais e OO
  • Tradução (E-R para UML)

Databases Relational Logic
Table Class
Tuple Object
Standard Field Descriptive Attribute
Foreign Key Field Reference Slot
9
Programa CLP(BN)
Cláusula
A
H
B
Restrição (parte probabilística)
Cabeça da cláusula.
Conjunção de literais
10
Programa CLP(BN) notação Grade
reg_grade (K, skG (K,D,I)) - reg_course
(K,C), reg_student (K,S), course_diff
(C,D), student_intell (S,I).
11
Programa CLP(BN)
CPT de uma cláusula equivalente a uma redes
bayesianas, onde cada nó é uma variável aleatória
Variável
Influência causal direta
12
Exemplo CLP(BN) x PRM Dar uma de Gisele nos
fontes
M
Professor
Teaching-Ability
Popularity
M
1
1
M
M
Registration
AVG
Satisfaction
Student ranking depende da avg de grades, ou
seja, todas grades
AVG
Course rating depende da média da satisfação dos
estudantes no curso, ou seja, todas satisfações..
Grade
13
Representar PRM com CLP(BN)
  • Como converter BD relacional em programa lógico?
  • 2 opções
  • Um predicado para cada tabela relacional
  • usual, BD dedutivas
  • Um predicado binário para cada campo não chave
  • CLP(BN)
  • Para cada campo do BD
  • regra lógica que representa os seus pais,
  • e a distribuição de probabilidade condicional.

14
Expressar BD de PRM como fatos CLP(BN)
Course
Professor
Key Professor Rating Difficulty
cs1 cs2 Sue David h h h l
Key Popularity Ability
Sue David h l h l
Registration
Student
Key Course Student Satis-faction Grade
r1 r2 r3 cs1 cs2 cs1 Sam Sam Terry h l h a c b
Key Intelligence Rank
Sam Terry m h m h
15
tabelas binárias
16
Expressar BD de PRM como fatos CLP(BN)
  • prof_pop(sue,h). prof_abil(sue,h).
  • prof_pop(david,l). prof_abil(david,l).
  • course_prof(cs1,sue). course_rate(cs1,h). course_d
    iff(cs1,h).
  • course_prof(cs2,david). course_rate(cs2,h). course
    _diff(cs2,l).
  • student_intell(sam,m). student_rank(sam,m).
  • student_intell(terry,h). student_rank(terry,h).
  • reg_course(r1,cs1). reg_student(r1,sam). reg_sat(r
    1,h).
  • reg_course(r2,cs2). reg_student(r2,sam). reg_sat(r
    2,l).
  • reg_course(r3,cs1). reg_student(r3,terry). reg_sat
    (r3,h).
  • reg_grade(r1,a).
  • reg_grade(r2,c).
  • reg_grade(r3,b).

17
Expressar CPT de PRM como regras CLP(BN)
  • O Corpo de cada regra CLP(BN) é construído em
    três estágios
  • Estágio Relacional
  • Estágio de Agregação
  • Estágio CPT

18
Estágio Relacional
  • Regras com variáveis compartilhadas representam
    de seqüência de chave estrangeira
  • Cada passo gera um termo do tipo ri(X,Y), onde
  • X representa a chave primária de R
  • Y representa o i-ésimo campo da relação R.

19
Exemplo
Professor
Course
Key Popularity Ability
Sue David h l h l
Key Professor Rating Difficulty
cs1 cs2 Sue David h h h l
Student
Registration
Key Intelligence Rank
Sam Terry m h m h
Key Course Student Satis-faction Grade
r1 r2 r3 cs1 cs2 cs1 Sam Sam Terry h l h a c b
reg(Key, Student) reg(Key,Course) course(Key,Profe
ssor) professor(Key,Ability)
20
Estágio de Agregação
  • Este estágio é para variáveis que tem múltiplas
    ligações.
  • Podemos ter todas as ligações de Ability através
    do predicado built-in findall.
  • Por exemplo

course_rating (K, Rating) - findall (S,
(reg_course(R,K) , (reg_sat(R,S)), Sats),
avg(Sats,AvS).
21
Convertendo PRM em CLP(BN)Estágio CPT
22
Resultado dos 3 estágios
  • reg_grade(K, Grade)
  • reg_course(K,C), reg_student(K,S),
    course_diff (C,D), student_intell (S,I).
  • Grade grade(Reg)
    with p(
  • a,b,c,
    0.5,0.1,0.8,0.3

  • 0.4,0.5,0.1,0.6,

  • 0.1,0.4,0.1,0.1 , D,I).
  • Neste caso D e I só podem assumir dois valores.

23
Professor Clauses Botar probabilidade Fonte
menos, juntar pedaços em menos transparencias
prof_abil (K, skA(K)).
  • prof_pop (K, skP(K,A))-
  • prof_abil (K,A).

24
Registration Clauses
reg_grade (K, skG (K,D,I))- reg_course
(K,C), reg_student (K,S), course_diff
(C,D), student_intell (S,I).
25
Registration Clauses
  • reg_sat (K, sks(K,A,G))-
  • reg_course (K,C),
  • course_prof (C,P),
  • prof_abil (P,A),
  • reg_grade (K,G).

26
Course Clauses
  • course_rating (K, skR (K,AvS))-
  • findall (S,
  • (reg_course(R,K),
  • (reg_sat (R,S)),
  • Sats),
  • avg(Sats,AvS).
  • course_diff(K, skD(K)).

27
Student Clauses
  • student_intell (K, skI (K)).
  • student_rank(K,skSR(K,AvG))-
  • findall(G,
  • (reg_student(R,K),
  • reg_grade (R,G)),
  • Grades),
  • avg (Grades, AvG).

28
Consulta
  • reg_grade(r2, Grade), ,,,,,
  • Qual é distribuição de probabilidade dos valores
    da nota de sam em cs2?
  • Resulta numa rede de restrições. CLP(BN) cria uma
    rede de restrições com grade(r2) dependendo de
    dif(course) e int(student). CLP(BN) responderá
    com a distribuição de probabilidade marginal de
    grade(r2).

29
Avaliação (Evaluation)
  • A maior aplicação de sistemas Bayesianos é
    condicionar evidências, por exemplo se um
    estudante está numa classe avançada podemos
    querer saber sua inteligência.
  • ?- grade(r2, a), intelligence(bob, I).
  • O usuário introduz evidências através da classe
    r2. Na prática o sistema executa construindo um
    Rede de Bayes com duas variáveis. A rede é
    avaliada através da técnica de eliminação de
    variável (Seminário de Hugo).

30
Avaliação (Evaluation)
  • Uma consulta em CLP(BN) é uma consulta Prolog,
    conjunção de literais positivos.
  • Uma ou mais provas construídas através de
    resolução, em cada passo de resolução termos de
    diferentes cláusulas devem ser unificados.
  • Sendo unificados os termos participam das
    restrições bayesianas.
  • Construir uma grande rede bayesiana consistindo
    de todos as pequenas redes de bayes que foram
    unificadas durante a fase de resolução.

31
Em ppt com cores diferentes entre variáveis
lógicas e aleatórias
32
Avaliação(Evaluation)Variable Elimination em
Prolog
AuthorInstitution
JournalRating
PaperRating
AuthorRating
PaperCited
33
Restrições Probabilísticas
Nesta apresentação apresentaremos apenas
restrições de variáveis discretas, mas é possível
representar CLP(BN) através de restrições
contínuas. (Trabalho Atual).
  • Distribuição Normal
  • Distribuição Qui-Quadrado
  • Distribuição T-Student
  • Distribuição F

34
Pergunta?
  • Dado que temos um PRM, qual a utilidade de usar a
    representação CLP(BN)?
  • Incorporação de probabilidade na lógica de
    primeira ordem.
  • CLP é uma extensão da programação lógica.
  • Ajudar a entender melhor o relacionamento entre
    PRMs e probabilistic logic.
  • CLP(BN) pode aprender usando ILP
  • recursao

35
CLP(BN)emYap Prolog
  • Aula de Laboratório

36

Yap
  • Yap é um sistema desenvolvimento cuja linguagem é
    Prolog
  • É multi-plataforma
  • Código-fonte aberto e em desenvolvimento
  • Contém diversas extensões prolog como por
    exemplo DEC-10 Prolog, Quintus Prolog e
    C-Prolog.
  • Autores Vítor Santos Costa,Luís Damas,Rogério
    Reis e Ruben Azevedo (Universidade do Porto).
  • Site http//www.ncc.up.pt/vsc/Yap/

37

Yap
  • Possui alguns pacotes
  • CHR package
  • CLP(Q,R) package
  • Logtalk Object-Oriented system
  • Pillow WEB library
  • CLP(BN)
  • Quando compilar o Yap digitar
  • configure --enable-coroutining --enable-depth-limi
    t

38
Yap
  • Executar
  • Conectar-se via ssh a buique.cin.ufpe.br
  • Mudar para o diretório onde estão os arquivos
    .yap
  • Executar Yap no prompt Unix.
  • yap
  • Carregar Arquivo
  • File_name.
  • Digitar FILE_NAME_1, ...,FILE_NAME_N. para
    carregar N arquivos no ambiente Yap ou
  • consult(FILE_NAME).
  • ou
  • reconsult(FILE_NAME).

39
CLP(BN) no Yap
  • CLP(BN) é um pacote da mais nova versão do YAP.
  • Código-fonte aberto e em desenvolvimento
  • Autores Vítor Santos Costa, David Page e James
    Cussens.
  • Site www.cos.ufrj.br/vitor/Yap/clpbn/

40
CLP(BN) no Yap
  • Se tudo estiver certo ... ?
  • Baixar e descompactar clpbn.tar.gz no diretório
    PATH/x/CLPBN
  • Baixar e descompactar o exemplo school.tar.gz e
    vai ficar com PATH/x/school_example
  • faça cd para PATH/x/school_example
  • agora chame o yap
  • gt yap
  • use_module('../CLPBN/clpbn').
  • 'school.yap'.

41
CLP(BN) no YAP
  • Se tudo der certo ?
  • professor_key(X).
  • X p0 ?
  • yes
  • ?- professor_ability(X,A).
  • X p0,
  • A0.5,0.4,0.1gth,m,l ?
  • X p1,
  • A0.8,0.15,0.05gth,m,l ?
  • X p2,
  • A0.2,0.6,0.2gth,m,l ?
  • X p3,
  • A0.6,0.3,0.1gth,m,l ?

42
CLP(BN) no YAP
  • ?- professor_popularity(X,A).
  • X p0,
  • A0.53,0.3,0.17gth,m,l ?
  • X p1,
  • A0.75,0.175,0.075gth,m,l ?
  • X p2,
  • A0.3,0.4,0.3gth,m,l ?
  • X p3,
  • A0.6,0.25,0.15gth,m,l ?
  • no

43
CLP(BN) no YAP
  • ?- professor_popularity(X,A), professor_ability(X
    ,h).
  • X p0,
  • A0.9,0.1,0.0gth,m,l ?
  • X p1,
  • A0.9,0.1,0.0gth,m,l ?
  • X p2,
  • A0.9,0.1,0.0gth,m,l ?
  • X p3,
  • A0.9,0.1,0.0gth,m,l ?

44
CLP(BN) no YAP
  • ?- professor_ability(X,A), professor_popularity(X
    ,h).
  • X p0,
  • A0.849056603773585,0.150943396226415,0.0gth,m,
    l ?
  • X p1,
  • A0.96,0.04,0.0gth,m,l ?
  • X p2,
  • A0.6,0.4,0.0gth,m,l ?
  • X p3,
  • A0.9,0.1,0.0gth,m,l ?
  • no

45
CLP(BN) no YAP
  • ?- course_rating(c0,X).
  • X0.595526873437529,0.352055580547983,0.052417546
    0144877gth,m,l ?
  • yes
  • ?- course_rating(c0,X),course_professor(c0,P),
    professor_ability(P,h).
  • P p0,
  • X0.873,0.125,0.002gth,m,l ?
  • yes

46
Referência Bibliográfica
  • Friedman, N., Getoor, L., Koller, D., and
    Pfeffer, A. (1999) Learning Probabilistic
    Relational Models. In Relational Data Mining,
    Dzeroski and Lavrac, Editors, Springer-Verlag,
    2001.
  • Costa, V., Page, D., Cussens, J. (2001) LCLP(BN)
    Constraint Logic Programming for Probabilistic
    Knowledgr.
  • http//dags.stanford.edu/PRMs/
  • http//www.cs.berkeley.edu/pasula/fopl/
  • Muitos e-mails para Costa vitor_at_cos.ufrj.br ?
Write a Comment
User Comments (0)
About PowerShow.com