ディリクレプロセスモデルの理解と実装


11

私は、データをクラスター化するためのディリクレプロセスを実装および学習しようとしています(または機械学習の人々が話すように、密度を推定しています)。

私はこのトピックについてたくさんの紙を読み、アイデアを思いつきました。しかし、私はまだ混乱しています。ここに一連の質問があります

1)中華レストランモデルとDPの違いは何ですか?2)無限混合モデルとDPの違いは何ですか?

すべてを完全に理解するために、中華レストランモデル、Polya Urnモデル、スティック破壊を実装しました。しかし、DPを最初から実装するのは難しいことのようです。Python、R、Matlabを読み書きできます。

1)DPを完全に理解/機能/開発するために読んで改善することをお勧めするコードはありますか?2)私の調査によると、ディリクレプロセスのコードは読みやすくありませんでした。本当に長くて長い(おそらく、明快さよりも効率がより重要であったため)。3)ただし、無限混合モデルには、ディリクレプロセスよりも多くのコードがあります。これらの2つの方法が互いに遠くない場合、IMMを使用できますか?!基本的に、私は新しいモデルを構築したいのですが、車輪を作り直したくありません。

コメントありがとうございます

  • 多くの人が「ノンパラメトリックベイとDPを使用した無限混合モデル」に関するEdwin Chenのチュートリアルを推奨しているため、更新してください。このチュートリアルには誤解を招くタイトルがあります。DP、特異度、CPR、スティック破壊、Polya-Urnモデルのさまざまな表現のみをカバーしています。そして最後に、彼はscikitのMixture Modelを使用して、各クラスターでいくつかのヒストグラムを作成しています。

チェンのタイトルについて誤解を招くものは何なのかわかりません。はい、scikitのDP-GMMを使用しています。
Anne van Rossum、2015

Yee Whye Tehのページ:stats.ox.ac.uk/~teh/npbayes.htmlには、ディリクレプロセス混合モデル(DPMM)の折りたたみGibbsサンプラーのMATLAB実装に加えて、いくつかの優れたチュートリアルがあります。
Vadim Smolyakov

回答:


5

DPとCRPの違いは何ですか?

中華レストランプロセス(CRP)は、整数のパーティションにまたがる分布です。ディフィレットの定理のおかげで、ディリクレプロセス(DP)への接続が存在します。

De Finettiの定理:無限に交換可能なランダムプロセスがあるとすると、結合確率は混合として表現されます。P θ 1... θ Nθ1θNpθ1θN

pθ1θN=dPGΠ=1NGθ

確率変数。G

交換性の私たちはテーブルのインデックスのどちらかを気にしない(私たちはテーブルに名前を付けていない)、我々は特定のテーブルに顧客のオーダーを気にしないという性質手段。顧客の異なるセットへの分割は、私たちが関心を持っている唯一の構造です。これは、パーティション与えられれば、テーブルへの顧客の特定の割り当てを知る必要がなく、各テーブルでの顧客の数を知るだけでよいことを意味します。

De Finettiの定理は、分布を見つけるのに役立ちません。それは存在すべきであると述べているだけです。G

ディリクレプロセスは、分布よりも前のプロセスです。非公式には、確率分布を投入し、そこからサンプリングすると、確率分布の後に確率分布が得られます。

両方の関係は、がディリクレプロセスからサンプリングされた場合、De Finettiの定理の方程式がこの特定の当てはまることを証明することによって確立できます。GGG

もし

GDPαH

その後

p{θz=00θz=00}{θz=k0θz=kk}=αkΓαΓα+Π=0kΓ

は、特定のパーティションの確率を通じてCRPによって記述されることに注意してください。ここで、はテーブルインデックス示します。また、はテーブルの顧客数です。完全を期すために、は次のとおりです。、Z = I I N I I D Ppθ1θNz=DP

{G1Gk}DrchletαH1αHk

この博覧会から明らかなのは、つながりがあることですが、些細なことではありません。また、私は入ってくる個々の顧客に対する条件付き分布という意味でCRPを記述しなかったことにも注意してください。これにより、CRPとDPの間にさらに別の概念的なステップが追加されます。私のアドバイス:それらの関係を直接理解することに不安を感じて、関係を再現するまで、共同および限界分布について説明することから始めてください。CRPは、DPからを取り除きます。G

結合確率とCRPの逐次的記述の関係については、[1]を参照してください。

交換可能性が保持されない場合はどうなりますか? 交換可能性が保持されない場合、DPまたはCRPについては説明しませんが、従属ディリクレプロセスと従属中華レストランプロセスについては説明しません。そして当然、それらの間の接続は失われます!

GtDPαHHGtGt

可能な他の多くの一般化があります。それらのいくつかは、パーティションおよび分布上の表現を認めます。たとえば、Pitman-Yorプロセスを持つ2つのパラメーターを持つ中華レストランプロセス、またはベータプロセスを持つインドビュッフェプロセス[3] 。それらのいくつかはしません。

  • [1]:ベイジアンノンパラメトリックモデルのチュートリアル(2011)Gershman and Blei
  • [2]:距離に依存する中華レストランのプロセス(2011)ブレイとフレイジャー
  • [3]:階層的ベータプロセスとインドビュッフェプロセス(2007)ティボーとヨルダン

θz=αkΓαΓα+Π=0kΓ


2

1)中華レストランモデルとDPの違いは何ですか?

無し。CRPはDPの特定の表現です。問題に応じて、ある表現を別の表現(CRP、スティック破壊など)よりも使用することができます。

2)無限混合モデルとDPの違いは何ですか?

DPは、Infinite Mixture Modelの先行として使用されています。これが、無限ガウス混合モデルがDP-GMMとも呼ばれる理由です。実際、この主題に関する最初の論文は「無限ガウス混合モデル」(Rasmussen、1999)です。

3)実装

私は実際にはPythonの多変量ケースに対してRasmussenの論文を実装しようとしています。(彼は、変分推論の近似よりも簡単なギブスサンプリングを使用しています)。その間、私は見つけました:


1

私は同じことに苦労しています。このフォーラムを通じて、私はいくつかのポインタを見つけました:

http://scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html

http://statistical-research.com/dirichlet-process-infinite-mixture-models-and-clustering/

1つ目は、scikit-learnによる多変量ガウシアンの無限混合の実装です( n_componentsパラメーターことはありませんが、実際に存在する理由はわかりません...)。

後者にはRのコードがいくつか含まれており、Kを意味する方法でモデル化しています(印象がわかります)が、Kを指定していません(もちろん;-))。

他に役立つパッケージ/説明を見つけたら、投稿してください!

トム


返信ありがとうございます。私はあなたの2番目のリンクを調べましたが、彼の例ではDPを使用していません。とにかく、それはある種のk-meansです。有用なパッケージ/説明を入れて、この投稿の更新を維持しましょう。
user4581 2014年

まったく同じことを考えていました。コードでは、彼はを参照しているdirichletClustersので、私はおそらく間違っていると思いました。しかし、DPもそこには表示されません...
トム

Teh自身によるこのビデオ講義をご覧ください
トム・

あなたを更新するために、DIRECTと呼ばれるRパッケージがあります。DPの実装が非常に明確です。私はコードを読み、自分自身を教育し始めました!
ご覧になる

1

Jacob Eisensteinによる非常に理解しやすいコードがhttps://github.com/jacobeisenstein/DPMMでMatlabに利用可能です。これは、EB Sudderthによる論文「ビジュアルオブジェクトの認識と追跡のためのグラフィカルモデル」に基づいています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.