1. ジェネレータ(Generator)
ジェネレータは、ランダムなノイズベクトル(通常は正規分布に従う乱数)からデータを生成するネットワークです。ジェネレータの目標は、ディスクリミネータを騙すようなリアルなデータを生成することです。
- 入力: ランダムなノイズベクトル
- 出力: 生成されたデータ(例えば、画像)
ジェネレータの損失関数は、ディスクリミネータが生成データを「本物」と誤認する確率を最大化するように設計されています。
2. ディスクリミネータ(Discriminator)
ディスクリミネータは、データが本物(実際のデータセットのデータ)か偽物(ジェネレータが生成したデータ)かを判別するネットワークです。ディスクリミネータの目標は、生成データと実際のデータを正確に識別することです。
- 入力: 実際のデータまたはジェネレータが生成したデータ
- 出力: 本物か偽物かの判定(通常は確率)
ディスクリミネータの損失関数は、本物のデータに対して「本物」と判定し、偽物のデータに対して「偽物」と判定する確率を最大化するように設計されています。
GANの学習プロセス
- ジェネレータの訓練: ランダムなノイズベクトルからデータを生成し、そのデータをディスクリミネータに入力します。ディスクリミネータが生成データを「本物」と誤認するようにジェネレータを調整します。
- ディスクリミネータの訓練: 実際のデータとジェネレータが生成したデータの両方をディスクリミネータに入力し、それぞれを正しく判別できるようにディスクリミネータを調整します。
- 反復: ジェネレータとディスクリミネータを交互に訓練し、両者が競い合うことで、ジェネレータはよりリアルなデータを生成し、ディスクリミネータはそれを識別する能力を高めます。
まとめ
GANの学習では、以下の2つのネットワークが競い合います:
- ジェネレータ(Generator): ランダムなノイズからリアルなデータを生成する。
- ディスクリミネータ(Discriminator): 入力データが本物か偽物かを判別する。
この競争的なプロセスにより、ジェネレータはますますリアルなデータを生成できるようになり、ディスクリミネータはそのデータを識別する能力を向上させます。