ディリクレ過程(Dirichlet Process)を調査中

そろそろ階層ディリクレ過程(Hierarchical Dirichlet Processes)を理解したい気分だったので調査中。とりあえずディリクレ過程について現時点での理解をメモしておく。間違ってる可能性もあるので悪しからず。


やりたい事。データの系列x={x1, x2, ..., xn}について、P(x)を求めたい。もしくはP(x)からxをサンプリングしたい。このP(x)がディリクレ過程。
事前分布としてG0という分布を考える。この分布は何でも良く、とりあえず正規分布とかを思い描くと良い。加えてαというスケーリングパラメータを用意する。
このG0とαをパラメータとした分布DP(G; α, G0)を考える。これは具体的にはDir(αG0(x1), αG0(x2), ...)というディリクレ分布となっている。従ってDPは足して1になるパラメータセットθ={θ1, θ2, ..., θn}に関する分布となる。このθをパラメータとする分布がG。よってDPはGに関する分布であるといっても問題ない(と思う)。それぞれのθiはユニークなxiに対応していて、θは可算個(自然数と1対1対応する無限個)の次元を持ってもよいので、無限種類のデータを扱える(つまりノンパラメトリック)ということ(だと思う。自信ない。)
このG(というかθ)について周辺化をすると

P(x) = ∫P(G)P(x|G)dG

となりP(x)が得られる。

ディリクレ過程の具体例としてCRP(Chinese Restaurant Process, 中華飯店過程)が有名で、これは{x1, x2, ..., x(n-1)}を観測したもとでのxnのとる値は確率(1/(n-1+α))でxi (i=1...(n-1))に、確率(α/(n-1+α))でG0(x)からサンプリングした値になる、というもの。Gについて周辺化されているためG0とαだけを用いて確率が計算できるところがポイント(なはず)。上で書いたP(x)の式からどうやってこのCRPの結果が得られたかは、まだ調査中。。
なお、ディリクレ過程よりもシンプルなガウス過程についてはPRMLの下巻に測度論の知識を必要としない明瞭な説明があるので、興味のある方は参照されると良い気がする。

参考:
A Constructive Definition Of Dirichlet Priors; Jayaram Sethuraman
Dirichlet Process; Yee Whye Teh
Hierarchical Dirichlet Processes; Yee Whye Teh, et al.
Dirichlet ProcessesA gentle tutorial; Khalid El-Arini

調査していて思うのは、確率過程って難しいということ。測度論ぽい用語が閾値をぐっと引き上げてる気がする。だれか詳しい人教えてくれないかな。。


困った時の最終兵器。頼りになります。