1.GAN
1.1GAN基本思想
GAN的基本想法是,我们已有一个目标资料集,这也是我们希望机器可以生成的资料分布。
图上蓝色区域是高机率的部份,其它部份是低的部份,只要从蓝色区域中生成的图像都可以是完美的,而从蓝色外区域生成的图像就会是模糊的。
如何从空间中去sample出完美的照片?就是利用Generator来生成。
Generator-可以是一个nn,输入一个Vector-,输出一个Vector-,如果的Dimension跟照片一样,那就可以将它视为照片。如果现在输入的是Normal Distribution,那输出的就是另一个Distribution。因为经过nn的转换,这个输出的Distribution可能会是一个异常复杂的分布,即,而我们要做的就是让生成的资料分布跟原始的资料分布愈接近愈好。
这个案例的难处在于我们无法在给定情况下直接计算,如果行,就可以直接计算最大似然概率就可以,但无法,唯一能做的就是从空间中sample。
GAN的想法是这样的:
1.第一代的Generator:几乎是随机产生
2.从Normal Distribution随机抽样一个点,经过Generator-:因为Generator-是随机产生的,非常弱, 因此生成的照片也非常怪异。
3.训练一个Discriminator:输入照片,输出0/1,作用在于辨识输入的照片真假,Generator所生成的照片应该为0;真正照片应该为1。Discriminator的loss与,之间的差异有关,愈大代表两个空间愈接近。
4.Generator会更新它的参数:升级为Generator-,希望所生成的照片可以让Discriminator标记为1。
5.Discriminator也更新它的参数,升级为Discriminator-,可以分辨Generator-的照片为0。
1.2GAN直觉
绿色的点代表真正的资料
绿色的曲线代表真正资料集的资料分布
蓝色的点代表机器生成的资料
蓝色的曲线代表机器生成资料集的资料分布
Discriminator的功用:
输入蓝色的点,输出接近0,代表辨识出假资料
输入绿色的点,输出接近1,真资料输出为1。
假设在1维空间中训练Discriminator,那它的结果就会如红线走势—上图序号1,Generator会希望,它所生成的资料也可以被Discriminator判定为1,因此在迭代更新之后,它所生成的资料会向右移—上图序号2。
调整Generator参数非常困难,上图2虽然生成资料右移了,但是明显跑过头。
这时候Discriminator也会迭代更新,重新判断生成的资料与实际资料的标记,也因此走势也跟着调整,然后Generator又想要再继续骗,因此所生成的资料分布又会向左移动回来—上图序号3。这时候因为蓝绿双方的值分布已经接近,Discriminator也无法有效分辨,因此会发现绿色点所输出的值不再与蓝色点差异那么大,一直迭代至蓝绿空间重叠,并且Discriminator的输出已无法再做出分辨,走势就会呈现水平,而Generator也没有再生成的必要—上图序号4。
1.3GAN算法
算法过程:
1.初始化Discriminator与Generator,分别由所生成
2.在每次训练迭代中,我们会随机由中sample出m笔资料.
如果今天处理的是影像生成,那即你的照片资料集
3.同时也要让Generator由Normal Distribution中sample出m笔资料.
4.将.丢到Generator,得到.
5.更新,最大化function-
6.由中sample出另外的m笔资料
7.更新,最小化function-
步骤2-5训练的是Discriminator,训练k次,步骤6-7训练的是Generator,只训练一次。
WGAN
WGAN不同之处在于它不是计算两个资料分布的f-divergence散度,而是Earth Mover’s Distance,其中Earth Mover’s Distance又称为Wasserstein Distance,故称WGAN。
更复杂的来看,两个土堆P,Q,我们希望将P铲成Q的样子,这有很多种方式可以达成,每一种方式即称为『moving plan』,而不同的方法就会有不同的Distance。找出所有的plan,看那一种plan的average distance最小,我们就采用它。Earth Mover’s Distance可以真正衡量两个空间的距离。
来源:CSDN
作者:爱奋斗的小仙女
链接:https://blog.csdn.net/weixin_43585712/article/details/103792249