弁別子

GAN の識別子は単なる分類器です。生成ツールによって作成されたデータと実際のデータの区別を試みます。分類するデータの種類に適したネットワーク アーキテクチャを使用できます。

敵対的生成ネットワークの図。図の中央には「識別子」というラベルの付いたボックスがあります。2 つのブランチが左からこのボックスに接続されています。上位のブランチは、図の左上にある「現実世界の画像」というラベルの付いたボックスから始まります。この円柱から「サンプル」というラベルの付いたボックスに矢印が伸びています。[サンプル] というラベルの付いたボックスから [識別子] ボックスに矢印が伸びています。下側のブランチは、「ランダム入力」というラベルの付いたボックスから始まり、「分類子」ボックスにフィードされます。[ランダム入力] ボックスから [Generator] というラベルの付いたボックスに矢印が伸びています。[Generator] ボックスから 2 つ目の [Sample] ボックスに矢印が伸びています。[サンプル] ボックスから [識別子] ボックスに矢印が伸びています。分類子ボックスの右側にある 2 つの矢印は、図の右側にある 2 つのボックスにつながっています。1 つの矢印は「ディスクリミネーター損失」というラベルの付いたボックスにつながっています。もう一方の矢印は「Generator loss」というラベルの付いたボックスにつながっています。ディスкриминアト ボックスとディスкриминアト損失ボックスの周囲に、左向きの矢印と「バックプロパゲーション」というラベルが付いた黄色のボックスが描かれており、バックプロパゲーションが黄色のボックスで囲まれたシステムの部分で動作することを示しています。

図 1: 識別子トレーニングのバックプロパゲーション。

分類子のトレーニング データ

ディスкриминレータのトレーニング データは、次の 2 つのソースから取得されます。

  • 実際のデータ インスタンス(実際の人物の画像など)。ディスкриминator は、トレーニング中にこれらのインスタンスを正例として使用します。
  • 生成ツールによって作成された偽のデータ インスタンス。ディスкриминーターは、トレーニング中にこれらのインスタンスを負の例として使用します。

図 1 の 2 つの「サンプル」ボックスは、ディスクリミネータにフィードされる 2 つのデータソースを表しています。弁別子のトレーニング中、ジェネレータはトレーニングされません。ディスкриминエータがトレーニングするサンプルを生成する間、重みは一定に保たれます。

弁別子のトレーニング

ディスкриминator は 2 つの損失関数に接続します。弁別子のトレーニング中、弁別子は生成ツールの損失を無視し、弁別子の損失のみを使用します。ジェネレータの損失は、次のセクションで説明するように、ジェネレータのトレーニング中に使用されます。

ディスкриминエータのトレーニング中:

  1. 識別子は、生成器からの実際のデータと偽のデータの両方を分類します。
  2. 弁別子損失は、本物のインスタンスを偽物として誤分類した場合や、偽物のインスタンスを本物として誤分類した場合に、弁別子をペナルティにします。
  3. 弁別子は、弁別子ネットワークを介して弁別子損失からバックプロパゲーションを介して重みを更新します。

次のセクションでは、生成元の損失が識別子に接続する理由について説明します。