没有任何公式——直观的理解变分自动编码器VAE

简介: 本文简单介绍了变分自动编码器VAE的基本原理,从经典神经网络的贝叶斯计算概率方法慢慢转变到变分自动编码器神经网络中的优化问题,使用KL散度度量误差,给大家提供一个VAE的基本框架。全篇没有公式,通俗易懂。

首发地址:https://yq.aliyun.com/articles/68410


作者介绍Hamidreza Saghir

12b5c884dbe35a3c41dda6d19ab83b10e7801298

autoencoders作为一种非常直观的无监督的学习方法是很受欢迎的,最简单的情况是三层的神经网络,第一层是数据输入,第二层的节点数一般少于输入层,并且第三层与输入层类似,层与层之间互相全连接,这种网络被称作自动编码器,因为该网络将输入编码成一个隐藏代码,然后从隐藏表示中译码出来。通过简单的测量重构误差和反传网络参数能够很好的训练该类网络。

 0324a99f1be1f83b526cfc9852f6850c6a2aeefb

上图是另一种版本的自动编码器,称为变分自动编码器-VAE”,不同点在于其隐藏代码来自于训练期间学习到的概率分布。

90年代,一些研究人员提出一种概率解释的神经网络模型,在该模型中,提供了适当的贝叶斯方法。然而,学习这些模型的参数是困难的,直到深度学习研究的新进展导致了用于这种概率方法更有效的学习参数。

概率解释通过假设每个参数的概率分布来降低网络中每个参数的单个值的刚性约束。例如,如果在经典神经网络中计算权重w_i=0.7,在概率版本中,计算均值大约为u_i = 0.7和方差为v_i = 0.1的高斯分布,即w_i =N(0.7,0.1)。这个假设将输入,隐藏表示以及神经网络的输出转换为概率随机变量。这类网络被称为贝叶斯神经网络或BNN。

d4fb842f611d24a0c42ff9fc7cb3e9686ba46dd1

学习的目标是找到上述分布的参数。这种学习被称为推理,贝叶斯网络中的推论对应于计算潜在变量相对于数据的条件概率。这类模型引入了变分逼近推理方法,将该计算问题转换为优化问题,可以使用随机梯度下降法解决。

在贝叶斯网络中,网络可以基于分布参数重新参数化。在变分自动编码器中,仅在隐藏节点上假设这些分布。因此,编码器变成一个变分推理网络,而且译码器变成一个将隐藏代码映射回数据分布的生成网络。

81cc9fd8bcaa8074b13fedc6c43f660947652db4

将分布的均值和方差视为传统网络的参数,并将方差乘以来自噪声发生器的样本以增加随机性。通过参数化隐藏分布,可以反向传播梯度到编码器的参数,并用随机梯度下降训练整个网络。此过程能够学习隐藏代码的均值与方差值,这就是所谓的重新调参技巧

在经典版的神经网络中,可以用均方误差MSE简单测量网络输出与期望的目标值之间的误差。但在处理分布时,MSE不再是一个好的误差度量,因此用KL­散度测量两个分布之间的差异。事实证明变分近似和真实后验分布之间的距离不是很容易被最小化。它包括两个主要部分。因此,可以最大化较小的项(ELBO)。从自动编码器的角度来看,ELBO函数可以看作是输入的重建代价与正则化项的和

在最大化ELBO之后,数据的下限接近数据分布,则距离接近零,间接地最小化了误差距离。最大化下界的算法与梯度下降的完全相反。沿着梯度的方向达到最大值,这整个算法被称为自动编码变分贝叶斯

下面是一个伪代码,可以看到VAE的架构:

network= {

  # encoder
  encoder_x = Input_layer(size=input_size, input=data)
  encoder_h = Dense_layer(size=hidden_size, input= encoder_x)

  # the re-parameterized distributions that are inferred from data 
  z_mean = Dense(size=number_of_distributions, input=encoder_h)
  z_variance = Dense(size=number_of_distributions, input=encoder_h)
  epsilon= random(size=number_of_distributions)

  # decoder network needs a sample from the code distribution
  z_sample= z_mean + exp(z_variance / 2) * epsilon

  #decoder
  decoder_h = Dense_layer(size=hidden_size, input=z_sample)
  decoder_output = Dense_layer(size=input_size, input=decoder_h)
}

