自动编码器的用途是什么?


10

自动编码器是一种神经网络,可以学习输入的压缩表示形式以便稍后对其进行重构,因此可以将其用于降维。它们由编码器和解码器(可以是独立的神经网络)组成。降维可用于处理或减弱与维数诅咒有关的问题,因为维数诅咒中的数据变得稀疏,更难获得“统计意义”。因此,可以使用自动编码器(以及类似PCA的算法)来处理维数的诅咒。

为什么我们特别在意使用自动编码器进行降维?如果目的是降低尺寸,为什么我们不能简单地使用PCA?

如果只想进行降维,为什么需要解压缩输入的潜在表示,或者为什么需要在自动编码器中使用解码器部分?有哪些用例?通常,为什么我们需要压缩输入以稍后对其进行解压缩?仅使用原始输入(开始)会更好吗?


1
另请参阅以下关于CrossValidated SE的问题stats.stackexchange.com/q/82416/82135
nbro

Answers:


6

考虑表示数据中的哪种模式非常重要。

假设您有一个灰度图像数据集,因此每个图像都是均匀的强度。作为人的大脑,您会意识到可以使用单个数字参数(即强度值)来描述此数据集中的每个元素。PCA可以很好地解决这一问题,因为每个尺寸(我们可以将每个像素视为一个不同的尺寸)是完全线性相关的。

相反,假设您有一个由中心圆组成的黑白128x128px位图图像的数据集。作为人的大脑,您会很快意识到,该数据集中的每个元素都可以由单个数字参数(即圆的半径)完全描述。与16384个二进制维相比,这是一个非常令人印象深刻的缩减水平,也许更重要的是,它是数据的语义有意义的属性。但是,PCA可能无法找到该模式。

您的问题是“如果目的是降低尺寸,为什么我们不能简单地使用PCA?” 简单的答案是PCA是降低维度的最简单工具,但是它可能会错过许多关系,而自动编码器等更强大的技术可能会发现这些关系。


3

自动编码器(尤其是自动编码器的解码器或生成模型)的用例是对输入进行降噪。这种类型的自动编码器(称为降噪自动编码器)采用部分损坏的输入,然后尝试重建相应的未损坏的输入。此模型有几个应用程序。例如,如果您有损坏的图像,则可以使用降噪自动编码器来恢复未损坏的图像。

自动编码器和PCA相关:

具有单个完全连接的隐藏层,线性激活函数和平方误差成本函数的自动编码器训练的权重跨越的子空间与主分量加载向量跨越的子空间相同,但它们与加载向量不相同。

有关更多信息,请参阅Elad Plaut 撰写的论文《从主子空间到带有线性自动编码器的主组件》(2018)。另请参见此答案该答案还解释了PCA和自动编码器之间的关系。


3

PCA是一种线性方法,可创建能够改变矢量投影(改变轴)的变换

由于PCA寻找最大方差的方向,因此通常具有较高的判别力,不能保证最大方差的方向就是最大判别力的方向。

LDA是一种线性方法,它创建一个转换,该转换能够找到与确定矢量属于A类还是B类最相关的方向。

PCA和LDA具有非线性内核版本,可以克服其线性限制。

自动编码器可以与其他类型的损失函数一起执行降维,可以是非线性的,并且在很多情况下可能比PCA和LDA更好。

可能没有最佳的机器学习算法可以做任何事情,有时深度学习和神经网络在解决简单问题上就显得过高了,在尝试其他更复杂的降维之前,可以尝试使用PCA和LDA。


1
LDA与问题有什么关系?
nbro

LDA可用作降维。原来的算法推演只有一个投影,但你可以用它来获得较低的排名辨别方向更acurate的造型
佩德罗·恩里克·蒙福特

PCA也不保证最大方差,因为它是一个贪心算法,它仅近似最大方差。
Mathieu Bouville

PCA有一个封闭的解决方案,主轴将始终是最大方差的方向。它不是一种贪婪算法(但可以作为一种算法实现)
Pedro Henrique Monforte

1
  1. 为了计算用于训练网络的损失函数,解码器一半是必需的。即使您只对生成组件感兴趣,这与GAN中仍需要“对手”类似。
  2. 自动编码器可以学习数据的非线性嵌入,因此比普通PCA更强大。
  3. 自动编码器的应用范围不仅限于降维:
    • 生成新数据点或执行插值(请参阅VAE)
    • 创建降噪过滤器(例如在图像处理中)
    • 压缩/解压缩数据
    • 链接预测(例如在药物发现中)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.