SatoshiWatanabeの日記

続・わかりやすいパターン認識 ひとり読書会 6

今回はP(s)の妥当性第二回です。


続パタ読書会 1:ディリクレ過程混合モデル
続パタ読書会 2:ディリクレ過程混合モデルのアルゴリズム
続パタ読書会 3:実験
続パタ読書会 4:実装
続パタ読書会 5:事前確率P(s)の妥当性 1
続パタ読書会 6:事前確率P(s)の妥当性 2
続パタ読書会 7:ベル数 1
続パタ読書会 8:ベル数 2
続パタ読書会 9:P(s_k|x_k, s_-k, θ)の導出
続パタ読書会 10:演習問題12.5の計算
続パタ読書会 11:演習問題12.6の計算 1
続パタ読書会 12:演習問題12.6の計算 2


 P(\boldsymbol{s})=P(s_1, \ldots , s_n)=P_E(n_1, \ldots , n_c)=\displaystyle\frac{\alpha^c\displaystyle\prod_{i=1}^{c}{(n_i-1)!}}{\text{AF}(\alpha, n)}


の妥当性第二回です。

事前確率 P(\boldsymbol{s})の妥当性 2

 G(\theta)はどのような分布か

まだ G(\theta)がどのような分布かは示されていません。この G(\theta) \thetaを生成するごとに形状を変えていく分布のため決まった形を持つわけではありませんが、生成後の結果の形状だけを見ることで理解しやすくなります。この方法だと式の上でも意外と直感的に理解できます。具体的に \theta^1, \ldots , \theta^{n-1}を観測した下での G(\theta^n)の式は



    \begin{eqnarray}
        G(\theta^n) &=& \displaystyle\frac{\alpha}{\alpha+n-1}G_0(\theta^n)+\displaystyle\sum_{i=1}^{c}{\displaystyle\frac{n_i}{\alpha+n-1}\cdot{}^\delta\theta_i}\\
        &=&
        \begin{cases}
            \displaystyle\frac{n_i}{\alpha+n-1}&&\text{の確率で}\theta_i\\
            \displaystyle\frac{\alpha}{\alpha+n-1}&&\text{の確率で}G_0(\theta)\text{から生成される新しい}\theta_{new}
        \end{cases}
    \end{eqnarray}


となります。この式を見ても明らかなように集中度 \alphaが大きければより G_0(\theta)から生成されやすく、クラスタ数が増加するとともに G(\theta)の形状はより G_0(\theta)に近いものとなることが分かります。すなわちこれが集中度 \alphaが果たす役割に他なりません。この分布は確率的に G_0(\theta)からも生成されるため G(\theta)の形状自体は依然として抽象的です。そこで \theta^1, \ldots , \theta^{n-1}を観測した下での G(\theta^n)を考えるのではなく、 \theta^1, \ldots , \theta^nを観測した下で出来上がった Gの形状を考えます。この Gは新たに \thetaを生成したり、 \thetaの確率を求めたりすることが出来る分布としての Gではなくあくまで結果でしかありませんが、 Gの形状を理解するにはより具体的でわかりやすいかと思います。新たに G_0(\theta)から生成されるわけではないのでこの場合の G(\theta)



    \begin{eqnarray}
        G(\theta) &=& \displaystyle\sum_{i=1}^{c}{\displaystyle\frac{n_i}{n}{{}^\delta\theta_i}}\quad \left(\displaystyle\sum_{i=1}^{c}{n_i}=n\right)\\
        &=& \displaystyle\frac{n_i}{n}\text{の確率で}\theta_i
    \end{eqnarray}


という離散分布になります。式の通り Gの結果の分布は既存の各クラスタに所属しているパターンの数に比例しているだけの分布であり、その既存の各クラスタ G_0(\theta)から確率的に生成されている事を考えると理解しやすいかと思います。具体的な分布の形状の例はテキストの11章6節にも載っていますが、あらためて G_0を平均 0、分散 1正規分布とした場合の一例を下記に挙げます。


