私は単なる初心者であることを念頭に置いて、生成アルゴリズムと 識別アルゴリズムの違いを理解してください。
私は単なる初心者であることを念頭に置いて、生成アルゴリズムと 識別アルゴリズムの違いを理解してください。
回答:
入力データがx
あり、データをラベルに分類するとしますy
。生成モデルを学習共同確率分布をp(x,y)
し、差別的モデルが学習し、条件付き確率分布をp(y|x)
-あなたはと読むべき「の確率がy
与えられましたx
」。
これは本当に簡単な例です。次の形式のデータがあるとします(x,y)
。
(1,0), (1,0), (2,0), (2, 1)
p(x,y)
です
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
p(y|x)
です
y=0 y=1
-----------
x=1 | 1 0
x=2 | 1/2 1/2
これらの2つの行列を見つめるのに数分かかると、2つの確率分布の違いがわかります。
分布p(y|x)
は、特定の例x
をクラスy
に分類するための自然な分布です。このため、これを直接モデル化するアルゴリズムは、判別アルゴリズムと呼ばれます。生成アルゴリズムモデル。ベイズルールを適用してにp(x,y)
変換しp(y|x)
、分類に使用できます。ただし、ディストリビューションp(x,y)
は他の目的にも使用できます。たとえば、可能性のあるペアp(x,y)
を生成するために使用できます(x,y)
。
上記の説明から、生成モデルはより一般的に有用であり、したがってより良いと考えているかもしれませんが、それほど単純ではありません。このホワイトペーパーは、識別的分類と生成的分類の主題について非常に人気のある参考文献ですが、かなり大変です。全体的な要点は、一般に、識別モデルが分類タスクの生成モデルよりも優れていることです。
p(y|x)
それをモデル化するアルゴリズムが「判別モデル」と呼ばれることを意味する理由はまだわかりません。
生成的アルゴリズムデータは、信号を分類するために、生成されたかのモデル。それは質問をします:私の生成の仮定に基づいて、どのカテゴリがこの信号を生成する可能性が最も高いですか?
差別的アルゴリズムは、データが生成されたかを気にしない、それは単に与えられた信号を分類します。
あなたの仕事がスピーチを言語に分類することであると想像してください。
次のいずれかを実行できます。
または
1つ目は生成的アプローチで、2つ目は識別的アプローチです。
詳細については、このリファレンスを確認してください:http : //www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf。
実際には、モデルは次のように使用されます。
で差別モデル、ラベルを予測するためy
の訓練の例からx
、あなたは評価する必要があります:
これは、y
考えられる最も可能性の高いクラスを選択するだけx
です。クラス間の決定境界をモデル化しようとしたようなものです。この動作はニューラルネットワークで非常に明確であり、計算された重みは、空間内のクラスの要素を分離する複雑な形状の曲線と見なすことができます。
ここで、ベイズのルールを使用して、方程式のをで置き換えましょう。arg maxだけに関心があるので、分母を消去できますy
。これは、すべてので同じになります。だから、あなたは残っています
これは、生成モデルで使用する方程式です。
最初のケースでは、クラス間の境界をモデル化した条件付き確率分布 p(y|x)
がありましたが、2番目のケースでは、各クラスの実際の分布を明示的にモデル化したので、共同確率分布がありました p(x, y)
。p(x | y) p(y) = p(x, y)
。
結合確率分布関数を使用すると、を指定するとy
、それぞれのを計算(「生成」)できますx
。このため、これらは「生成」モデルと呼ばれます。
これは、トピックに関連するCS299(Andrew Ngによる)の講義ノートの最も重要な部分です。これは、識別学習アルゴリズムと生成学習アルゴリズムの違いを理解するのに役立ちます。
象(y = 1
)と犬(y = 0
)の2つのクラスの動物があるとします。そしてxは動物の特徴ベクトルです。
トレーニングセットが与えられると、ロジスティック回帰またはパーセプトロンアルゴリズム(基本的に)などのアルゴリズムは、象と犬を分離する直線(つまり、決定境界)を見つけようとします。次に、新しい動物を象または犬のいずれかに分類するために、決定境界のどちら側に落ちるかをチェックし、それに応じて予測を行います。これらを識別学習アルゴリズムと呼びます。
ここに別のアプローチがあります。まず、象を見て、象の様子のモデルを作成できます。次に、犬を見て、犬がどのように見えるかの別のモデルを作成できます。最後に、新しい動物を分類するには、新しい動物を象のモデルと照合し、犬のモデルと照合して、新しい動物が象に似ているか、トレーニングセットで見た犬に似ているかを確認します。 。これらを生成学習アルゴリズムと呼びます。
一般的に、機械学習コミュニティでは、したくないものを学習しないという慣習があります。たとえば、指定されたx入力にyラベルを割り当てることが目標である分類問題を考えます。生成モデルを使用する場合
p(x,y)=p(y|x).p(x)
手元のタスクには無関係なp(x)をモデル化する必要があります。データのスパース性などの実用的な制限p(x)
により、弱い独立性の仮定でモデル化する必要があります。したがって、分類には直観的に判別モデルを使用します。
上記のStompChickenによる回答によく合う追加の有益なポイント。
基本的な違いの間に差別モデルと生成モデルは次のとおりです。
判別モデルはクラス間の(ハードまたはソフト)境界を学習します
生成モデルは、個々のクラスの分布をモデル化します
編集:
生成モデルは、データを生成できるモデルです。これは、機能とクラス(つまり、完全なデータ)の両方をモデル化します。
モデル化する場合P(x,y)
:この確率分布を使用してデータポイントを生成できますP(x,y)
。したがって、すべてのアルゴリズムモデリングは生成的です。
例えば。生成モデルの
Naive BayesモデルP(c)
とP(d|c)
- c
はクラスで、d
は特徴ベクトルです。
また、 P(c,d) = P(c) * P(d|c)
したがって、いくつかのフォームモデルの単純ベイズ、 P(c,d)
ベイズネット
マルコフネット
判別モデルは、データポイントを判別/分類するためにのみ使用できるモデルです。このP(y|x)
ような場合にのみモデル化する必要があります(つまり、特徴ベクトルが与えられたクラスの確率)。
例えば。識別モデルの:
ロジスティック回帰
ニューラルネットワーク
条件付きランダムフィールド
一般に、生成モデルは、判別モデルよりもはるかに多くのモデルを作成する必要があるため、効果的でない場合があります。実際には、クラスタリングなどのほとんど(すべてではない)の教師なし学習アルゴリズムは生成モデルと呼ばれますP(d)
(クラスがないため:P)。
ここでの答えの多くは、広く使用されている数学的定義[1]に依存しています。
- 判別モデルは条件付き予測分布を直接学習します
p(y|x)
。- 生成モデルは、共同分布を学習します
p(x,y)
(または、p(x|y)
およびp(y)
)。
- 予測分布
p(y|x)
はベイズの法則で取得できます。
この狭い定義は非常に便利ですが、監視ありの設定を想定しているため、監視なしまたは半監視ありのメソッドを調べる場合にはあまり役に立ちません。また、ディープジェネレーティブモデリングの多くの現代的なアプローチには適用されません。たとえば、今では暗黙的な生成モデルがあります。たとえば、生成ベースの敵対的ネットワーク(GAN)は、サンプリングベースであり、確率密度を明示的にモデル化していませんp(x)
(代わりに、弁別器ネットワークを介して発散測定を学習しています)。しかし、それらは(高次元[10])サンプルの生成に使用されるため、「生成モデル」と呼んでいます。
より広く、より根本的な定義 [2]も同様に、この一般的な質問のためのフィッティングと思われます。
- 判別モデルは、クラス間の境界を学習します。
- そのため、異なる種類のデータインスタンスを区別できます。
- 生成モデルは、データの分布を学習します。
- そのため、新しいデータインスタンスを生成できます。
それでも、この質問は、いくらか誤った二分法を示唆しています[3]。生成的識別の「二分法」は、実際、[4]の間でスムーズに補間できるスペクトルです。
結果として、この区別は恣意的で混乱します。特に、多くの人気のあるモデルがきちんとどちらにも分類されない場合[5、6]、または実際にはハイブリッドモデル(従来の「識別」モデルと「生成」モデルの組み合わせ)の場合。
それにもかかわらず、それはまだ非常に有用であり、一般的な違いです。生成モデルと識別モデルのいくつかの明確な例を、正規および最近の両方でリストできます。
また、生成的識別の分割[7]とスペクトル[4,8]を深く調べ、さらに識別的モデルを生成的モデル[9]に変換することさえも興味深い研究がたくさんあります。
結局、特にこの急速に成長している分野では、定義は常に進化しています:)少々の塩を加えて、自分や他の人のためにそれらを再定義することもできます。
生成アルゴリズムモデルは、トレーニングデータから完全に学習し、応答を予測します。
判別アルゴリズムの仕事は、2つの結果を分類または区別することです。