Search on the blog

2017年1月29日日曜日

生成モデルと識別モデルの違い

生成モデル(generative model)と識別モデル(discriminative model)の違いが理解できたのでメモっておく。

よくある定義
生成モデルは
識別モデルは
のようにyを予測する。
これだけ聞いても何のことやらよく分からん。

直感的な説明
識別モデルはクラスの境界を学習する。与えられたデータxが生成される確率は特に考慮せず、単に境界面のみを学習するモデル。SVM、決定木などは識別モデル。

生成モデルは、それぞれのクラスにおけるデータの分布を学習するモデル。生成モデルはグラフィカルモデルを使って表される。

これは分かりやすい。これ聞いた後だと式の意味も分かる。

直感的な説明と式を結びつけて考える
識別モデルは、
のように予測を行うモデル。例えば決定木の場合はデータxが与えられると、終端nodeのクラス分布を見ることで、そのxがクラスyに属する確率が分かる。そして尤もらしいクラスを予測値として用いる。このようにp(y|x)を最大化しているが、データxが生成される過程や確率に関しては何もモデリングしていない。

これに対して生成モデルは、
のように予測を行う。例えばベイジアンネットワークやマルコフ確率場などを用いたモデルの場合はp(y)、p(x|y)を定義し、ベイズの定理を使って事後確率が最大となるようなyを予測値として用いる。つまり、データxの生成過程やクラスごとのxの分布というものをモデリングすることで、結果を予測するようなモデルになっている。


0 件のコメント:

コメントを投稿