⽣成对抗⽹络(Generative Adversarial Network,简称GAN)是⾮监督式学习的⼀种⽅法,通过两个神经⽹络相互博弈的⽅式进⾏学习。 其本质是从数据分布上模仿另⼀批数据体。
论⽂地址:https://arxiv.org/pdf/1406.2661.pdf
系统组成:⽣成器 (⽣成)、鉴别器 (对抗)
鉴别器 和 ⽣成器 可以根据数据特点进⾏设计。
训练过程
1. 准备要模仿对象的数据;
2. 定义模型:定义⽣成器模型和鉴别器模型(⼆分类模型);
3. 训练模型:同时训练⽣成器和鉴别器。
GAN⽹络的核⼼思想
G:⽣成
⽣成器 ---> 模拟/⽣成样本 (本质上,只是在对⼝型!)
输⼊⼀个噪声
输出⼀个样本
D:鉴别
鉴别器 --> 判定是真样本还是假的样本 (⼆分类任务)
A:对抗 — 对抗训练
鉴别器的训练⽬标:
规规矩矩的⼆分类
鉴别真假
给我真样本,那就输出真
给我假样本,那就输出假
输⼊:
从数据集中获取的样本 --> 真
通过⽣成器⽣成的样本 --> 假
损失:交叉熵
⽣成器的训练⽬标:
骗过鉴别器
⾃⼰⽣成的样本,让鉴别器觉得是真的
训练过程:
输⼊:噪声
输出:样本(假)
损失:
把⽣成的样本给鉴别器,得到鉴别器的输出
损失就是衡量鉴别器的输出跟真标签之间的差距
在训练鉴别器时,⽣成器只是正向传播,⽣成器不应该参与训练
在训练⽣成器时,鉴别器只是正向传播,鉴别器不应该参与训练
对抗: