GAN(生成対向ネットワーク)

1. ジェネレータ(Generator)

ジェネレータは、ランダムなノイズベクトル(通常は正規分布に従う乱数)からデータを生成するネットワークです。ジェネレータの目標は、ディスクリミネータを騙すようなリアルなデータを生成することです。

  • 入力: ランダムなノイズベクトル
  • 出力: 生成されたデータ(例えば、画像)

ジェネレータの損失関数は、ディスクリミネータが生成データを「本物」と誤認する確率を最大化するように設計されています。

2. ディスクリミネータ(Discriminator)

ディスクリミネータは、データが本物(実際のデータセットのデータ)か偽物(ジェネレータが生成したデータ)かを判別するネットワークです。ディスクリミネータの目標は、生成データと実際のデータを正確に識別することです。

  • 入力: 実際のデータまたはジェネレータが生成したデータ
  • 出力: 本物か偽物かの判定(通常は確率)

ディスクリミネータの損失関数は、本物のデータに対して「本物」と判定し、偽物のデータに対して「偽物」と判定する確率を最大化するように設計されています。

GANの学習プロセス

  1. ジェネレータの訓練: ランダムなノイズベクトルからデータを生成し、そのデータをディスクリミネータに入力します。ディスクリミネータが生成データを「本物」と誤認するようにジェネレータを調整します。
  2. ディスクリミネータの訓練: 実際のデータとジェネレータが生成したデータの両方をディスクリミネータに入力し、それぞれを正しく判別できるようにディスクリミネータを調整します。
  3. 反復: ジェネレータとディスクリミネータを交互に訓練し、両者が競い合うことで、ジェネレータはよりリアルなデータを生成し、ディスクリミネータはそれを識別する能力を高めます。

まとめ

GANの学習では、以下の2つのネットワークが競い合います:

  • ジェネレータ(Generator): ランダムなノイズからリアルなデータを生成する。
  • ディスクリミネータ(Discriminator): 入力データが本物か偽物かを判別する。

この競争的なプロセスにより、ジェネレータはますますリアルなデータを生成できるようになり、ディスクリミネータはそのデータを識別する能力を向上させます。