微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自编码器是如何知道哪些特征最显着的?

如何解决自编码器是如何知道哪些特征最显着的?

自编码器通常用于减少维数。它通过减少不必要的维数来压缩图像。 .它们的工作方式是将输入压缩为潜在空间表示,然后从该表示重构输出。那么,自编码器如何知道哪些特征最重要的是保留,哪些是不重要的。 还有一个问题是 autoencoders如何用于提取图像的特征,就像在CNN中一样,卷积层负责提取图像的特征。在自动编码器中,如何以及哪一层提取图像的特征?

解决方法

AutoEncoders 是一个特殊的网络,它试图解决表示 x' = g(h(x)) 的身份问题,其中 h 是编码器块,g 是解码器块。

潜在空间 z 是给定输入 x 的最小表达式,它位于网络的中间。需要澄清的是,在这样的空间中存在不同的形状,每个形状都对应于训练阶段给出的特定实例。使用您推荐的 CNN 来支持这一点,它就像一个特征图,但在整个网络中只有一个特征图,而一堆特征图却只有一个,同样,它根据在训练期间观察到的内容拥有不同的表示。

那么,问题是压缩和解压是怎么发生的呢?嗯,用于训练的数据有一个域,每个实例都有相似之处(所有的猫都有相同的抽象特性,山也一样,都有一些共同点),因此网络学习如何将描述数据的内容拟合成更小的组合件,以及从较小的件(范围为 0-1)如何构建更大的件。

从猫身上取同样的样本,它们都有两只耳朵,有毛皮,有两只眼睛等等,我没有提到细节,但是你可以想想那些耳朵的形状,毛皮如何大概是那双眼睛有多大,颜色和亮度。想想我作为潜在空间 z 和细节作为 x' 输出的列表。

有关更多详细信息,请参阅此对不同 AE 变体的详尽说明:https://wikidocs.net/3413

希望对您有所帮助。

编辑 1:

如何以及哪一层提取图像的特征?

它的设计:

AutoEncoder 是一个网络,其设计可以压缩和解压缩训练数据,它根本不是任意网络。

首先,它有一个沙钟的形状,这意味着下一层的神经元比编码器块中的前一层少,在“潜在空间层”之后,它开始做相反的事情,增加解码器块中神经元的大小,直到达到输入层的大小(重建,因此输出)。

接下来,每一层都是一个Dense层,也就是说每一层的所有神经元都完全塞到了下一层,所以,所有的特征都是一层一层的承载。每个神经元的激活函数(理想情况下)是 tanh 表示所有可能的输出都是 [-1,1] 是这种情况;最后,loss function 往往是 均方根误差,它试图说明重建距离原始值有多远。

这样做的一个好处是将输入张量归一化,将每个特征的均值设置为零,这对网络学习有很大帮助,我将在接下来解释。

词很便宜,给我看看反向传播

还记得隐藏层中的值是 [-1,1] 吗?好吧,这个范围以及权重和偏差 (Wx + b) 的支持使得在每一层上都有更少特征的连续组合成为可能(考虑到所有可能的有理数,从 -1 到 1 的值) .

使用反向传播(在 loss function 中支持),其想法是找到权重的最佳点,将域训练集(例如黑白 MNIST 数字、RGB Cats 图像等)转换为编码层中的低维连续集(非常小的数字介于 [-1,1] 之间),然后,在解码层中,它尝试使用相同的权重(记住是沙钟形状网络)来发出更高的表示之前的 [-1,1] 组合。

比喻

为了把它变成一种游戏,两个人背靠背,一个从窗户看,另一个在前面有一块白板。第一个向外看,看到一朵带有所有细节的花,然后说向日葵(潜在空间),第二个人听到了,用他过去学到的所有颜色和细节画了一朵向日葵。

请提供真实世界的样本

继续以向日葵为例,想象相同的情况,但您的输入图像(张量)有噪声(您知道,小故障)。 AutoEncoder 接受了高质量图像的训练,因此它能够压缩向日葵概念,然后对其进行重建。故障是怎么回事?网络对向日葵的颜色、形状和背景(假设是蓝天)进行编码,解码器对其进行重建,故障作为残差被留下。这就是一个降噪自动编码器,网络的众多应用之一。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。