Discriminator

GAN の判別要素は簡単に分類できます。実際のデータとジェネレータによって作成されたデータを区別しようとします。分類するデータの種類に適したネットワーク アーキテクチャを使用できます。

敵対的生成ネットワーク図。図の中央には、'discriminator' というラベルの付いたボックスがあります。左から 2 つの分岐がこの箱に入ります。上の分岐は、図の左上から「#real_images」というラベルの付いたボックスで始まります。この円柱から、「'サンプル'」というラベルの付いた箱に矢印が伸びています。'Sample' というラベルのボックスからの矢印が 'Discriminator' ボックスに入力されます。下の分岐は、'Discriminator' ボックスに入って、'Random Input' というラベルの付いたボックスで始めます。矢印が「ランダム入力」ボックスから「Generator」というラベルの付いたボックスに移動します。矢印が Generator から 2 番目のボックスまで進みます。矢印が [サンプル] ボックスから [識別] ボックスまで進みます。Discriminator ボックスの右側に 2 つの矢印があり、図の右側に 2 つのボックスがあります。1 つの矢印が「差別的損失」のラベルが付いたボックスにつながる。もう 1 つの矢印は、発電機の損失と書かれたボックスまでつながっています。左を指す矢印と「' Backpropagation'」という単語でラベル付けされた黄色のボックスは、判別ボックスと周囲の損失ボックスの周囲に描画され、黄色のボックスで囲まれたシステム部分に対してバックプロパゲーションが機能していることを示します。

図 1: 判別器トレーニングでの逆伝播。

Discriminator トレーニング データ

差別ユーザーのトレーニング データは、次の 2 つのソースから取得されます。

  • 実際のデータ インスタンス(人物の実際の写真など)。判別ツールは、トレーニング中にこれらのインスタンスをポジティブ サンプルとして使用します。
  • ジェネレータによって作成された偽データ インスタンス。判別ツールはトレーニング中にこれらのインスタンスをネガティブ サンプルとして使用します。

図 1 では、2 つの「サンプル」ボックスが、判別器にフィードする 2 つのデータソースを表しています。識別器のトレーニング中、ジェネレータはトレーニングされません。重みは一定のままですが、判別関数でトレーニングの例が生成されます。

Discriminator のトレーニング

判別ツールは 2 つの損失関数に接続します。識別器のトレーニングでは、識別器はジェネレータ損失を無視し、判別器損失のみを使用します。次のセクションで説明するように、ジェネレータ トレーニング中に発電機損失を使用します。

差別者トレーニング中:

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

次のセクションでは、発電機の損失が判別器につながる理由を確認します。