本篇文章2449字,读完约6分钟
前言
上次,我写了gan的原始版本,它只生成高斯分布。但是兔子兄弟发现在甘的纸下面,有一个甘生成图片的例子。
因此,这足以说明gan也能生成图片,而dcgan并不是唯一能生成图片的,这与我以前对学习gan的认知大相径庭。所以我开始尝试用原始的gan来尝试生成图像,但是后来,我开始怀疑生活。
开始的时候,我使用了minst的数据集,按照我上一篇文章中提到的训练gan的方法,对原来的gan连续训练了几次,兔哥带你从头开始写gan,结果还是充满了噪音,没有手写数字的影子。
经过多次尝试,它让我怀疑我是在看假报纸还是假兔子。
在查阅了大量资料后,我在智湖看到了令人惊叹的瓦瑟斯坦·干之湖专栏(以下简称wgan)。我没有读过,也不知道。读它是令人惊奇的。读完之后,我放弃了学习dcgan的初衷,转而继续学习wgan。因此,兔子兄弟将带读者领略wgan的风采。
文章目录如下:
为什么最初的甘训练如此困难?
wgan到底是什么?
wgan的一些个人经验总结
为什么原来的甘有这么多问题?
在wasserstein gan-Zhihu专栏(也在文章中提到)中,原始gan的优化目标可以等价于在经过一定的数学推理后,使实际分布p(r)和生成的分布p(g)之间的js散度最小化。那么什么是js散度呢?为此,我们首先引入kl散度。
Kl散度也称为kl距离和相对熵。这里给出了kl散度的公式:
其中p和g是x的概率分布,在一定程度上,熵的概念可以度量两个随机变量之间的距离,因此kl散度可以度量两个概率分布之间的差异。一个特殊的点是距离是不对称的,即:
了解kl散度,js散度是很容易理解的。js散度的表达式是
显然,js散度可以被解释为使用来自pq平均分布的P和Q分布的相对熵作为P和Q之间距离的度量。此时,距离是对称的。通过数学公式的推导,可以将原gan的损耗函数改写为以下公式:
摘要:在《神奇的瓦瑟斯坦·甘志虎》一文中,分析了P和Q为0和非0时对损失函数的影响,并得出结论:无论P和Q的值是多少,js散度都是一个常数值log2。因为它是常数,所以不能讨论优化。
另一方面,从一个更流行的观点来看,kl散度和js散度在优化中是突变的,这导致了这样一个事实,即如果D训练得好,G将被摩擦在地面上,那么在训练G时梯度将是不稳定的。然而,如果D太差,G的梯度将是不正确的,这将使G向错误的方向移动。所以,这就像妻子和母亲掉进了河里,你救谁,怎么回答温度都很难把握。
wgan到底是什么
因此,wgan是指以wasserstein距离代替js散度和ks散度作为优化目标的gan模型。
那么,什么是瓦瑟斯坦距离?
下面这段话引自《神奇的瓦瑟斯坦·甘志虎》专栏
瓦瑟斯坦距离也称为地球移动距离,定义如下:
解释如下:它是所有可能的联合分布的集合,由pγ和pg组合而成。相反,其中每个分布的边分布是pγ和pg。对于每个可能的联合分布γ,可以通过采样得到一个真实样本X和一个生成样本Y,并且可以计算两个样本之间的距离,从而可以计算联合分布γ下样本的期望距离。在所有可能的联合分布中,这个期望值的下限被定义为瓦瑟斯坦距离。
直观地说,它可以理解为在这种“路径规划”下,将pγ的一堆“沙”移动到pg的“位置”所需的“消耗”,但在“最优路径规划”下,它被理解为“最小消耗”,因此它被称为运土距离。
至于在我们的训练中如何将瓦瑟斯坦距离转化为损失函数,作者利用李普希茨连续性,即一些已知的数学定理,将目标函数转化为
有一个函数f(w)满足李普希兹连续性,当取上界时,它就是瓦瑟斯坦距离。显然,这个函数可以通过深度学习技术来拟合,lipschitz连续性可以通过限制神经网络各层的权值范围来控制。
综上所述,在wgan中,D的任务不再是尽可能地将生成的样本与真实样本区分开来,而是尽可能地拟合样本之间的蛋白质距离,并将其从分类任务转化为返回任务。g的任务是试图缩短样本之间的瓦瑟斯坦距离。
因此,wgan对原始gan进行了以下更改:
d的最后一层取消了sigmoid
d的w值被限制在区间[-c,c]内。
使用rmsprop或sgd并以较低的学习速率进行优化(作者在实验中获得的技巧)
wgan的一些个人经验总结
这些经验是基于我们自己的实验,仅供参考
Wgan的论文指出,使用mlp、三层relu以及最后一层使用线性也可以达到可接受的结果,但是根据我的实验经验,对于彩色图片使用线性可能更好,因为它的数值分布是连续的。但是,对于minst,由于二值图像,线性效果较差,而批量归一化+sigmoid可以获得更好的效果。
不要在D中使用批处理规范化,估计原因是权重剪辑对批处理规范化的影响
使用反褶积生成图像优于使用全连通层,全连通层噪声大,反褶积层效果明显。
至于度量指标,wasserstein距离可以很好地度量wgan的训练过程,但它仅限于同一时间,即从运行到完成代码的过程。
另外,虽然原gan在wgan的文章中描述得很糟糕,但其他人的原gan在文章中也有成功生成图片的例子,所以我特别想问一下,如果有些朋友用原gan生成了相当质量的图片,请大家泡泡和交流。
这是我在wgan上安装的明斯特效果,并不理想。继续训练应该会有更好的效果,但是gan系列的收敛速度似乎有点感人。。。
SOA无政府状态后记
参考文献:
令人惊叹的瓦瑟斯坦·甘志虎专栏
[1701.07875]瓦瑟斯坦甘
我的github,我的wgan代码可以在这里找到
mashimaroljc/learn-gan
个人学习总结,不是教程,仅供参考。如果有任何错误,请指出并交换。
雷锋。(公开号码:雷锋。新闻:这篇文章的原作者是兔子老板,原文来自他的智虎专栏。
开发者特别会议|英伟达深度学习学院现场授课
英伟达dli高级工程师现场指导,理论联系实际,深入学习!
课程链接:mooc.ai/course/90
雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。
来源:搜狐微门户
标题:带你漫游 Wasserstein GAN
地址:http://www.shwmhw.com/shxw/62285.html