f:id:SatoshiWatanabe:20190521215627p:plain


上のグラフは 1000個のパターンを生成した後の Gを、下のグラフのオレンジの棒グラフは Gヒストグラム、青い実線は G_0を表しています。テキストではヒストグラムは各 \alpha毎に500個の累積で作成されているためどの \alpha下でも G_0にそれなりに近い形状をしていますが、上のグラフのヒストグラムは一回のみの Gの生成によって作られたものなのでテキストに比べより大きなばらつきになっています。見てわかる通り集中度 \alphaが大きくなればなるほどクラスタ数は増え、より G_0の形状に近づくことが見て取れます。 Gは生成するたびに違う分布になりますのでこれはあくまで一例です。また、下は \alpha=1\sim100の設定で Gを作成した場合のアニメーションです。


f:id:SatoshiWatanabe:20190522223431g:plain


 \alphaが大きくなるごとに偏りがなくなり G_0の形状に近い Gが生成されやすくなりますが、決して G_0そのものの分布になるわけではなく適度にばらつきのある分布が作成されることが見て取れます。

 P(\theta^n\vert\theta^1, \ldots , \theta^{n-1})の計算

保留になっていた P(\theta^n\vert\theta^1, \ldots , \theta^{n-1})を具体的に計算していきます。そのためにまず P(\theta^n\in A_i\vert\theta^1, \ldots , \theta^{n-1})を考えます。



    \begin{eqnarray}
        P(\theta^n\in A_i\vert\theta^1, \ldots , \theta^{n-1}) &=& \displaystyle\int{P(\theta^n\in A_i\vert G(\theta))P(G(\theta)\vert\theta^1, \ldots , \theta^{n-1})dG(\theta)}\\
        &=& \int{G(A_i)P(G(\theta)\vert\theta^1, \ldots,\theta^{n-1})dG(\theta)}\\
    \end{eqnarray}


ここで


 P(G(\theta)\vert\theta^1, \ldots, \theta^{n-1})=p(g\vert\theta^1, \ldots, \theta^{n-1})=\text{Dir}(\alpha_1', \ldots, \alpha_r')


