Hierarchical Dirichlet Process 구현

Posted 2014.11.27 13:21

이 프로젝트는 고급 베이지안 통계학 최종 프로젝트로 진행한 것입니다. Hierarchical Dirichlet Process (HDP)는 Topic modelling에 효과적으로 사용될 수 있으며 현재는 문서 데이터를 모델링하는데 사용하고 있습니다. 단어들로 이뤄진 문서들이 있을 때, 단어들의 분포를 의미하는 토픽을 찾고, 문서를 해당 토픽의 분포로 표현하는 것을 목표로 합니다. 


수행 화면

 위의 두 화면은 실시간으로 Log likelihood와 토픽의 수를 나타내는 K를 보여줍니다. 아래는 MCMC에 사용되는 파라미터를 설정할 수 있는 창입니다. 오른쪽 아래는 상태창으로 현재 불러온 데이터와 사용된 파라미터를 보여줍니다. 


결과 화면

 정해준 숫자 만큼 MCMC를 한 후에는 위의 화면과 같이 그래프로 결과를 보여줍니다. 그래프 그리는 것은 Gnuplot을 통해 하기 때문에 이 프로그램을 꼭 설치해야 합니다. 


실행 파일,  Gnuplot 설치 파일, 문서 파일


사용된 소스 코드


설명서



  1. wow

    | 2015.01.09 22:09 | PERMALINK | EDIT | REPLY |

    안녕하세요, 좋은 자료 정말 잘 봤습니다 !
    제가 얕게나마 공부한 걸로는 Hierarchical Dirichlet Process 과정을 거치게 되면 Topic들이 Hierarchical하게 형성되어서 Tree를 구성할 수 있는걸로 이해하고 있는데 이게 맞는걸까요?
    이전에 설명하신 포스팅을 보면 CRP모델에 여러 개의 Dirichlet Process가 들어가는 구조로 되어 있어서 각각의 Dirichlet Process에서 생성된 Topic 집단들이 Tree 형태로 clustering 된다고 봤습니다
    이렇게 이해한게 맞다면, 위에 작성하신 코드는 제가 이해하고 있는 CRP Tree와는 다른 형태일까요?
    개념들이 머리에 잘 안잡혀서 너무 어렵네요 ㅠㅠ

  2. SJ 해리s

    | 2015.01.10 10:56 신고 | PERMALINK | EDIT |

    음 트리라는 개념은 처음 들어보네요. ㅎㅎ
    CRP 모델에 DP가 들어가는 구조라는게 어떤 걸 의미하시는건가요?

    CRP는 DP의 posterior분포를 이해하기 쉽게 설명한 것이고 HDP는 DP들의 base distribution을 다시 DP로 모델링해서 제가 적용한 문제에 대해서는 단어들이 어떤 토픽들에 의해서 생성이 되고, 그 토픽 역시 어떤 base 분포에 대해서 생성이 되는 generative model로 이해하고 있습니다!.

  3. WOW

    | 2015.02.12 16:31 | PERMALINK | EDIT |

    아 제가 착각했었네요 ~ ㅎㅎ

    DP를 CRP가 아니라 nCRP와 연결을 해야 트리 구조가 된다는 걸 최근에야 깨달았습니다 ㅎㅎ 여기서 더 확장하면 nHDP로 트리 구조를 구성할 수 있는 것 같구요 !
    좋은 설명 감사합니다 !

Write your message and submit
« PREV : 1 : ··· : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : 47 : ··· : 142 : NEXT »