其他分享
首页 > 其他分享> > WDK李宏毅学习笔记第十六周01_Theory behind GAN

WDK李宏毅学习笔记第十六周01_Theory behind GAN

作者:互联网

Theory behind GAN

文章目录


摘要

本章主要讲的是GAN的理论依据,从本章中可以知道生成的本质就是找出目标在高维空间中的分布。正因如此,才有了没有GAN前用来做生成的方法—极大似然估计,但是极大似然估计有其局限性,当Function比较简单时,就没办法很好的解决问题,当Function太过复杂,可能无法求解,于是便有了Generator(G),用神经网络作为Function,理论上来说,神经网络可以构成所有的Function,而在其求解时可以用优化方法自动求解,很好的突破了极大似然估计的局限性,这个就是GAN的雏形,在训练时,我们还需要一个Discriminator(D),用来对G生成的数据与训练数据进行比较,D就像是一个测量器,测量出G生成的数据和训练数据的差距,再反馈给G,G知道差距后就移动means去缩小差距,完善后的G再次生成数据丢给D,D测量出差距后反馈给G,循环往复,直至找到合适的G。

1、Generation的本质

我们在将image转换为高维空间的点做生成时,实际上只有sample出的点在某一个区域内时生成的图片才是符合要求的(如下图以生成人脸为例),而所以在生成时,我们要做的事,其实就是找出该区域。
在这里插入图片描述

2、GAN的演变

2.1 GAN之前的生成—极大似然估计

GAN之前用来生成的方法是最大似然估计(Maximum Likelihood Estimation),最大似然估计的做法是将training data作为真实分布P_data中sample出来的,我们再找一个含参数的分布P_G(x,θ),当我们给定一组参数时,就可求用该分布下的training data的概率,讲所有data的概率相乘,以此构建Likehood Function,更新参数θ,直至找到能使Function最大的参数。
在这里插入图片描述
通常情况下P_G是高斯方程的model,但是高斯方程还是有它的局限性,太过复杂的方程则计算量大且不一定能算出P_G,于是有个新的想法,用神经网络作为function,也就是GAN。

2.2 Generator(G)

G做的事情是吃正态分布的随机值Z然后输出其生成东西G(z),多个G(z)也就构成了一个分布P_G(x),在训练时,我们希望该分布与P_data(x)越接近越好,于是就可以由此构建损失函数了。
在这里插入图片描述
例如在做图片生成时,我们就是从Database中sample一些图片,再用正态分布随机值生成一些图片,让后者生成的图片与前者越接近越好。
在这里插入图片描述

2.3 Discriminator(D)

在训练时,我们还需要一个D,来控制生成的图片往我们想要的方向去生成,从P_data(x) sample出来的数据D会给其高分,从P_G(X) sample出来的数据,D会给其低分,这其实就和分类是一样的。
在这里插入图片描述
当P_data和P_G相似度高时,D就没办法很好的完成分类,此时就说明我们已经得到了较好的G。当P_data和P_G相似度低时,就说明model还得继续训练,也就是说,G要做的事就是骗过D。
在这里插入图片描述

2.4 公式化简

Max V(G,D)公式可以做如下化简:
在这里插入图片描述
因为积分是单调函数,所以要Maximizing上面这个积分函数等价于要Maximizing积分内部的函数:
在这里插入图片描述
要Maximizing上式,我们可以对该式求导数,找出取极大值时D的值:
在这里插入图片描述
将D的值代入原式得到V的极大值:
在这里插入图片描述
于是我们就得到了极大值点:
在这里插入图片描述
V的值后面两项较复杂,我们可以用一个标志符表示,于是我们将后两项叫做Jensen-Shannon divergence(J-S散度)。
在这里插入图片描述
于是我们的问题就可以用以下方程表示:
在这里插入图片描述

2.5 算法

明显,最后该Function很可能是个分段函数,分段函数可以求导吗?是可以的,该model训练的过程就像是一个分段函数求最小值的过程。
在这里插入图片描述

2.6 In practice

实际上在做GAN的时候,是没法算Ex的,所以都是用sample代替的,我们分别将P_data和P_G sample的data丢给D计算出分数求平均值求得V的均值,这其实就是在training一个二分类的model。
在这里插入图片描述

方法

极大似然估计的方法是去找和training data一样的分布,极大似然估计一般是用高斯方程作为Function,GAN则是用神经网络作为Function(Generator),然后再用一个神经网络D去测量G生成的数据与training data的差距。总的来说就是D负责测量divergence反馈给G,G收到反馈后再缩小divergence。
在这里插入图片描述

结论与展望

从理论层面看我们可以发现极大似然估计的方法因为其Function的构建导致其局限性较大,而用神经网络作为Function的GAN则可以很好的打破其局限性,本章中的G是负责生成,D负责测量divergence反馈给G,这只是GAN最初的雏形,从前面几章我们可以知道,GAN还有很多变形例如StarGAN、Supervised Conditional GAN等,G和D也有很多架构,可以根据实际问题来搭建最合适的架构。

标签:Function,似然,01,Theory,李宏毅,生成,sample,GAN,data
来源: https://blog.csdn.net/sunningzhzh/article/details/119145957