自编码器(AE)解读
自编码器(AE)解读
小游自编码器(AE)解读
本文参考深度学习:AE自编码器详细解读(图文并茂,值得一看)_ae自编码详解-CSDN博客
参考深度学习中常见的10种激活函数(Activation Function)总结_激活函数有哪些-CSDN博客
AE自编码器的定义
- 自编码器(Autoencoder,AE),是一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。
- 自编码器其实也是一种神经网络,它的输入和输出是一致的,它借助稀疏编码的思想,目标是使用稀疏的一些高阶特征重新组合来重构自己,即 :对所有的自编码器来讲,目标都是样本重构。
- 自编码器是一种数据的压缩算法,属于无监督学习,以自身X作为输出值但输出值X’和自身X之间还是有一些差异的。自编码器也是一种有损压缩,可以通过使得损失函数最小,来实现X’近似于X的值。
分析这三个说法的相同点得知,AE的目的就是自己搞自己
自编码的过程简单的说可以分为两部分:输入到隐层的编码过程和隐层到输出的解码过程
AE自编码器结构特点
AE自编码器的意义
如果自编码器的唯一目的是让输出值等于输入值,那这个算法将毫无用处。事实上,我们希望通过训练输出值等于输入值的自编码器,让潜在表征h将具有价值属性。
- 自编码可以实现非线性降维:只要设定输出层中神经元的个数小于输入层中神经元的个数就可以对数据集进行降维。反之,也可以将输出层神经元的个数设置为大于输入层神经元的个数,然后在损失函数构造上加入正则化项进行系数约束,这时就成了稀疏自编码。
- 利用自编码来进行神经网络预训练。对于深层网络,通过随机初始化权重,然后用梯度下降来训练网络,很容易发生梯度消失。因此现在训练深层网络可行的方式都是先采用无监督学习来训练模型的参数,然后将这些参数作为初始化参数进行有监督的训练。
AE自编码器的相关概念
稀疏性
稀疏性对于解决高维度数据的计算量问题非常有效
稀疏编码(Sparse Coding)算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据。
稀疏编码算法的目的就是找到一组基向量ϕ i
,使得我们能将输入向量X
表示为这些基向量的线性组合:
自编码(AutoEncoder)
顾名思义,即可以使用自身的高阶特征编码自己。自编码器其实也是一种神经网络,它的输入和输出是一致的,它借助稀疏编码的思想,目标是使用稀疏的一些高阶特征重新组合来重构自己,即 :对所有的自编码器来讲,目标都是样本重构。
在机器学习中,自编码器的使用十分广泛。自编码器首先通过编码层,将高维空间的向量,压缩成低维的向量(潜在变量),然后通过解码层将低维向量解压重构出原始样本。
隐含层
指输入层和输出层以外,中间的那些层。输入层和输出层是可见的,且层的结构是相对固定的,而隐含层结构不固定,相当于不可见。只要隐含的节点足够多,即是只有一个隐含层的神经网络也可以拟合任意函数。隐含层层数越多,越容易拟合复杂的函数。拟合复杂函数需要的隐含节点数目随着层数的增多而呈指数下降。即层数越深,概念越抽象,这就是深度学习。
过拟合
指模型预测准确率在训练集上升高,但在测试集上反而下降。这是模型的泛化性不好,只记住了当前数据的特征。
Dropout
防止过拟合的一种方法。将神经网络某一层的输出节点数据随机丢弃一部分。可以理解为是对特征的采样。
优化函数
优化调试网络中的参数。一般情况下,在调参时,学习率的设置会导致最后结果差异很大。神经网络通常不是凸优化,充满局部最优,但是神经网络可能有很多个局部最优都能达到良好效果,反而全局最优容易出现过拟合。
对于SGD,通常一开始学习率大一些,可以快速收敛,但是训练的后期,希望学习率可以小一些,可以比较稳定地落到一个局部最优解。
除SGD之外,还有自适应调节学习率的Adagrad、Adam、Adadelta等优化函数.
激活函数
定义
激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端,旨在帮助网络学习数据中的复杂模式。
作用
如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。
使用激活函数能够给神经元引入非线性因素,使得神经网络可以任意逼近任何非线性函数,使深层神经网络表达能力更加强大,这样神经网络就可以应用到众多的非线性模型中。
举例
Sigmoid函数的输出在(0,1),最符合概率输出的定义,但局限性较大。
ReLU,当x<=0时,y=0;当x>0时,y=x。这非常类似于人类的阈值响应机制。
ReLU的3个显著特点:
- 单侧抑制;
- 相对宽阔的兴奋边界;
- 稀疏激活性。
它是目前最符合实际神经元的模型。
AE自编码器的算法原理
常见的自编码器
这次只做简单了解,其他的以后再说吧…..