AE
自编码器(下简记为AE)为一类特殊的神经网络,该网络输入维度等于输出维度,通过网络隐层的复杂神经元结构,尝试学习数据的内在特征(pattern),从而达到特征提取、数据降维、生成新数据等多种目的。
简单的AE和MLP类似,except输入维度等于输出维度。此时输入数据的标签即为自身,模型的损失函数cost=cost(output, input),用来评估输出是否很好地重新构建了输入。
AE训练完毕后,取某隐层输出h,该隐层含k个神经元。则h相当于由输入提取出的k维特征。若输入为3维,隐层为2维,则相当于将三维数据映射到了二维平面,效果相当于PCA!
通过增加隐层可以得到stacked AE,此时模型具有更强的表示能力,能对数据特征进行更强有力的挖掘。通常AE取对称结构,此时可取最中间层(图中Codings)作为提取的特征。对称结构带来的另一个好处是可以让相对应的两层共享权值,减少参数的数量同时减少了过拟合的风险(如图中hidden3-outputs的权值可等于inputs-hidden1的权值)。
当AE层数较多、表示能力过强时,可能导致AE在“复现”数据而不是挖掘数据特征。如上图所示,inputs-hidden1-hidden2可能以某种方式e.g.A->B->C变换了输入,而hidden2-hidden3-outputs可能以逆向的变换还原得到输出即C->B->A。这样AE相当于进行了两次截然相反的工作(也可称之为“过拟合”),对于特征发掘没有任何意义。
DAE(降噪自编码器)
为了解决上述问题,可以通过对输入添加噪声,