2010-03-02 4 views
6

베이지안 네트워크에 대한 (루피) 신념에 대한 합계 제품 알고리즘의 작동 코드 예제를 아는 사람이 있습니까? 나는 며칠 동안 지구를 샅샅이 조사했지만 운이별로 없었다. 나는 언어가 무관하다.루피 믿음 전파 코드 예제

내가 발견 한 모든 문서는 비밀스럽고 모호한 모호한 mathspeak로 가득하다. 어려운 알고리즘처럼 보이지는 않지만 까다로운 부분 중 일부가 너무 많이 닦여 졌기 때문에 확신 할 수 없습니다.

또는 변수 이름 대신 실수를 사용하는 예는 트릭도 수행합니다.

답변

2

나는 Bayesian Networks에 Pearl의 신념 전파 알고리즘을 구현했습니다. 또한 정보 전달 신념 값이 0.001 이내로 수렴 될 때 종료되므로 루핑 전파도 지원합니다.

모든 코드는 자바이며,이 명시 적 요인 그래프를하지 않습니다 내 Google code pen-ui svn repo.

에서 찾을 수있다.

"Support"클래스에는 주요 기능과 함께 재생할 수있는 작은 네트워크를 만드는 몇 가지 정적 메서드가 있습니다. 특히 나폴리탄의 책에서 발견 된 3 노드 Burlar-FreightTruck-Alarm 네트워크를 구현했고, 내 번호를 확인했습니다. (그 이상의 약속은 없다!)

2

나는 비슷한 상황에 있습니다. 이론적 인 소개를 위해 크리스토퍼 비숍 (Christopher M. Bishop)이 저술 한 "패턴 인식 및 기계 학습 (Pattern Recognition and Machine Learning)"을 사용하고 있습니다. "최대 제품"과 "합 제품"에 대한 장은 매우 수학적이지만 신념 전파를 묘사합니다.

저는 작은 수치 예제를 찾고 있습니다. 그래서 하나를 찾으면 매우 흥미로울 것입니다.

한편 BP를 구현하는 오픈 소스 라이브러리 libDAI을 살펴볼 수 있습니다.

+0

책 : Neapolitan의 "Learning Bayesian Networks"에는 알고리즘의 두 가지 버전이 나와 있습니다. 세부 사항은 빠져 있지만, 다소 복잡한 수학 구문이 있습니다. 또한 그는 알고리즘이 실행될 때 어떤 일이 발생하는지에 대한 풍부한 * 수치 예제를 제공합니다. 원하는 경우 PDF (700 페이지 이상, 블레)를 보낼 수 있습니다. 그것은 루피 전파를 명시 적으로 다루지는 않지만, 그것은 내가 알아낼 수있는 것입니다. 여기에 좋은 자료가 있습니다 : http://www.mcs.vuw.ac.nz/courses/COMP421/2008T1/documents/marcus/ 저는 그것을 (자바로) 직접 구현하고 있습니다. 디버깅됩니다. –

+0

또한 http://www.mcs.vuw.ac.nz/courses/COMP421/2008T1/code/GM/markov.py에서 Python 구현을 참조하십시오. 나는 그것이 버기다는 것을 납득 시키더라도, 나는 그것을 이해하지 않는다. –

+1

도서관에서 나폴리탄의 저서를 받았습니다. 좋은 예를 정말 좋아! 팁 고마워. 불행히도 그것은 베이지안 네트워크, 마르코프 네트 및 요소 그래프의 관계를 설명하지 못합니다. 링크는 현재 루피 한 BP를 완전히 이해하기 위해 누락되었습니다. 유용한 자료 : http://www.stanford.edu/~montanar/BOOK/partD.pdf http://www.kyb.tuebingen.mpg.de/bs/people/jorism /articles/thesis-mooij-hyperref.pdf – dudemeister

0

나는 Clojure에서 factor graph/belief propagation 알고리즘을 구현하고 있지만 코드는 아직 준비되지 않았다. (내 코드는에 일차/고차 논리 명제 논리에서 베이지안 네트워크를 담고있다.)

을 어쨌든, 나는 몇 가지 팁을 공유하고 싶습니다,

  1. 먼저주의 심지어 소외 불구하고 합계로 표시되면 그 속성은 합계와 다릅니다. 특히 확률 테이블 (잠재력이라고 함)의 제품으로 통근합니다. 그렇기 때문에 수학적 파생에서 합계와 곱셈을 교환 할 수있는 반면 일반 계산에서는 교환 할 수 없습니다.

  2. Pearl의 알고리즘에서 업스트림 및 다운 스트림으로 이동하는 메시지는 서로 다르다는 것을 유의하십시오. 가능성은 업스트림으로 이동하고 확률은 다운 스트림으로 이동합니다. (이것이 베이 즈 규칙이 신앙 전파의 파생에서 작동하는 이유이다).

  3. 요인 그래프 알고리즘에서 메시지는 P (A | K)와 같은 CPT (조건부 확률 테이블)입니다. P (A | K)와 P (K | A)와 P (A, K)의 CPT는 본질적으로 동일한 정보를 포함한다. 말단 노드에서 우리는 적절한 변수에 대해 CPT를 조정할뿐만 아니라 소외해야합니다. 이것은 수학 표기법에서 가려진 것 같습니다.