如何制作一个针对温州阀门行业的专业网站?
摘要:温州阀门网站建设,遵义网站制作教程,网页毕业设计,杭州建设培训中心网站1.VAE的直观理解 先简单了解一下自编码器,也就是常说的Auto-Encoder。Auto-Encoder包括一个编码器&
温州阀门网站建设,遵义网站制作教程,网页毕业设计,杭州建设培训中心网站1.VAE的直观理解
先简单了解一下自编码器#xff0c;也就是常说的Auto-Encoder。Auto-Encoder包括一个编码器#xff08;Encoder#xff09;和一个解码器#xff08;Decoder#xff09;。其结构如下#xff1a; 自编码器是一种先把输入数据压缩为某种编码, 后仅通过该编…1.VAE的直观理解
先简单了解一下自编码器也就是常说的Auto-Encoder。Auto-Encoder包括一个编码器Encoder和一个解码器Decoder。其结构如下 自编码器是一种先把输入数据压缩为某种编码, 后仅通过该编码重构出原始输入的结构. 从描述来看, AE是一种无监督方法.
AE的结构非常明确, 需要有一个压缩编码的Encoder和就一个相应解码重构的Decoder
那么VAE的目标是什么为什么VAE呢
-------VAE作为一个生成模型其基本思路是很容易理解的把一堆真实样本通过编码器网络变换成一个理想的数据分布然后这个数据分布再传递给一个解码器网络得到一堆生成样本生成样本与真实样本足够接近的话就训练出了一个自编码器模型。
为什么要用VAE原来的Auto Encoder有什么问题呢那面下面是一个直观的解释。
下图是 AutoEncoder 的简单例子我们把一张满月的图片 Encoder 后得到 code这个code被decoder 后又转换为满月图弦月图也是如此。注意它们直接的一对一关系。图片左边那个问号的意思是当对 AE 中的code进行随机采样时它介于满月与弦月之间的数据decoder后可能会输出什么 -------------可能会输出满月可能会输出弦月但是最有可能输出的是奇奇怪怪的图片。 下图是 VAE 的简单例子我们在 code 中添加一些 noise这样可以让在满月对应 noise 范围内的code 都可以转换为满月弦月对应的noise 范围内的code也能转换成弦月。但当我们在不是满月和弦月对应的noise的code中采样时decoder出来的图片可能是介于满月和弦月之间的图。也就是说VAE 产生了输入数据中不包含的数据可以认为产生了含有某种特定信息的新的数据而 AE 只能产生尽可能接近或者就是以前的数据当数据简单时编码解码损耗少时。 2.VAE的模型直观展示 在VAE中为了给编码添加合适的噪音编码器会输出两个编码一个是原有编码 m 1 , m 2 , m 3 m_1,m_2,m_3 m1,m2,m3另外一个是控制噪音干扰程度的编码 σ 1 , σ 2 , σ 3 \sigma_1,\sigma_2,\sigma_3 σ1,σ2,σ3第二个编码其实很好理解就是为随机噪音码 e 1 , e 2 , e 3 e_1,e_2,e_3 e1,e2,e3分配权重然后加上exp的目的是为了保证这个分配的权重是个正值最后将原编码与噪音编码相加就得到了VAE在code层的输出结果 c 1 , c 2 , c 3 c_1,c_2,c_3 c1,c2,c3。
损失函数方面除了必要的重构损失外VAE还增添了一个损失函数这同样是必要的部分因为如果不加的话整个模型就会出现问题为了保证生成图片的质量越高编码器肯定希望噪音对自身生成图片的干扰越小于是分配给噪音的权重越小这样只需要将 σ 1 , σ 2 , σ 3 \sigma_1,\sigma_2,\sigma_3 σ1,σ2,σ3赋为接近负无穷大的值就好了。所以第二个损失函数就有限制编码器走这样极端路径的作用这也从直观上就能看出来 e x p ( σ i ) − ( 1 σ i ) exp(\sigma_i)-(1\sigma_i) exp(σi)−(1σi)在x0处取得最小值于是 σ 1 , σ 2 , σ 3 \sigma_1,\sigma_2,\sigma_3 σ1,σ2,σ3就会避免被赋值为负无穷大。
3.VAE的基本原理
那先回到我们到底想做什么我们现在是想要生成图片就拿下图距离每张图片可以看做高维空间的一个点然后这些图片符合一个分布P(x),我们要做的事情就是去预测这个高维空间的概率分布P(x),只要我们知道这个分布我们就可以从中sample然后得到图片。 那如何去知道这个分布呢我们先了解一下什么是高斯混合模型------------即任何一个数据的分布都可以看作是若干高斯分布的叠加。 上图中黑色代表的是P(x)分布蓝色的线都是不同的高斯分布我们可以用若干个高斯分布去拟合P(x),那如果我们想要从P(x)去sample一个东西那我们就要去考虑我们是从哪个高斯分布中去sample。
