ノンパラメトリックベイズの初心者です。以前に質問したノンパラメトリックベイズに引き続いて質問させてください。
(質問1)
書籍「続・分かりやすいパターン認識」のp260~261のクラスタリング法1のアルゴリズムのStep3ですが、「各クラスタのパラメータθiを確率的に決定し、更新する」の実際のやり方ですが、
p259のθiの事後確率の式(12.15)を実際に計算したものはp269の式(12.37)となるので、この式を使って各クラスタごとのp(θi | {xk; xk∈ωi})を計算する。その結果例えば3クタスタ(ω1、ω2、ω3)あったとして、その確率の値がA, B, Cだったとした場合、
threshold1 = A / (A+B+C)
threshold2= (A+B) / (A+B+C)
として、pythonのbumpy.random.uniform()で発生させた乱数をthresholdとして、
threshold < threshold1 の時ω1
threshold1 < threshold < threshold2 の時ω2
threshold2 < threshold の 時ω3
が選択されるようにする。
ここでω1が選択されたとした場合、Step1に戻って、
ω1のクラスタで計算されたμ1、Λ1の値を使って、p259の式(12.14)のp(xk | θi)
の値を計算して、Skの事後確率を計算する手順を繰り返す。
と言う理解でいいのでしょうか?
(質問2)
p267の式(12.30)のウィッシャート分布の式ですが、この式は確率密度関数の式なので、積分すれば1、各点の値は、0 <x <1 の値になると思っていいのでしょうか。(今計算してみると1よりも
ずっと大きな数値になってしまっているようです。どこかに計算間違いがあるのかもしれない)

質問者からの補足コメント

  • 理解悪くて申し訳ないです。でもご回答から分かってきたようなので、再度確認させてください。

    (1)Step2ですが、ここは前に質問した「ノンパラメトリックベイズの計算方法」のNo.3の回答の捕捉で私の書いたやり方でいいんですよね?(式(12.14)で計算された各クラスタの確率比でランダムに振り分ける。)
    (2)Step3はStep2で決定したωの分類に従って新たに計算したθをそのまま使っては駄目なのですよね。そうではなくて、p269の式(12.37)のμi、ΛiをそれぞれN(μi;μc,Λc-1)とW(Λi;νc,Sq)の分布からギブスサンプリングして求めたθi(μi,Λi)を次の繰り返しのStep2のp(xk|θi)のθiとして使うという理解でいいんですよね?
    (3)W(Λi;νc,Sq)のギブスサンプリングもこの書籍の捕捉に出ている正規分布の場合と同じように行えばいいのでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/06/18 20:19

A 回答 (2件)

補足について。



(1) OKです。

(2)
>Step2で決定したωの分類に従って新たに計算したθをそのまま使う
っていうのが、どういう操作を意味しているのか私には理解できないです。

>そうではなくて、p269の式(12.37)のμi、ΛiをそれぞれN(μi;μc,Λc-1)とW(Λi;νc,Sq)の分布からギブスサンプリングして求めたθi(μi,Λi)を次の繰り返しのStep2のp(xk|θi)のθiとして使うという理解でいいんですよね?

こっちは、それでよいと思います。μiとΛiの分布は無関係なので、「ギプスサンプリング」ではないと思いますが。

(3)
Λi のサンプリングは、とにかく、確率密度関数 W(Λi;νc,Sq) にしたがってサンプリングできるなら、どうやってもよいです。
確率密度関数 W(Λi;νc,Sq) の具体的な形が式で書かれているわけで、原理的には、逆関数法とかで直接サンプリングすることも可能なはずです。

ただ、実際には、W(Λi;νc,Sq) は相当に複雑な形なので、直接サンプリングするのはなかなか大変です。
なんで、前の質問の#1にも書きましたが、このサンプリング自体をMCMCで行うことが多いです。
    • good
    • 0
この回答へのお礼

初心者で何回も質問してしまい申し訳ないです。
でも丁寧にお答えいただいて感謝しています。

お礼日時:2017/06/25 19:39

質問1


Step2ではなくて、Step3の「各クラスタのパラメータθiを確率的に決定し、更新する」についての質問ですよね。
Step2でωkは決定しているわけで、Step3でやることはθiを決めることですよ。
例えば、Step2で、3クラスタ(ω1、ω2、ω3)になったとしたら、各クラス多のパラメータ(θ1、θ2、θ3)を更新するのが、Step3です。

例えば、θ1の更新をバカ丁寧に説明すれば、
1. 全データ{xk}から、Step3でクラスタ1(ω1)に分類されたデータの集合 {xk; xk∈ω1}を抽出する
2. (12.15)式で、p(θ1| {xk; xk∈ω1}) の分布を計算して、そこからランダムサンプリングして、新しいθ1にする
ということです。θ2、θ3についても同様に更新します。

質問2
確率密度関数は、
「積分すれば1」はその通りですが、
「各点の値は、0 <x <1 の値になる」は違います。
各点の値は、0 ≦ x ですが、いくらでも大きな値になりえます。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報