GAN(敵対的生成ネットワーク)
Generator と Discriminator の 2 ネットワークを競合させて学習する生成モデル。Generator はノイズ から偽データを生成し、Discriminator は本物(実データ=ラベル1)と偽物(生成データ=ラベル0)を識別する。両者を交互に最適化し、Generator が Discriminator を騙せるようになるとデータ分布を捉えた生成が可能になる。
学習ループ
- Discriminator 更新: 実データに対する損失
loss_real(目標1)と生成データに対する損失loss_fake(目標0)の和を最小化。 - Generator 更新: 生成データを Discriminator に通し、目標を「本物(1)」として騙すよう損失を最小化。
実装上は Generator が LeakyReLU + tanh の MLP、Discriminator が LeakyReLU + Dropout + sigmoid の MLP といった素朴な構成(MNIST 生成)から始められる。
派生
- cyclegan-generator / cyclegan-discriminator(CycleGAN): 対応ペアのない 2 ドメイン間の画像変換。Cycle consistency でペアなし変換を学習。
- VQGAN: ベクトル量子化を組み込んだ GAN で、触覚画像のコンパクトな潜在表現学習(UniT, ManiFeel 文脈)にも応用される。
GAN は variational-autoencoder や diffusion-model と並ぶ深層生成モデルの一系統で、Deepfake 検出などの応用・対策の対象にもなる。
関連
- variational-autoencoder / diffusion-model
- pytorch
- _moc-ml-robotics(ml-robotics クラスタの atomic ノート群)