Auto-encoder
前言
以MNIST为例,自编码器一般有一个编码器和解码器的网络,将图片pixel输入到编码器中,得到一个隐向量,一般小于原始输入的维度。将这个隐向量输入到解码器中,解码器意图通过这个向量重构出图片信息。
我们可以利用PCA类比自编码器的结构。
自编码器相比于PCA,神经网络的优势是可以更加深。
应用
文本检索
相似主题的文档,他们的embedding非常接近,对所有文档进行embedding后,当我们给定一个查询,可以将查询输入自编码器,得到一个隐向量,然后查找与该隐向量最相似的embedding对应的文档,即为查询结果。
相似图片搜索
对于相似图片搜索的任务来说,如果仅计算欧式距离,会导致搜索到的相似图片可能毫无关联。
若我们爬取大量图片,利用自编码器进行重构训练的话,利用embedding计算图片间的相似度,得到的效果更好,找到的相似图片均为人脸且都是长发。
去噪自编码器
这种方法的训练结果会使得学习到的特征更加鲁棒。
Auto-encoder for CNN
Unpooling
pooling的逆操作,我们可以记录pooling时,所选取的feature map的位置,在unpooling时就还原记录的位置,并在其他位置补零。
这种unpooling的方法仅仅将原图扩散
另外,更简单的方法是,直接重复每个区块的值。
Deconvolution
实际上deconvolution就是convolution。
只需要先做padding再用卷积就是deconvolution的操作。