GAN の識別子は単なる分類器です。生成ツールによって作成されたデータと実際のデータの区別を試みます。分類するデータの種類に適したネットワーク アーキテクチャを使用できます。
図 1: 識別子トレーニングのバックプロパゲーション。
分類子のトレーニング データ
ディスкриминレータのトレーニング データは、次の 2 つのソースから取得されます。
- 実際のデータ インスタンス(実際の人物の画像など)。ディスкриминator は、トレーニング中にこれらのインスタンスを正例として使用します。
- 生成ツールによって作成された偽のデータ インスタンス。ディスкриминーターは、トレーニング中にこれらのインスタンスを負の例として使用します。
図 1 の 2 つの「サンプル」ボックスは、ディスクリミネータにフィードされる 2 つのデータソースを表しています。弁別子のトレーニング中、ジェネレータはトレーニングされません。ディスкриминエータがトレーニングするサンプルを生成する間、重みは一定に保たれます。
弁別子のトレーニング
ディスкриминator は 2 つの損失関数に接続します。弁別子のトレーニング中、弁別子は生成ツールの損失を無視し、弁別子の損失のみを使用します。ジェネレータの損失は、次のセクションで説明するように、ジェネレータのトレーニング中に使用されます。
ディスкриминエータのトレーニング中:
- 識別子は、生成器からの実際のデータと偽のデータの両方を分類します。
- 弁別子損失は、本物のインスタンスを偽物として誤分類した場合や、偽物のインスタンスを本物として誤分類した場合に、弁別子をペナルティにします。
- 弁別子は、弁別子ネットワークを介して弁別子損失からバックプロパゲーションを介して重みを更新します。
次のセクションでは、生成元の損失が識別子に接続する理由について説明します。