温馨提示:这篇文章已超过525天没有更新,请注意相关的内容是否还可用!
本文目录
一、怎么理解生成模型VAE
VAE,即Auto-encodingvariationalbayes是13年由Kingma,DiederikP.,andMaxWelling.提出的。
论文地址:
想要深刻理解VAE背后的原理需要一定的数学基础,其中涉及到变分推理和贝叶斯等。本文的重点放在对VAE的思想的理解上,重点并不是怎么去做公式的推导和解释。
首先,VAE是结合了神经网络和贝叶斯思想做的变分推理。那神经网络,在这其中起到什么作用呢?
我们知道我们可以通过增加神经网络的复杂结构,来增强神经网络的非线性拟合功能。因此可以用神经网络去逼近一些比较复杂的函数,这些函数如果不用神经网络逼近的话,可能非常复杂,甚至无法以非常显形的方式建模出来(要知道,只有一部分自然界中的规律能让我们用数学公式抽象地表达出来)。
我们再来继续看,VAE中哪一步需要神经网络的帮助?
VAE是生成模型,先不看VAE。简单地说,如果我们想要生成一个数据,可以通过什么样的方式做到呢?如下图所示,比如,我们输入一个向量[1,0,0,0],想让它经过神经网络后生成一张猫的图片,我们不断训练这个网络去减小生成的图像和原始图像的平均平方误差。那么训练完后,这个图像的信息就被保留在了网络的参数中。
按照这个想法,我们再向网络输入[0,1,0,0]代表狗,让网络能生成一个狗的图片。基于这个思想,我们可以上升一个层次扩展下去,我们可以不输入独热编码,而是输入实数值向量,从而能用更低维度的向量,编码更多的图片。例如可以输入[3.3,4.5,2.1,9.8]代表猫,输入[3.4,2.1,6.7,4.2]代表狗。这个已知的初始向量就对应了VAE中提到的概念latentvariable。而上述得到的网络叫做解码器,因为给网络输入一个指定的向量,就能把这个向量通过网络解码得到与编码向量对应的一张图片。但这么做的前提是,你已经知道在latentvariable这个集合中,怎样的向量输给网络能生成猫,怎样的向量输给网络能生成狗。如果你不知道这个latentvariable,你会怎么办,你只能去试,比如随机选一个latentvariable向量输进网络,看结果会不会是你想要的猫或者狗,但这种做法实在是一言难尽,一点不像是搞科研的人干的事情。
因此,我们需要一个编码器,能够把输入的图像进行编码,而这个编码的结果不再是规律不可循的了,而是服从我们指定的简单的分布,这个编码的结果服从的分布,一方面是基于输入数据的,因此它也具备了能被解码器解码回去的能力。另一方面,它服从一种简单的我们能够掌握的分布,因此我们能够有规律可循的生成一个latentvariable,把这个latentvariable输入给解码器,就能生成一张图片。我们把latentvariable记作Z(Z是可以有很多分量,同时它的分量也可以是一个多维向量,总之Z可以是一个多维的向量),而Z的这个分布我们可以记作q(Z)。
实际上,真实世界的过程应该是这样的,比如对于一张动物图片,决定它是一个猫还是一个狗,应该是由很多隐含变量的,比如图片中的动物眼睛、鼻子、嘴、耳朵都是什么样的、而且这个变量之间往往不是相互独立的,是错综复杂的关系,这个真实世界中的latentvariable的分布我们记作p(Z)。真实世界生成一种张图片的过程应该是:
我们先在p(Z)中选在一个编码向量,在根据这个编码向量生成图片。就是因为真实的先验概率p(Z)实在不好捕捉和发现,我们才利用VAE中的encoder去编码一个q(Z),这个q(Z)的意义就是为了去逼近近似p(Z),能完成p(Z)的功能,即采样之后能生成一张图片的功能。
因此,我们就能理解VAE中的loss函数的组成了,一方面,是图片的重构误差,我们可以用平均平方误差来度量,另一方面。我们可以用KL散度来度量我们的q(Z)分布和p(Z)分布的差异。
最后,我们给出利用VAE生成手写数字的结果:
感兴趣的同学也可以看一下,下面的有关VAE的更详细的论文:
二、贝踏运动鞋怎么样
关于贝踏的鞋子,对于我这种想用自己的钱来买一双运动鞋,性价比很高,我近期买的是一双球鞋,外形粉色,鞋底很软,价格也是129而已,最近是双十一刚过,我又买了一双全白,贝塔的鞋子穿起来挺舒服的,希望以后贝塔可以被更多人得知,也希望以后上市的鞋子能越来越好!
三、贝的故事二类字怎么组词
宝贝,贝壳,扇贝,贝壳网,贝多芬,分贝,贝拉,贝壳粉,贝克汉姆,贝塔,贝爷,贝因美,贝勒,贝瓦,贝加尔湖,贝类,贝斯特,贝爷,贝拉,贝尔,贝亲,贝斯,贝店,贝德玛,贝利,贝壳找房,贝壳鞋,贝壳包,贝壳币,贝壳类,贝勒爷,贝壳头,扇贝肉,扇贝丁,贝贝,贝克曼,贝克汉堡,贝勒布朗
还没有评论,来说两句吧...