ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-08-01 18:04:35  阅读:218  来源: 互联网

标签:Function 似然 01 Theory 李宏毅 生成 sample GAN data


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有