Variational Autoencoders (VAEs)理解变分自编码器

本文介绍了机器学习中降维的概念,包括PCA和自编码器的原理,以及如何通过自编码器的改进形式——变分自编码器来实现更有效的信息保留和潜在空间约束。重点讨论了如何通过编码器和解码器优化重构损失,同时避免过拟合。
摘要由CSDN通过智能技术生成

1、什么是降维

在机器学习中,降维是减少描述某些数据的特征数量的过程。此减少是通过选择(只有某些现有特征保留)或提取(根据旧特征创建数量减少的新特征)来完成的,并且在需要低维数据的许多情况下很有用(数据可视化,数据,数据,数据存储,重型计算…)。

调用encoder编码器从“旧特征”表示(通过选择或提取)中产生“新特征”表示形式并decoder反向过程。降维可以理解为encoder将数据压缩(从初始空间到潜在空间latent space),解码器decoder进行解压缩。当然,根据初始数据分布、潜在空间维度和编码器的定义,这种压缩可能会损失信息并且无法恢复。

主要目的是找到最好的encoder\decoder实现最好的降维,也就是encoder保留最大的信息,重构有最小的重构损失。如果将E和D表示为对应的encoder和decoder,降维问题可以表示为

\epsilon(x,d(e(x)))表示输入x,经过encoder、decoder之后【d(e(x))】的损失。

接下来N表示数据数量,n_d表示初始空间维度,n_e表示降维空间维度。

2、PCA

降维最常用的方法就是PCA。PCA主要的思想就是找到n_e个由n_d个旧特征线性组合新的独立特征,这样新功能定义的子空间的数据投影与初始数据(按照欧几里得距离的任期)尽可能近。也就是说,PCA是找到原始空间(由新特征的正交基础描述)的最佳线性子空间,它在此子空间上的预测近似数据的错误是尽可能小。

对原始特征进行奇异值分解,选择n_e特征向量为新特征值。

P是特征向量组成的矩阵,\lambda是特征值组成的对角矩阵。

3、自编码器

用神经网络进行降维。自编码器的思想就是将encoder和decoder设置为神经网络并使用迭代优化过程学习到最好的encoder和decoder。在每次迭代中将数据输入到encoder--decoder结构中,比较原始数据与decoder重构的数据,然后利用反向传播更新神经网络的参数。

所以,整体的自编码器架构创价了数据的瓶颈bottleneck来确保信息的主要结构可以获取到并且被重构出来。搜索编码器和解码器的最小重建误差是通过对网络参数进行梯度下降来完成的。

我们首先可以设想encoder和decoder都只有一个线性层(没有非线性激活函数),encoder和decoder就可以简单的表示为线性变换。这种情况下,可以类比PCA。

最重要的点在于,我们不仅要降低数据的维度并且要获取到数据的主要信息在低维表征中。

4、变分自编码器

自编码器的限制:当对编码器和解码器进行训练,没有产生任何新内容,如果从前在空间中随机采样一点并且进行decoder生成新内容。

变分自编码器在潜在空间的规律是一个难点,取决于在原始空间的分布,潜在空间的维度和编码器的体系结构。当模态完全过拟合,得到的不规律的潜在空间随机选取一点将会报纸没有意义的重构。

在这种情况下,encoder与decoder只会尽可能的将重构损失降到最小,而不会考虑潜在空间是如何组织的。因此,这个结构需要严格的定义要避免过拟合。

4.1变分自编码器的定义

所以为了达到目的,要使得潜在空间是比较规律的,那么变分自编码器就可以理解为在自编码器的基础上对潜在空间进行正则化以避免过拟合来保持潜在空间良好的特性,从而启用生成过程。

encoder将输入数据映射到潜在空间的分布。模型训练过程如下:

1、输入数据被编码到潜在空间的分布

2、从分布当中采样出一个点

3、这个点被解码,并算出重构损失

4、重构损失被反向传播

在这张图中,上方是自编码器,下方是变分自编码器。

在实践中,潜在空间的分布通常被建模为高斯分布,有均值和方差。这样就可以保证对潜在空间进行约束使得编码器生成的分布强制执行接近标准的正态分布。

因此在训练变分自编码器的损失函数是由重构损失加上“正则化项(使得编码出的分布接近正态分布)”。该正则化项表示为潜在空间的分布与标准正态分布的KL(kullback-leibler)散度(可以直接根据两个分布的平均值和协方差矩阵表示)。

参考:https://towardsdatascience.com/intuitively-understanding-variational-autoencoders-1bfe67eb5daf

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值