損失関数

GAN は確率分布を複製しようとします。したがって、GAN によって生成されたデータの分布と実際のデータの分布との間の距離を反映する損失関数を使用する必要があります。

GAN 損失関数内の 2 つの分布の差を、どのように取得するか。この質問は積極的な研究分野であり、多くのアプローチが提案されてきました。ここでは、TF-GAN に実装されている 2 つの一般的な GAN 損失関数について説明します。

TF-GAN には、他にも多くの損失関数が実装されています。

損失関数が 1 つなのか、2 つなのか

GAN には、ジェネレータ トレーニング用と散布者トレーニング用の 2 つの損失関数があります。2 つの損失関数を連携させて、確率分布間の距離を測定するにはどうすればよいですか。

ここでは、損失スキームでは、確率分布間の距離の単一の測定値からジェネレータと判別器の損失が導き出されます。ただし、どちらのスキームでも、ジェネレータは距離測定で 1 つの用語、つまり架空のデータの分布を反映する用語にのみ影響します。そのため、ジェネレータ トレーニング中に、実際のデータの分布を反映する他の用語を削除します。

生成器と判別器の損失は、単一の式から導き出されるものであっても、最終的には異なって見えます。

Minimax 損失

GAN を導入した論文では、ジェネレータは次の関数を最小化しようとし、判別ツールはその最大化を試みます。

$$E_x[log(D(x))] + E_z[log(1 - D(G(z)))]$$

この関数では次のことを行います。

  • D(x) は、実際のデータ インスタンス x が本当である確率の推定値です。
  • Ex は、すべての実際のデータ インスタンスに対する期待値です。
  • G(z) は、ノイズ z が与えられたときのジェネレータの出力です。
  • D(G(z)) は、偽のインスタンスが本物である可能性の判別ツールです。
  • Ez は、ジェネレータのすべてのランダム入力に対する期待値です(実際には、生成されたすべての疑似インスタンス G(z)に対する期待値です)。
  • 数式は、実際の分布と生成された分布の交差エントロピーから導出します。

ジェネレータは、関数の log(D(x)) 用語に直接影響しないため、ジェネレータの場合、損失の最小化は log(1 - D(G(z))) の最小化と同じです。

TF-GAN では、この損失関数の実装について、minimax_discriminator_loss と minimax_generator_loss を参照してください。

修正された Minimax 損失

オリジナルの GAN の論文では、上記のミニマックス損失関数により、判別器の仕事が非常に容易になると、GAN のトレーニングの初期段階で GAN がスタックする場合があります。そのため、このドキュメントでは、発電機が log D(G(z)) を最大化できるように発電機の損失を変更することを提案しています。

TF-GAN では、この変更の実装について modified_generator_loss をご覧ください。

ワッサースタインロス

デフォルトでは、TF-GAN は Wasserstein 損失を使用します。

この損失関数は、識別器が実際にインスタンスを分類しない GAN スキーム(「Wasserstein GAN」または「WGAN」と呼ばれます)の変更に依存します。インスタンスごとに数値を出力します。この数値は 1 未満でなくても 0 より大きい必要はありません。0.5 をしきい値として使用して、インスタンスが本物か偽物かを判定できます。Discriminator のトレーニングでは、架空のインスタンスよりも、実際のインスタンスに対する出力が大きくなるようにします。

WGAN 差別要因は本物と偽物を区別できないことから、WGAN 差別要因は実際には「差別的」と呼んでいます。この違いは理論上重要ですが、実際的な目的では、損失関数の入力は確率である必要はないという確認応答として扱うことができます。

損失関数自体は明らかに単純です。

批評的損失: D(x) - D(G(z))

判別関数はこの関数の最大化を試みます。つまり、実際のインスタンスでの出力と疑似インスタンスでの出力の差を最大化しようとします。

Generator Loss:D(G(z))

ジェネレータは、この関数を最大化しようとします。つまり、架空のインスタンスに対して、ディスクリミネータの出力を最大化しようとします。

これらの関数で、次のようにします。

  • D(x) は、実際のインスタンスに対する評論家の出力です。
  • G(z) は、ノイズ z が与えられたときのジェネレータの出力です。
  • D(G(z)) は、架空のインスタンスに対する評論家の出力です。
  • 評論家 D の出力は 1 から 0 の間である必要はありません
  • 数式は、実際の分布と生成された分布の間の地球移動距離から導出されます。

TF-GAN の実装については、wasserstein_generator_loss と wasserstein_discriminator_loss をご覧ください。

要件

Wasserstein GAN(または WGAN)の理論的な正当化は、GAN 全体の重みをクリップして制限範囲内に維持する必要があります。

メリット

Wasserstein GAN は、minimax ベースの GAN よりも動作しにくくなり、勾配消失の問題を回避できます。また、Earth Mover の距離には、真の指標である「確率分布の空間内の距離の測定」であるという利点もあります。その意味では、交差エントロピーは指標ではありません。