Please enable JavaScript.
Coggle requires JavaScript to display documents.
生成对抗网络 (步骤 (1. 随机生成生成器v1, 3. 训练生成器v2 将鉴别器v1直接接在生成器v2后面(接鉴别器v1是为了让生成器v2骗过鉴…
概述
模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出
组件
生成器Generator
学习真实数据(图像)分布从而让自身生成的数据(图像)更加真实,以骗过判别器
鉴别器(discriminator)
对接收的(数据)图片进行真假判别
概述
并不要求生成器和鉴别器是神经网络,只需要能拟合生成函数即可,由于神经网络的表示能力很强,所以一般都用神经网络
-
步骤
-
3. 训练生成器v2
- 将鉴别器v1直接接在生成器v2后面(接鉴别器v1是为了让生成器v2骗过鉴别器)
- 让对拼接后的生成器随机生成数据,经过鉴别器v1后得到概率p,将p和1求交叉熵作为损失函数
- 保持对接后的鉴别器v1参数不变,最小化损失函数并训练生成器v2(不让鉴别器v1更新参数是因为如果可以,那么鉴别器只要输出1就行了,起不到训练生成器的作用)
- 当生成器v2经过鉴别器v1的数据都为1时停止训练
4. 循环重复2、3步
直到鉴别器完全不能区分生成图片和源图片为止
2. 训练鉴别器v1
- 将原始数据标为True,生成器v1生成的数据标为False
- 从上述步骤随机抽取样本m
- 用交叉熵作用损失函数训练鉴别器,直至完全正确
原理
- 在已知数据分布Pdata的情况下,通过生成器生成分布Pg,并希望Pdata和Pg的分布是一样的
- 如果Pdata已知,那么我们就可以通过KL散度来计算Pdata和Pg之间的差,然后最小化KL散度的差来实现Pg模拟Pdata
- 实际情况下我们并不知道Pdata,但当Pdata的数据足够多时,我们可以从中随机抽出样本,并让Pg拟合样本分布
- 循环训练鉴别器、生成器,将Pg的分布逐步靠近Pdata,优点像梯度下降的训练方式
-
优点
用来衡量生成图片好坏的标准并不能很好的完成想要实现的目的时,就可以加上判别模型学习判别规则