2020李宏毅学习笔记——45.Unsupervised learning Deep Generative Model(Part II)

这节我觉得主要是讲VAE的好处:

1.从原理上来讲

1.1 先看一下VAE经典框架:
在这里插入图片描述
1.2 解释这几个参数
可以看到每个encoder分了两个东西σ和m,每个东西三个值,所以相当于对code加上了噪声,相当于code有一定的范围,因此可以在这个范围内生成对应的图片。
在这里插入图片描述
1.3 why VAE?
注意看中间部分,两个图片的code加上噪声之后中间有重叠部分,也就是说这个地方既要可以生成满月,又要生成半月图片,根据输入和输出之间的误差最小的目标,这个位置的图片只能是介于满月和半月之间了。

所以在VAE的模型中encoder生成的两个部分σ和m,m代表的是原始code,最后的c是加上了噪声的code,σ代表原始code的variance,由于variance是正值,所以σ做了指数操作,确保其为正数(那个公式:
在这里插入图片描述
,模型中的e是从一个正态分布中sample出来的值。正态分布的variance是固定的,因此噪声的variance是由σ决定的,因此variance是由模型自动学习到的。因此如果让机器自己来学习这个噪声variance是有点问题的(类似考试完让学生自己改卷,每个人都会改为100分),机器会直接让这个variance等于,那么就相当于没有噪声,这个模型就和普通的AE是一样的了,没有什么区别。因此要对这个variance加以限制,不能让其太小,甚至等于零。
这个限制就是这个公式啦:
在这里插入图片描述
这个公式里面exp(σi)用蓝色表示,(1+σi)用红色表示,
exp(σi)−(1+σi)用绿色表示,画出来:
在这里插入图片描述
从绿色曲线可知,当σi接近0时,variance接近1。
最后的((m_i)^2)是L2正则化,让结果比较sparise。
以上是Intuitive Reason的说法,下面是论文中比较官方的说法。

2.从科学角度解释

2.1 先明确一下目标:宝可梦分布
P(x):Maxminim ,如果图形越接近宝可梦P(x)就越大,图形乱七八糟P(x)就越小。

GMM:要估计P(x)就要用GMM
在这里插入图片描述
2.2 GMM Gaussian Mixture Model
在这里插入图片描述
在这里插入图片描述
P(m)是组成混合高斯的每一个小高斯的权重,一共有m个高斯
如何从这m个简单高斯分布中sample 数据呢?
先要决定从一个高斯进行sample,也就是把这些个高斯分布看做一个multinomial的问题
于是这个决定的过程可以看做是一个关于m个样本的采样,从第m个高斯采样的**概率是P(m)找到指定的高斯了以后,再根据这个高斯的参数(μm,Σm )进行采样:
在这里插入图片描述
这里就很明白了,公式P(x) 中
P(m)**是选择第m个高斯的概率,也可以看做权重;**P(x∣m)**可以看做是从第m个高斯取数据x的概率。
现在如果我们手上有一系列的数据x(可以看到的,也叫观察变量),现在要估计m个高斯分布(看不到的,也叫隐变量)的各个参数(μm,Σm),就是用EM算法。
从上面的讲解我们知道:
Each x you generate is from a mixture Distributed representation is better than cluster.
说人话:用某一个分类来表示是不够准确的,正确的做法是用一个分布来表示x,也就是说x可以表示为:有多少的几率从第a分布采样出来,有多少几率从b分布采样出来。。。。
理解这个,我们再回到VAE,VAE就可以看做是GMM中x的分布表示。

2.3 VAE的GMM解释
连续的GMM:
实际上,上面的例子是组成GMM的m个高斯分布是不连续的,如果组成GMM的高斯是连续的呢?下面来描述一下这个情况
假设有一个变量z,这个z是从一个正态分布中采样出来的(z is a vector from normal distribution):
在这里插入图片描述
z是一个向量,这个向量的每一个dimension代表观测变量的某一个属性(Each dimension of z represents an attribute)
如果我们先假设z是一维的,那么z的分布函数为:
在这里插入图片描述
有了z之后,我们可以决定z对应的参数(μ,Σ),这里和前面不一样了,这里的z是连续的分布,它和上面离散的GMM不一样了,刚才的GMM如果由10个高斯分布组成,那么对应的参数(μ,Σ)也就有10组,是可以定下来的。这里的z表示连续的分布,也就在这里插入图片描述意味着有无穷多个高斯分布,无穷多组参数(μ,Σ),因此,这里我们用一个函数表示z所对应的高斯分布参数,写成:
在这里插入图片描述
可以看到,我们从z从取了五个点,这五个点所对应高斯分布参数是由公式(2)决定的,从z的某一个高斯里面取出x的概率可以写成:在这里插入图片描述
求参数的函数如何确定
现在面临的问题就是如何确定公式(2)中的函数是什么样子。在这里插入图片描述
这里可以用一个NN来表示这个函数,也就是训练一个NN,输入一个z向量,输出是两个,分别是μ(z),σ(z)
这个问题解决了之后,我们就可以写出来观测变量x的概率P(x)
在这里插入图片描述
重要说明:上面的假设是z是从正态分布中采样出来的,实际上z的分布可以是非正态分布,无所谓是什么分布,因为中间从z估计参数的函数我们用的NN,NN号称啥函数都可以模拟,所以z的分布没有限制,因此最后得到的P(x)也可以是很复杂形状。
最大似然求解
P(z)是一个正态分布,P(x∣z)是N(μ(z),σ(z))分布,μ(z),σ(z)是我们要求的函数。现在我们手上有一组观测变量x,希望找到一组函数μ(z),σ(z)\mu(z),\sigma(z)μ(z),σ(z)表达,使得x从P(x)P(x)P(x)分布中取出来的概率最大。用最大似然的思想写出来的损失函数为:在这里插入图片描述
这里是老师的分支讲解:
我们能调整的参数就是函数μ(z),σ(z),而函数来自:
在这里插入图片描述
这里我们需要另外一个分布q(z∣x)在这里插入图片描述在这里插入图片描述
这里,蓝色的NN就相当于VAE的Decoder,绿色的NN’相当于VAE的Encoder在这里插入图片描述
由于logP(x)和z无关,由于∫zq(z∣x)dz=1(这里的q(z∣x)是任意一个分布,积分起来就是1),所以等式成立。
在这里插入图片描述
这里为什么在这里插入图片描述
分子是联合概率密度函数,这里是一个公式在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
log中乘可以变加法
在这里插入图片描述
上式中的后面那项实际上是可以看成是两个分布的KL divergence,KL散度,写成:在这里插入图片描述
由于KL是衡量两个分布是否相似的概念,相当于两个分布的距离,KL越小距离越小,分布越像,因此这个距离是不可能小于0的。因此我们可以得到如下不等式:在这里插入图片描述
由于P(z,x)=P(x∣z)P(z)有:
在这里插入图片描述
不等式的右边就是L的下限,英文名字叫lower bound,简称:Lb ,故有:
在这里插入图片描述
要使得logP(x)=最大,那么就是要让Lb最大,即:
在这里插入图片描述
这里就是要找到:P(x∣z)和q(z∣x)使得Lb最大
划重点:虽然提到Lb有助于提高likelihood,但只能提高likelihood的最小值,我们并不知道likelihood和Lb之间的距离是多少,也就是说当我们提高Lb 的时候likelihood是有可能下降的。
我们来看图:
在这里插入图片描述
当我们固定P(x∣z)这项,最大化q(z∣x),会发现,logP(x)不变,KL在减少,Lb 越来越接近likelihood,即logP(x),当q(z∣x)=P(x∣z),两个分布一样,KL为0,Lb=logP(x)这个时候如果再提高Lb,就会使得logP(x)变大。也就是说,最后两个分布q(z∣x)和P(x∣z)会趋向于一致。
下面来研究一下Lb在这里插入图片描述
看下上面的左边这项,刚好是−KL(q(z∣x)∣∣P(z))
这里注意:
q(z∣x)是之前说的NN’,即给定x,可以得到z的分布(求出参数就是得到分布)在这里插入图片描述
由于有负号的存在,所以就变成了在这里插入图片描述
让一个KL散度最小,就是要使得两个分布越接近越好,也就是要是NN’生成的分布要和P(z)越接近越好。
根据VAE论文的附录B,可以推导到最后就是下面这个条件:
在这里插入图片描述
再看Lb 式子的右边一项,要最大化这项:
在这里插入图片描述
可以把q(z∣x)看成weighted sum,上式可以写成:
在这里插入图片描述
E q(z∣x) 就是期望。相当于下图的红线部分,后面的相当与黄线部分在这里插入图片描述
通俗的说,就是要用给定的x找到一个分布z(这个分布当然是通过参数μ′(z),σ′(z)来确定的,这个分布可以通过NN找到一个分布,使得P(x)最大。
当我们不考虑方差σ\sigmaσ(实作是这样搞的),只考虑均值μ,我们会想让μ(x)越接近x越好,在高斯分布中,均值就是最接近x的,这个时候的logP(x∣z)最大。上面的模型就是一个VAE,如下图:
在这里插入图片描述

3.Conditional VAE

先将手写的数字丢到encoder,得到这个数字的特征,然后在decoder的过程中加入其它数字的限制,就会用之前学习到的数字特征生成其它数字的图片,如下图所示,第一列是原始数字,后面是Conditional VAE生成的数字。在这里插入图片描述
上面是MINST数据集做的结果,下面是另外一个数据集。
在这里插入图片描述

4.Problems of VAE

问题在于没有真的在想要生成一个真实的图片,只是生成一个图片就完事。例如:
在这里插入图片描述

这里,VAE生成的图片和原图都只有一个像素不一致,从相似度计算来说两个结果都一样的,VAE可能认为右边的就ok了,这样是不好的。从本质上讲,VAE只不过是把原来的图片进行了一个linear combination的修改,没有去生成一个新的图片。
因此为了解决这个问题,就提出了GAN

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值