9.GAN(李宏毅)

早过忘川 提交于 2020-01-11 10:08:26

1.GAN

1.1GAN基本思想

在这里插入图片描述
GAN的基本想法是,我们已有一个目标资料集Pdata(x)(x:)P_{data}(x)_{(x可以是任何目标:图片)},这也是我们希望机器可以生成的资料分布。
图上蓝色区域是高机率的部份,其它部份是低的部份,只要从蓝色区域中生成的图像都可以是完美的,而从蓝色外区域生成的图像就会是模糊的。

如何从空间中去sample出完美的照片?就是利用Generator来生成。
在这里插入图片描述

Generator-GG可以是一个nn,输入一个Vector-zz,输出一个Vector-xx,如果xx的Dimension跟照片一样,那就可以将它视为照片。如果现在输入的是Normal Distribution,那输出的就是另一个Distribution。因为经过nn的转换,这个输出的Distribution可能会是一个异常复杂的分布,即PG(x)P_{G}(x),而我们要做的就是让生成的资料分布PG(x)P_{G}(x)跟原始的资料分布Pdata(x)P_{data}(x)愈接近愈好。

这个案例的难处在于我们无法在给定xx情况下直接计算PG(x)P_{G}(x),如果行,就可以直接计算最大似然概率就可以,但无法,唯一能做的就是从空间中sample
在这里插入图片描述在这里插入图片描述
GAN的想法是这样的:
1.第一代的Generator:几乎是随机产生
2.从Normal Distribution随机抽样一个点,经过Generator-v1v_1:因为Generator-v1v_1是随机产生的,非常弱, 因此生成的照片也非常怪异。
3.训练一个Discriminator:输入照片,输出0/1,作用在于辨识输入的照片真假,Generator所生成的照片应该为0;真正照片Pdata(x)P_{data}(x)应该为1。Discriminator的loss与PG(x)P_{G}(x)Pdata(x)P_{data}(x)之间的差异有关,愈大代表两个空间愈接近。
4.Generator会更新它的参数:升级为Generator-v2v_2,希望v2v_2所生成的照片可以让Discriminator标记为1。
5.Discriminator也更新它的参数,升级为Discriminator-v2v_2,可以分辨Generator-v2v_2的照片为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,分别由θd,θg\theta_d,\theta_g所生成
2.在每次训练迭代中,我们会随机由Pdata(x)P_{data}(x)中sample出m笔资料x1,,,,xmx_1,\cdot,\cdot,\cdot,x_m.
如果今天处理的是影像生成,那Pdata(x)P_{data}(x)即你的照片资料集
3.同时也要让Generator由Normal DistributionPprior(x)P_{prior}(x)中sample出m笔资料z1,,,,zmz_1,\cdot,\cdot,\cdot,z_m.
4.将z1,,,,zmz_1,\cdot,\cdot,\cdot,z_m.丢到Generator,得到x~1,,,,x~m\tilde x_1,\cdot,\cdot,\cdot,\tilde x_m.
5.更新θd\theta_d,最大化function-V~\tilde V
6.由Pprior(x)P_{prior}(x)中sample出另外的m笔资料
7.更新θg\theta_g,最小化function-V~\tilde V
步骤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可以真正衡量两个空间的距离。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!