机器学习-自编码器
自编码器是无监督学习中的一个变种人工神经网络–自监督学习,目标输出与神经网络的外界输入相同。代价函数为最小二乘法。
自编码器可看成由编码 (Encoder) 和解码 (Decoder) 部分组成。网络的中间部分,即除去第一层输入与最后一层输出,中间称为表达层 (Representation layer)。自编码器通常用于做数据压缩,对原始数据进行降维。
中英文对照术语
- 无监督学习 Unsupervised learning
- 自编码算法 Autoencoders
- 稀疏性 Sparsity
- 隐藏神经元 hidden units
- 像素灰度值 the pixel intensity value
- 独立分别 IID
- 稀疏性参数 sparsity parameter
- 惩罚因子 penalty
- 相对熵 KL divergence
- 代价函数 Cost function
自编码神经网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xkth7IfF-1649832376213)(https://upload.wikimedia.org/wikipedia/commons/2/28/Autoencoder_structure.png)]
最简易的自编码网络为一个三层网络,由输入层、隐藏层及输出层构成。 作为无监督学习的应用,自编码器也不需要给一个supervisor / instructor,但是自编码器不是真正的无监督,它是以输入作为目标输出,期望通过前向网络计算拟合一个恒等函数,使输入等于输出。在训练过程中,与有监督人工神经网络一致,利用误差反向传播,误差 (代价) 函数为:
J = 1 2 ∑ i = 1 n ( y − a { L } ) 2 J = \frac{1}{2}\sum_{i=1}^n(y-a\{L\})^2 J=21i=1∑n(y−a{L})2
其中 a { L } a\{L\} a{L} 为最后一层的实际输出, y y y 为目标输出,在自编码器中 y = x y=x y=x.
训练出一个恒等函数并不是自编码器的目的所在,关键是利用其获得中间隐藏层的表达。这一层的表达可看为对原始数据的降维过程,若是在隐藏层上加上稀疏限制就可以获得其稀疏自编码器。