自编码

什么是自编码

自编码,又称自编码器(autoencoder),是神经网络的一种,经过训练后能尝试将输入复制到输出。自编码器(autoencoder)内部有一个隐藏层h,可以产生编码(code)表示输入。该网络可以看作由两部分组成:一个由函数h = f(x) 表示的编码器和一个生成重构的解码器r = g(h)。

 

自编码的原理

自编码器(Autoencoder,AE)是一个3层或者大于3层的神经网络,将输入表达X编码为一个新的表达Y,然后再将Y解码回X。这是一个非监督学习算法,使用反向传播算法来训练网络使得输出等于输入。当向网络中添加一些限制时,可以学到一些关于输入表达的有趣结构。当隐含层节点数d比输入层节点数n小时,可以得到一个输入的压缩表达。当d比n大时,添加一些限制,比如稀疏限制,会得到类似于稀疏编码的结果。

 

自编码的作用

通过多个变量来表示或描述一个现象,这个多维变量叫做特征。特征作为机器学习系统的原材料,对于最终模型的影响毋庸置疑。机器学习算法的性能在很大程度上取决于数据表达或特征表达的选择,当数据能够被很好地表达为特征时,即便使用简单的模型也可达到满意的精度。故在实际应用机器学习算法时,很重要的一个步骤是怎样预处理数据以得到一个好的特征表达。

类似于PCA,主成分提取

 

自动编码器的类型:

1. 去噪自动编码器

2. 稀疏自动编码器

3. 变分自动编码器(VAE)

4. 收缩自动编码器(CAE/contractive autoencoder)

A. 去噪自动编码器

 

 

自编码的举例:

展开阅读全文

没有更多推荐了,返回首页