自编码器网络

目录

1、自编码器的概述

2、自编码器的原理

3、自编码器的拓展网络

3.1稀疏自编码

3.2栈式自编码

3.3降噪自编码

1、自编码器的概述

1986年Rumelhart提出自动编码器的概念,顾名思义,即可以使用自身的高阶特征编码自己。自编码器(autoencoder, AE)是一类在半监督学习和非监督学习中使用的人工神经网络(Artificial Neural Networks, ANNs),其功能是通过将输入信息作为学习目标,对输入信息进行表征学习(representation learning)。 自动编码器基本上可以分为三个不同的组件:编码器、瓶颈和解码器。

自编码器网络

目前,自编码器的应用主要有两个方面,第一是 数据去噪,第二是 为进行可视化而降维

自动编码器是神经网络的一种,经过训练后能尝试将输入复制到输出,换句话说,就是使输入的内容和输出的内容一样。自动编码器内部有一个隐含层 h,可以产生编码来表示输入。该网络可以看成有两部分组成:一个编码器 h = f( x )和一个生成重构的解码器 r = g( x ), 使得 x 约等于 g(f( x ))。

2、自编码器的原理

自编码器 (Autoencoder) 是一种旨在将它们的输入复制到输出的神经网络。这种网络有编码器和解码器两部分组成。

自编码器网络

全连接层神经网络组成的最简单的自编码器只有三层结构,中间的隐藏层才是我们所需要关注的地方,以隐藏层为界限,左边为编码器 (encoder) ,右边为解码器 (decoder) 。

很明显,如果自编码器只是单纯的将输入复制到输出中,那么他没有用处。所以实际上,希望通过训练自编码器将输入复制到输出中,使隐藏表示的 h 拥有有用的属性。

自编码器其实也是一种神经网络,它的输入和输出是一致的,它借助稀疏编码的思想,目标是使用一些高阶特征重新组合来重构自己,即对所有的自编码器来讲,目标都是 样本重构。自编码器首先通过编码层,将高维空间的向量压缩成低维的向量(潜在变量),然后通过解码层将低维向量解压重构出原始样本。

假如我们通过一组数据训练出了我们的自编码器,然后我们拆掉自编码器的解码器 (decoder) ,就可以用剩下的编码器 (encoder) 来表征我们的数据了。隐藏层的神经元数目远低于输入层,那么就相当于我们用更少的特征(神经元)去表征我们的输入数据,从而达到降维压缩的功能。

自编码器网络

如上图所示

(1)从输入层到隐藏层的原始数据X的编码过程:

自编码器网络

(2)从隐藏层到输出层的解码过程:

自编码器网络

那么算法的优化目标函数就写为:

自编码器网络

其中dist为二者的距离度量函数,通常用MSE(均方方差)。

3、自编码器的拓展网络

3.1稀疏自编码

稀疏自编码器通常用于学习诸如分类等任务的特征。稀疏自编码器就是普通自编码器的隐藏层加一个L1正则项,也就是一个训练惩罚项,这样我们训练出的编码器 (encoder) 表征的特征更加的稀疏,从而能得到少且有用的特征项。
限制自编码器重构的一种方式是对其损失施加约束 –>稀疏性约束。可以使用神经元的输出作为神经元的激活度,即对于隐含层的第 j 个神经元,其激活度为:

自编码器网络

则对于 m 个样本,其平均激活度为:

自编码器网络

自编码器网络 是一个 常数,表示的是稀疏性参数,通常可以取一个接近于 0 的常数(自编码器网络 =0.05)。我们希望平均激活度能够尽可能接近稀疏性常数,通常可以去相对熵来衡量平均激活度与稀疏性参数之间的差异程度。

3.2栈式自编码

栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入。

自编码器网络

3.3降噪自编码

降噪自编码器就是输入换成了加噪的数据集,输出用原数据集去训练的自编码器,目的是习得降噪功能。

Original: https://blog.csdn.net/weixin_53148422/article/details/125234897
Author: 猪猪的菜牙
Title: 自编码器网络

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622873/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球