为什么我们需要自动编码器?


17

最近,我一直在研究自动编码器。如果我理解正确,那么自动编码器就是一个神经网络,其中输入层与输出层相同。因此,神经网络尝试使用输入作为黄金标准来预测输出。

此模型的用处是什么?尝试重构某些输出元素,使其尽可能与输入元素相等,会有什么好处?为什么要使用所有这些机器来达到相同的起点?

Answers:


17

自动编码器具有输入层,隐藏层和输出层。输入被强制与输出相同,因此它是我们感兴趣的隐藏层。

隐藏层形成输入的一种编码。“自动编码器的目的是学习一组数据的压缩的分布式表示(编码)。” 如果输入是100维向量,并且隐藏层中有60个神经元,则自动编码器算法会将输入复制为100维向量在输出层中,在此过程中,您会得到一个60维向量来对输入进行编码。

因此,自动编码器的目的是减少尺寸等。


谢谢@Madhulika,也许我已经了解了。该算法的工作方式如下:它具有输入层,它训练神经网络以使其输出层与输入层相同。然后将输入层与输出层进行比较,如果它们不同,它将继续重新训练神经网络。当它们相同时,它将停止。完成后,我们将最后一个隐藏层作为输入层的最佳降维近似值,并将其用于我们需要的任何目标。它是否正确?
拉里2014年

是的,您几乎正确。:)阅读更多有关它的文献。
Madhulika Mukherjee 2014年

5

它还可以对总体建模,以便在输入新向量时可以检查输入的输出有多大差异。如果它们“相当”相同,则可以假定输入与总体匹配。如果它们“完全”不同,则输入可能不属于您建模的总体。

我将其视为一种“神经网络回归”,其中您尝试使用一个描述数据的函数:其输出与输入相同。


3

也许这些图片给你一些直觉。正如上面的评论者所述,自动编码器尝试从训练示例中提取一些高级功能。您可能会看到如何使用预测算法分别训练第二张图片上的深层NN的每个隐藏级别。

在此处输入图片说明

在此处输入图片说明

图片取自俄罗斯维基百科。


2
对图片发表评论将很有帮助。
蒂姆
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.