であることを思い出すと、 G(A_i)=g_iなので



    \begin{eqnarray}
        \int{G(A_i)P(G(\theta)\vert\theta^1, \ldots,\theta^{n-1})dG(\theta)} &=& \int{g_i\text{Dir}(\alpha_1', \ldots, \alpha_r')dg}\\
        &=& \int{g_i\cdot\displaystyle\frac{\Gamma(\alpha')}{\Gamma(\alpha_1')\cdots\Gamma(\alpha_r')}g_1^{\alpha_1'-1}\cdots g_r^{\alpha_r'-1}dg}\\
        &=& \displaystyle\frac{\Gamma(\alpha')}{\Gamma(\alpha_1')\cdots\Gamma(\alpha_r')}\int{g_1^{\alpha_1'-1}\cdots g_i^{\alpha_i'}\cdots g_r^{\alpha_r'-1}dg}\\
        &=& \displaystyle\frac{\Gamma(\alpha')}{\Gamma(\alpha_1')\cdots\Gamma(\alpha_r')}\cdot\displaystyle\frac{\Gamma(\alpha_1')\cdots\Gamma(\alpha_i'+1)\cdots\Gamma(\alpha_r')}{\Gamma(\alpha'+1)}\\
        &=& \displaystyle\frac{\alpha_i'}{\alpha'}
    \end{eqnarray}


また、 \alpha_i'=\alpha'\cdot G_0'(A_i)なので



    \begin{eqnarray}
        \displaystyle\frac{\alpha_i'}{\alpha'} &=& G_0'(A_i)\\
        &=& \displaystyle\frac{1}{\alpha+n-1}\left(\alpha G_0(A_i)+\displaystyle\sum_{\theta^k\in A_i}{{}^\delta\theta^k}\right)
    \end{eqnarray}


となります。結局


 P(\theta^n\in A_i\vert\theta^1, \ldots , \theta^{n-1}) = \displaystyle\frac{1}{\alpha+n-1}\left(\alpha G_0(A_i)+\displaystyle\sum_{\theta^k\in A_i}{{}^\delta\theta^k}\right)


と求まりました。さらにこの式をすべての iについてまとめることにより



    \begin{eqnarray}
        P(\theta^n\vert\theta^1, \ldots , \theta^{n-1}) &=& \displaystyle\frac{1}{\alpha+n-1}\left(\alpha G_0(\theta^n)+\displaystyle\sum_{k=1}^{n-1}{{}^\delta\theta^k}\right)\\
        &=& \displaystyle\frac{\alpha}{\alpha+n-1}G_0(\theta^n)+\displaystyle\frac{1}{\alpha+n-1}\displaystyle\sum_{k=1}^{n-1}{{}^\delta\theta^k}
    \end{eqnarray}


となります。ここで \theta^1, \ldots, \theta^{n-1}は各々 c個の値 \theta_1, \ldots, \theta_cのどれかを取ったものとし、各 \theta_i n_i個の \theta^kが属していたとするとこの式は等価的に


 P(\theta^n\vert\theta^1, \ldots , \theta^{n-1})=\displaystyle\frac{\alpha}{\alpha+n-1}G_0(\theta^n)+\displaystyle\sum_{i=1}^{c}\displaystyle\frac{n_i}{\alpha+n-1}{{}^\delta\theta_i}


と書くことができ、これがまさに求めたかった結果です。

まとめ

これまでの \boldsymbol{s}の事前確率 P(\boldsymbol{s})に関する考察をまとめます。ディリクレ過程によりパターンがクラスタリングされたものとしてクラスタリング構造をモデル化すると、その構造はCRPによる分割として実現できました。そこでCRPにおいてあるクラスタ構造の事前確率 P(\boldsymbol{s})を考えれば結果は最初に提示した通り


 P(\boldsymbol{s})=P(s_1, \ldots , s_n)=P_E(n_1, \ldots , n_c)=\displaystyle\frac{\alpha^c\displaystyle\prod_{i=1}^{c}{(n_i-1)!}}{\text{AF}(\alpha, n)}


となりましたが、この式は集中度 \alphaクラスタ c、各クラスタの所属パターン数 n_i、及び総パターン数 nの四つの要素にしか依存していません。ということはクラスタ構造に関しての事前確率を計算したいだけならば基底分布 G_0がどのようなものかは結果にかかわらないことになります。また、我々が知りたかった事前確率 P(\boldsymbol{s})はあくまでパターンを観測する前のものです。つまりディリクレ過程で生成されたと仮定されるパターンが作るクラスタ構造であれば、ある \boldsymbol{s}というクラスタ構造はどのような確率で起こりうるのかを知りたいわけです。結果としてはディリクレ過程における基底分布 G_0をどのような分布と仮定するかによらず上式の結果になる、というのが結論ということになります。


今回はこのくらいにして次回はベル数について考えていきます。


続パタ読書会 1:ディリクレ過程混合モデル
続パタ読書会 2:ディリクレ過程混合モデルのアルゴリズム
続パタ読書会 3:実験
続パタ読書会 4:実装
続パタ読書会 5:事前確率P(s)の妥当性 1
続パタ読書会 6:事前確率P(s)の妥当性 2
続パタ読書会 7:ベル数 1
続パタ読書会 8:ベル数 2
続パタ読書会 9:P(s_k|x_k, s_-k, θ)の導出
続パタ読書会 10:演習問題12.5の計算
続パタ読書会 11:演習問題12.6の計算 1
続パタ読書会 12:演習問題12.6の計算 2