生成アルゴリズムと 識別アルゴリズムの違いは何ですか?
13 に答える
入力データが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)
上記の説明から、生成モデルはより一般的に有用であり、したがってより優れていると思われるかもしれませんが、それはそれほど単純ではありません。この論文は、識別的分類器と生成的分類器の主題に関する非常に人気のある参考資料ですが、かなり重いものです。全体的な要点は、識別モデルは一般に分類タスクで生成モデルよりも優れているということです。
生成アルゴリズムは、信号を分類するためにデータがどのように生成されたかをモデル化します。それは質問をします:私の生成の仮定に基づいて、どのカテゴリーがこの信号を生成する可能性が最も高いですか?
識別アルゴリズムは、データがどのように生成されたかを気にせず、特定の信号を分類するだけです。
あなたの仕事がスピーチを言語に分類することだと想像してください。
次のいずれかで実行できます。
- 各言語を学び、得た知識を使って分類します
また
- 言語を学習せずに言語モデルの違いを判断し、音声を分類します。
最初のアプローチは生成的アプローチであり、2番目のアプローチは識別的アプローチです。
詳細については、このリファレンスを確認してください:http ://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf 。
実際には、モデルは次のように使用されます。
識別モデルy
では、トレーニング例からラベルを予測するには、以下x
を評価する必要があります。
y
これは、を考慮して最も可能性の高いクラスを選択するだけx
です。クラス間の決定境界をモデル化しようとしていたようなものです。この動作はニューラルネットワークで非常に明確です。ニューラルネットワークでは、計算された重みは、空間内のクラスの要素を分離する複雑な形状の曲線として見ることができます。
ここで、ベイズの定理を使用して、方程式のを。に置き換えましょう
。arg maxに関心があるだけなので、分母を消去できます。これは、すべてので同じになります
y
。だから、あなたは残されています
これは、生成モデルで使用する方程式です。
最初のケースでは、クラス間の境界をモデル化した条件付き確率分布がありましたが、2番目のケースで は、各クラスの実際の分布を明示的にモデル化するため、同時確率分布がありました。p(y|x)
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)
は生成的です。
例えば。生成モデルの
ナイーブベイズモデル
P(c)
とP(d|c)
-ここc
で、はクラスでd
あり、は特徴ベクトルです。また、
P(c,d) = P(c) * P(d|c)
したがって、いくつかのフォームモデルのナイーブベイズは、
P(c,d)
ベイジアンネット
マルコフネッツ
識別モデルは、データポイントを識別/分類するためにのみ使用できるモデルです。このような場合にのみモデル化する必要がありますP(y|x)
(つまり、特徴ベクトルが与えられた場合のクラスの確率)。
例えば。識別モデルの
ロジスティック回帰
ニューラルネットワーク
条件付き確率場
一般に、生成モデルは識別モデルよりもはるかに多くのモデルを作成する必要があるため、効果が低い場合があります。実際のところ、クラスタリングなどのほとんどの(すべてかどうかはわかりませんが)教師なし学習アルゴリズムは、モデル化されてP(d)
いるため(クラスがないため:P) 、生成的と呼ぶことができます。
PS:答えの一部はソースから取られています
短い答え
ここでの答えの多くは、広く使用されている数学的定義に依存しています[1]。
- 識別モデルは、条件付き予測分布を直接学習します
p(y|x)
。- 生成モデルは同時分布を学習します(と
p(x,y)
いうより、、)。p(x|y)
p(y)
p(y|x)
ベイズの定理を使用して、予測分布を取得できます。
非常に便利ですが、この狭い定義は教師あり設定を想定しており、教師なしまたは半教師ありの方法を調べる場合にはあまり便利ではありません。また、深い生成モデリングのための多くの現代的なアプローチには適用されません。たとえば、現在、暗黙の生成モデルがあります。たとえば、生成的敵対的ネットワーク(GAN)は、サンプリングベースであり、確率密度を明示的にモデル化することさえありませんp(x)
(代わりに、弁別子ネットワークを介して発散測度を学習します)。しかし、それらは(高次元[10])サンプルを生成するために使用されるため、「生成モデル」と呼ばれます。
より広く、より基本的な定義[2]は、この一般的な質問にも同様に当てはまるようです。
- 識別モデルは、クラス間の境界を学習します。
- そのため、さまざまな種類のデータインスタンスを区別できます。
- 生成モデルは、データの分布を学習します。
- したがって、新しいデータインスタンスを生成できます。
よく見る
それでも、この質問は誤った二分法を暗示しています[3]。生成的識別の「二分法」は、実際には、[4]の間をスムーズに補間できるスペクトルです。
結果として、この区別は恣意的で混乱を招きます。特に、多くの人気のあるモデルがどちらかにうまく分類されない場合[5,6]、または実際にはハイブリッドモデル(古典的な「識別」モデルと「生成」モデルの組み合わせ)である場合はなおさらです。 。
それでもなお、それは非常に有用で一般的な区別です。正規モデルと最近の両方の生成モデルと識別モデルの明確な例をいくつか挙げることができます。
- 生成的:ナイーブベイズ、潜在的ディリクレ割り当て(LDA)、生成的敵対的ネットワーク(GAN)、変分オートエンコーダー(VAE)、フローの正規化。
- 識別:サポートベクターマシン(SVM)、ロジスティック回帰、最も深いニューラルネットワーク。
また、生成-識別除算[7]とスペクトル[4,8]を深く調べ、識別モデルを生成モデルに変換する[9]という興味深い研究もたくさんあります。
結局、特にこの急速に成長している分野では、定義は絶えず進化しています:)ほんの少しの塩でそれらを取り、おそらくあなた自身や他の人のためにそれらを再定義するのが最善です。
ソース
- おそらく「機械学習-差別的かつ生成的」(TonyJebara、2004)に由来します。
- Googleによる機械学習のクラッシュコース
- ジェネレーティブ-識別的誤謬
- 「生成モデルと識別モデルの原理的なハイブリッド」(Lasserre et al。、2006)
- @shimaoの質問
- ビヌ・ジャシムの答え
- ロジスティック回帰と単純ベイズの比較:
- https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
- 「あなたの分類器は密かにエネルギーベースモデルです」(Grathwohl et al。、2019)
- スタンフォードCS236ノート:技術的には、確率的識別モデルは、データを条件とするラベルの生成モデルでもあります。ただし、生成モデルという用語は通常、高次元データ用に予約されています。
生成アルゴリズムモデルは、トレーニングデータから完全に学習し、応答を予測します。
識別アルゴリズムの仕事は、2つの結果を分類または区別することだけです。
これまでの回答はすべて素晴らしいので、もう1つポイントを差し込んでいきたいと思います。
生成アルゴリズムモデルから、任意の分布を導き出すことができます。一方、条件付き分布P(Y | X)は、識別アルゴリズムモデルからしか取得できません(または、Yのラベルの識別にのみ役立つと言えます)。そのため、識別モデルと呼ばれます。識別モデルは、Y($ X_i \ perp X _ {-i} | Y $)が与えられた場合、Xが独立しているとは想定していないため、通常、その条件付き分布を計算するのにより強力です。
私の2セント:識別的アプローチは違いを浮き彫りにします生成的アプローチは違いに焦点を合わせません。彼らはクラスを代表するモデルを構築しようとします。2つの間に重複があります。理想的には、両方のアプローチを使用する必要があります。一方は類似点を見つけるのに役立ち、もう一方は非類似点を見つけるのに役立ちます。