1.自编码器
自编码器(Auto-Encoder),是一种无监督式学习模型。利用输入数据 X 本身作为监督,来指导神经网络尝试学习一个映射关系,从而得到一个重构输出 X1。
算法模型包含两个主要的部分:Encoder(编码器)和Decoder(解码器)。Encoder的作用是把高维输入X编码成低维的隐变量h,从而让神经网络提取出最有信息量的特征;Decoder的作用是把隐藏层的隐变量h还原成原来的高维度,从而重构出原来的输入。模型结构如图所示:
自编码器的意义在于,强制自编码器学习训练数据的最显著特征,学习出隐变量h,再用h去完成一些任务。h相对于原始输入X来说,维度大大降低,可以理解为一种非线性降维的方法。
其优点在于:泛化性强,无监督,不需要数据标注。
2.线性自编码器
最为简单的自动编码器是由线性层构成的,它看起来就像是一个普通的深度神经网络DNN,只不过其输入和输出层神经元数量一致,且往往具有对称性。
随机初始化一个100维的tensor并重构: