自编码器

                     

贡献者: xzllxls

预备知识 函数(高中),条件概率与事件的独立性(高中),神经网络

   自编码器(Autoencoder)是一种将输入数据映射为自身的神经网络模型。从输入和输出端来看,自编码器相当于是把输入数据复制到输出。

   自编码器一般包含两个部分:一个编码器(Encoder)和一个解码器(Decoder).编码器将输入数据映射到一个内隐空间,数学表达式为 $\boldsymbol{h}=f(\boldsymbol{x})$。内隐空间在网络结构中由一个内隐层实现。解码器的作用是数据重构,将内隐空间的特征重新映射回数据,数学表达式为 $\boldsymbol{r}=g(\boldsymbol{h})$.整个自编码器,可以表示为:$g(f(\boldsymbol{x}))=\boldsymbol{x}$.

   神经网络的自编码器推广了传统编码和解码的思想。传统编码解码是基于确定性函数的,而神经网络中的自编码器则是一种概率性关系。自编码器的目标是学习两个条件概率:编码器 $p_{encoder}(\boldsymbol{h}|\boldsymbol{x})$ 和解码器 $p_{decoder}(\boldsymbol{x}|\boldsymbol{h})$ [1] .

图
图 1:自编码器基本结构示意图 [1]

   自编码器的类型主要有:欠完备自编码器(Undercomplete Autoencoders)、正则自编码器(Regularized Autoencoders)等。其中,正则自编码器包括稀疏自编码器(Sparse Autoencoders)和去躁自编码器(Denoising Autoencoders)。另外,有一类应用较为广泛的自编码器——变分自编码器(Variational Autoencoders)[1]。

   自编码器也是一种生成模型,可以随机生成与训练集输入数据类似的新的数据。


[1] ^ I. Goodfellow, Y. Bengio, and A. Courville, Deep learning. MIT press, 2016.

                     

© 小时科技 保留一切权利