堆叠自编码器
对于很多数据来说,仅使用两层神经网络的自编码器结构还不足以获取一种好的数据表示,为了获取更好的数据表示,我们可以使用更深层的神经网络。深层神经网络作为自编码器提取的数据表示一般会更加抽象,能够更好地捕捉到数据的语义信息。在实践中经常使用逐层堆叠的方式来训练一个深层的自编码器,称为堆叠自编码器(SAE)。堆叠自编码器一般可以采用逐层训练来学习网络参数。
降噪自编码器
我们使用自编码器的目的是得到有效的数据表示,而有效的数据表示除了具有最小重构误差或稀疏性等性质之外,还可以要求其具备其他性质,比如对数据部分损坏的鲁棒性。高维数据(如图像)一般具有一定的冗余信息,比如我们可以根据一张部分损坏的图像联想到完整的内容。因此我们希望自编码器也能够从部分损坏的数据中得到有效的数据表示,并能够恢复出完整的原始信息。
降噪自编码器就是一种通过引入噪声来增加编码鲁棒性的自编码器。对于一个向量\(x\),我们首先根据一个比例\(\mu\)(一般小于0.5)随机将\(x\)的一些维度的值设置为0,得到一个被损坏的向量\(\tilde x\),然后将被损坏的向量\(\tilde x\)输入给自编码器得到编码\(z\),并重构出无损的原始输入\(x\)。
堆叠降噪自编码器
堆叠降噪自编码器(SDAE)与降噪自编码器(DAE)的关系就像堆叠自编码器(SAE)与自编码器(AE)之间的关系。SDAE的输入是加入噪声的原始数据\(x\),将DAE原先的单隐藏层堆叠多次便是SDAE。