AI 101
生成的モデル vs. 識別的モデル:機械学習モデルの違い

一部の機械学習モデルは、「生成的」または「識別的」モデルのカテゴリーに属します。しかし、これら2つのカテゴリーのモデルの違いは何でしょうか?モデルが識別的または生成的であるとは、どういう意味なのでしょうか? 簡単に答えると、生成的モデルとはデータセットの分布を含み、与えられた例に対する確率を返すモデルです。生成的モデルは、シーケンスにおいて次に何が起こるかを予測するためによく使用されます。一方、識別的モデルは分類または回帰に使用され、条件付き確率に基づいた予測を返します。 生成的モデルと識別的モデルの違いを詳しく探り、2種類のモデルを分けるものと、それぞれをいつ使用すべきかを本当に理解できるようにしましょう。
生成的モデル vs. 識別的モデル
機械学習モデルを分類する方法は様々です。モデルは、生成的モデル、識別的モデル、パラメトリックモデル、ノンパラメトリックモデル、ツリーベースモデル、非ツリーベースモデルなど、異なるカテゴリーに分類できます。 この記事では、生成的モデルと識別的モデルの違いに焦点を当てます。まず、生成的モデルと識別的モデルの両方を定義し、その後、各タイプのモデルの例をいくつか探っていきます。
生成的モデル
生成的モデルは、データセット内のクラスの分布に焦点を当てたモデルです。機械学習アルゴリズムは通常、データポイントの分布をモデル化します。生成的モデルは、同時確率を見つけることに依存します。与えられた入力特徴量と望ましい出力/ラベルが同時に存在するポイントを作成します。 生成的モデルは通常、確率と尤度を推定し、データポイントをモデル化し、これらの確率に基づいてクラスを識別するために使用されます。モデルはデータセットの確率分布を学習するため、この確率分布を参照して新しいデータインスタンスを生成できます。生成的モデルは、同時確率 p(x,y) を見つけるために、ベイズの定理を利用することがよくあります。本質的に、生成的モデルはデータがどのように生成されたかをモデル化し、次の質問に答えます: 「このデータポイント/インスタンスを生成したのは、このクラスか別のクラスか、その尤度はどれくらいか?」 生成的機械学習モデルの例には、線形判別分析 (LDA)、隠れマルコフモデル、ナイーブベイズなどのベイジアンネットワークが含まれます。
識別的モデル
生成的モデルがデータセットの分布について学習する一方で、識別的モデルはデータセット内のクラス間の境界について学習します。識別的モデルでは、目標はクラス間の決定境界を特定し、データインスタンスに信頼性のあるクラスラベルを適用することです。識別的モデルは、個々のデータポイントについて仮定を置かず、条件付き確率を使用してデータセット内のクラスを分離します。 識別的モデルは、次の質問に答えることを目指します: 「このインスタンスは決定境界のどちら側にあるか?」 機械学習における識別的モデルの例には、サポートベクターマシン、ロジスティック回帰、決定木、ランダムフォレストが含まれます。
生成的モデルと識別的モデルの違い
以下に、生成的モデルと識別的モデルの主な違いを簡単にまとめます。 生成的モデル:
- 生成的モデルは、データセット内のクラスの実際の分布を捉えることを目指します。
- 生成的モデルは、ベイズの定理を利用して同時確率分布 – p(x,y) – を予測します。
- 生成的モデルは、識別的モデルと比較して計算コストが高いです。
- 生成的モデルは、教師なし機械学習タスクに有用です。
- 生成的モデルは、識別的モデルよりも外れ値の存在による影響を受けやすいです。
識別的モデル:
- 識別的モデルは、データセットのクラスの決定境界をモデル化します。
- 識別的モデルは、条件付き確率 – p(y|x) – を学習します。
- 識別的モデルは、生成的モデルと比較して計算コストが安価です。
- 識別的モデルは、教師あり機械学習タスクに有用です。
- 識別的モデルは、生成的モデルとは異なり、外れ値に対してより頑健であるという利点があります。
- 識別的モデルは、生成的モデルと比較して外れ値に対してより頑健です。
次に、生成的および識別的機械学習モデルのいくつかの異なる例を簡単に見ていきます。
生成的モデルの例
線形判別分析 (LDA) LDAモデルは、データセット内の各クラスについて、データの分散と平均を推定することで機能します。すべてのクラスの平均と分散が計算された後、与えられた一連の入力が特定のクラスに属する確率を推定することで予測を行うことができます。 隠れマルコフモデル マルコフ連鎖は、連鎖内の1つのポイント(「状態」)から別の状態へ移動する可能性がどれくらいあるかを示す確率を持つグラフと考えることができます。マルコフ連鎖は、状態jから状態iへ移動する確率を決定するために使用され、これは p(i,j) と表すことができます。これは上記の同時確率にすぎません。隠れマルコフモデルは、目に見えない、観測不可能なマルコフ連鎖が使用される場合です。データ入力がモデルに与えられ、現在の状態とその直前の状態の確率を使用して、最も可能性の高い結果が計算されます。 ベイジアンネットワーク ベイジアンネットワークは、確率的グラフィカルモデルの一種です。これらは、有向非巡回グラフで表されるように、変数間の条件付き依存関係を表現します。ベイジアンネットワークでは、グラフの各エッジが条件付き依存関係を表し、各ノードは一意の変数に対応します。グラフ内の一意の関係に対する条件付き独立性を使用して、変数の同時分布を決定し、同時確率を計算できます。言い換えれば、ベイジアンネットワークは、特定の同時確率分布における独立関係のサブセットを捕捉します。 ベイジアンネットワークが作成され、確率変数、条件付き関係、確率分布が既知として適切に定義されると、事象や結果の確率を推定するために使用できます。 最も一般的に使用されるベイジアンネットワークのタイプの1つは、ナイーブベイズモデルです。ナイーブベイズモデルは、すべての特徴量を互いに独立しているものとして扱うことで、多くのパラメータ/変数を持つデータセットの確率計算の課題を処理します。
識別的モデルの例
サポートベクターマシン サポートベクターマシンは、データポイント間に決定境界を引き、データセット内の異なるクラスを最もよく分離する決定境界を見つけることで動作します。SVMアルゴリズムは、2次元空間と3次元空間に対してそれぞれ、ポイントを分離する線または超平面を引きます。SVMは、マージン、つまり線/超平面から最も近いポイントまでの距離を最大化しようとすることで、クラスを最もよく分離する線/超平面を見つけようとします。SVMモデルは、「カーネルトリック」を使用して非線形の決定境界を特定することで、線形分離可能でないデータセットにも使用できます。 ロジスティック回帰 ロジスティック回帰は、ロジット(対数オッズ)関数を使用して、入力が2つの状態のいずれかにある確率を決定するアルゴリズムです。シグモイド関数を使用して、確率を0または1、真または偽のいずれかに「押しつぶします」。0.50より大きい確率はクラス1と見なされ、0.49以下の確率は0と見なされます。このため、ロジスティック回帰は通常、二値分類問題で使用されます。ただし、ロジスティック回帰は、一対他アプローチを使用して多クラス問題にも適用でき、各クラスに対して二値分類モデルを作成し、例がターゲットクラスかデータセット内の別のクラスである確率を決定します。 決定木 決定木モデルは、データセットをますます小さな部分に分割することで機能し、サブセットがそれ以上分割できなくなると、ノードと葉を持つ木が結果として得られます。決定木のノードは、異なるフィルタリング基準を使用してデータポイントに関する決定が行われる場所です。決定木の葉は、分類されたデータポイントです。決定木アルゴリズムは数値データとカテゴリカルデータの両方を扱うことができ、木の分割は特定の変数/特徴量に基づいて行われます。 ランダムフォレスト ランダムフォレストモデルは、基本的には決定木の集合体であり、個々の木の予測を平均化して最終決定を行います。ランダムフォレストアルゴリズムは観測値と特徴量をランダムに選択し、これらの選択に基づいて個々の木を構築します。 このチュートリアル記事では、Matplotlibで箱ひげ図を作成する方法を探ります。箱ひげ図は、データセットの要約統計量を視覚化するために使用され、データの範囲や分布などの分布の属性を表示します。