cost={
  reconstruction_loss = input_size * crossentropy(data, decoder_output)
  kl_loss = - 0.5 * sum(1 + z_variance - square(z_mean) - exp(z_variance))
  cost_total= reconstruction_loss + kl_loss
}

stochastic_gradient_descent(data, network, cost_total)

该笔记是基于此keras例子。编码器的所得学习潜在空间和在MNIST数据集上训练的简单VAE的结果如下。

eb74970c96711308d7b9b4fb88d0e141765aed8b

44447deb8a959a610889cb929a385efe09493614

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《An intuitive understanding of variational autoencoders without any formula》,作者:Hamidreza Saghir ,译者:海棠

文章为简译,更为详细的内容,请查看原文

 翻译者: 海棠 

Wechat:269970760 

Email:duanzhch@tju.edu.cn

微信公众号:AI科技时讯

157f33dddfc596ede3681e0a2a0e7068dc288cc1

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 运维
[ICLR2024]基于对比稀疏扰动技术的时间序列解释框架ContraLSP
《Explaining Time Series via Contrastive and Locally Sparse Perturbations》被机器学习领域顶会ICLR 2024接收。该论文提出了一种创新的基于扰动技术的时间序列解释框架ContraLSP,该框架主要包含一个学习反事实扰动的目标函数和一个平滑条件下稀疏门结构的压缩器。论文在白盒时序预测,黑盒时序分类等仿真数据,和一个真实时序数据集分类任务中进行了实验,ContraLSP在解释性能上超越了SOTA模型,显著提升了时间序列数据解释的质量。
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
VQ-VAE:矢量量化变分自编码器,离散化特征学习模型
VQ-VAE 是变分自编码器(VAE)的一种改进。这些模型可以用来学习有效的表示。本文将深入研究 VQ-VAE 之前,不过,在这之前我们先讨论一些概率基础和 VAE 架构。
142 10
|
5月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLOv8改进】Non-Local:基于非局部均值去噪滤波的自注意力模型 (论文笔记+引入代码)
YOLO目标检测专栏探讨了YOLO的创新改进,包括引入非局部操作以捕获远程依赖,增强上下文信息。非局部模块可应用于图像分类、目标检测等任务,尤其适合视频分类。文章介绍了Non-local自注意力模型,通过计算任意位置间交互,提供全局信息。此外,展示了如何在YOLOv8中实现NLBlockND模块。详细内容及实战配置见相关链接。
【YOLOv8改进】Non-Local:基于非局部均值去噪滤波的自注意力模型 (论文笔记+引入代码)
|
6月前
|
人工智能 物联网
PiSSA :将模型原始权重进行奇异值分解的一种新的微调方法
我们开始看4月的新论文了,这是来自北京大学人工智能研究所、北京大学智能科学与技术学院的研究人员发布的Principal Singular Values and Singular Vectors Adaptation(PiSSA)方法。
89 3
如何使用变分自编码器进行图像生成
如何使用变分自编码器进行图像生成
89 0
|
6月前
|
人工智能 搜索推荐 物联网
DoRA(权重分解低秩适应):一种新颖的模型微调方法_dora模型
DoRA(权重分解低秩适应):一种新颖的模型微调方法_dora模型
347 0
|
6月前
|
机器学习/深度学习 编解码 算法
大卷积核大有用处 | LSKNet + DiffusionDet更高更强的目标检测模型
大卷积核大有用处 | LSKNet + DiffusionDet更高更强的目标检测模型
154 0
|
6月前
|
传感器 移动开发 测试技术
通过卷积公式学习声速重建的成像模型
【1月更文挑战第1篇】通过卷积公式学习声速重建的成像模型
76 2
|
机器学习/深度学习 编解码 索引
神经网络风格化过程的特征控制
翻译:《Controlling Perceptual Factors in Neural Style Transfer》
|
机器学习/深度学习 传感器 算法
Matlab灰狼算法(GWO)优化双向长短期记忆神经网络的数据分类预测,GWO-BiLSTM分类预测,多输入单输出模型
Matlab灰狼算法(GWO)优化双向长短期记忆神经网络的数据分类预测,GWO-BiLSTM分类预测,多输入单输出模型