GAN--Generative Adversarial Network

前置知识:

1.多层感知机(MLP)

有博客说它的别名叫:人工神经网络。具体可以看:多层感知机(MLP)简介-CSDN博客,原来get到一点点的人工神经网络居然是MLP。

MLP也可以理解为机器自己教自己去干某些事情。参考视频:极简教程,关于多层感知机(MLP)你需要知道的一切_哔哩哔哩_bilibili

一切事物都可以建模为自由落体模型。这个三段论还蛮有意思的。

(以下照片截自B站视频)

下图第三点:如果错误,考虑到自由落体,将黑盒子的状态设置为18楼的意义在于,犯过一次错后,再犯一次错误的概率会减小,同理,如果正确,再次推测正确的概率会提升。

将照片性别识别机器类比为多层感知机。

那么此时,三段论的结果:MLP可以自己去解决问题。

2.香农熵+交叉熵+KL散度

推荐视频:【10分钟】了解香农熵,交叉熵和KL散度_哔哩哔哩_bilibili

(以下照片截自B站视频)

首先,I(x)指的是x所包含的信息,当一个事物越容易发生时,它所能展现出的信息就越少(eg.太阳照常升起带来的信息很少,太阳不升起了那带来的信息可就太大了...)所以我们对p(x)取倒数并放到了log里面。那么第一行公式大家就理解了~。下面开始举例子,有投掷均等的硬币(正反概率都是\frac{1}{2}),他们所蕴含的信息公式就在fair coin的两行计算式中。h--硬币正面,t--硬币反面。uneven coin就是不均等的硬币,正面概率较小,反面概率较大。信息这一概念就说到这里啦

接下来这段是香农熵,香农熵可以理解为对信息求个数学期望。下面的两个例子还是两种硬币。

这一段来到了交叉熵,第一行是硬币投掷正反两面的原本概率,第二行是我们猜测的概率,交叉熵就是对原本的概率*猜测的信息量进行求和,可以简单说成交叉相乘再求和。例子在最后四行,可以简单理解橙色文字。

Here,来到了KL散度,KL散度是对两个分布的difference进行的衡量,图片的第一行即为真实的p和我们生成的q的分布的差值。KL散度有两个性质:KL散度一定大于等于0,KL散度不是对称的。这里解释一下最后一行公式,实验中,我们希望KL散度的值越小越好,即生成的q和原本的p的分布越接近越好。那么对KL散度中的\theta做梯度下降,因为H(p)\theta无关,最后只剩下H(p,q_\theta),对其做梯度下降。

论文:

title:

我们先来看题目:generative,形容词,有生产能力的,生成的;adversarial,形容词,对抗性的,敌对的;nets,名词,网。那么题目就是:生成对抗性网络。

abstract:

GAN是一个新的框架,在这个框架中,我们要训练两个模型,分别是generative model(生成模型),discriminative model(辨别模型)。我们希望解决什么问题呢?我们希望生成一个generative model,使它生成的图片与测试集里的图片无限的接近,让discriminative model无法辨别。也就是说在训练两个模型的过程中,generative model希望discriminative model无法分开自己生成的图片和测试集中的图片,而discriminative model希望自己可以分清,在训练的过程中,两种模型相互促进,最后得到了一个较好的generative model。

橙色方块中提到了相关的结论,我们后续再说。在摘要的最后,作者提出了该模型的特点:在G和D由多层感知机构成的情况下,整个系统可以适应反向传播进行训练,并且不需要任何马尔科夫链或展开推理网络。

introduction:

        对于上文提到的希望解决什么问题,原来的解决方案的不足是:在最大似然估计和相关策略中难以逼近许多棘手的概率计算,在生成上下文中难以利用分段线性单元的好处。为了回避这些问题,新的框架被提出。

        在introduction的最后,作者提出对抗性网络的定义:G模型(generative)和D模型(discriminative)都是多层感知机MLP。并且,在对抗性网络下,可以只使用非常成功的反向传播和退出算法来训练这两个模型,只使用正向传播从生成模型中提取样本。不需要近似的推理或马尔可夫链。

adversarial nets:

        首先看生成器G,x是data,p_{g}是指数据的生成分布,z是噪音,p_{z}(z)是指噪音的分布,模型G是想要通过z来映射到x,其中\theta _{g}是可微函数G中的一个参数。

        再来看分辨器D,\theta_{d}是D的一个参数,输入x放入D中会得到一个标量,该标量会帮助我们判断该图片来自x还是生成器G生成的。D(x)表示x来自于数据而不是p_{g}的概率。即如果判断该图片是生成器生成的话,D(x)=0;即如果判断该图片来自测试集,D(x)=1

        作者训练G:min\{log(1-D(G(z)))\},生成器想让分辨器D分辨错误,即希望D(G(z))=1,即\{log(1-D(G(z)))\}\rightarrow -\infty

        接下来,作者提出了价值函数V(D,G),加号的前半部分是有关于真实数据的,如果D足够准确,那么D(x)=1log( D(x) )=0;加号的后半部分,如果D足够准确,后半部分公式会趋于0,反之,后半部分公式会趋于无穷小。从生成器G的角度看,只和后半部分公式有关,即希望公式无穷小。从分辨器D的角度看,和前后两部分公式都有关,都希望两部分公式趋于0,即取到最大值。

theoratical results:

先看图片,四张图片的x指的是真实数据,z数据是去映射到x的噪音,蓝色线是分辨函数D,黑色点线是测试数据集的分布,绿色线是生成函数G生成图片的分布。随着生成函数G慢慢调整,绿色线条和黑色点线慢慢重合,直到分辨函数D无法识别。

4.1 

全局最优解\Leftrightarrowp_g=p_{data}

此时令G函数固定住,来证明D函数是\frac{p_{data}(x)}{p_{data}(x)+p_g(x)}时有全局最优解,如果是最优解,则D函数的值是\frac{1}{2}。因为G函数固定住了,那么我们就需要使函数取得最大值。

这里对adversarial nets中的公式进行展开:

这里x=G(z),第二行由此替换,并进行合并。另p_{data}(x)=aD(x)=yp_g(x)=b。则有:

该函数是凸函数,在y=\frac{a}{a+b}处有最大值,即y=\frac{p_{data}(x)}{p_{data}(x)+p_g(x)}。把求出的最优函数带回去,即为:

此时的D函数已经确定,现在从G函数的角度来讲,要求整个函数的最小值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值