Part III - 2. Autoencoders

本文详细介绍了自编码器的两种类型:欠完备自编码器和正则自编码器,包括稀疏自编码器、去噪自编码器和收缩自编码器。欠完备自编码器通过限制编码维度学习有用特征,正则自编码器则通过损失函数鼓励学习额外特性。稀疏自编码器引入稀疏惩罚项,去噪自编码器通过噪声扰动输入,收缩自编码器则通过惩罚导数实现对输入变化的不敏感性。
摘要由CSDN通过智能技术生成


自编码器是前馈神经网络的一种,用于重构训练数据(reconstruction),其有一个描述编码的隐藏层,该编码用于表示输入。该网络由两个部分组成,编码器 h = f ( x ) \boldsymbol{h}=f(\boldsymbol{x}) h=f(x)、解码器 r = g ( h ) \boldsymbol{r}=g(\boldsymbol{h}) r=g(h),其中 h \boldsymbol{h} h 称为 编码(code), 如下图

自编码器

1、欠完备自编码器(Undercomplete Autoencoders)

通常我们期望训练自编码器执行输入拷贝任务(即 r = g ( f x ) \boldsymbol{r} = g(f{\boldsymbol{x}}) r=g(fx))使得 h \boldsymbol{h} h 获得有用的属性。通过自编码器获取有用特征的一种方法是限制 h \boldsymbol{h} h 的维度小于 x \boldsymbol{x} x 的维度。编码维度小于输入维度的自编码器称为欠完备自编码器。其学习过程可简单描述为最小化 L ( x , g ( f ( x ) ) ) L(\boldsymbol{x}, g(f(\boldsymbol{x}))) L(x,g(f(x)))

  • 当解码器是线性的且 L L L 是 MSE,欠完备自编码器可学习与 PCA 相同的子空间。
  • 当编码和解码都为非线性函数时,自编码器可学到更强大的非线性 PCA 推广。但若自编码器过于强大,将不能够从训练数据种提取到突出的信息,极端情况为输出完整表示了输入。

2、正则自编码器(Regularized Autoencoders)

正则自编码器使用一个损失函数来鼓励模型学习除拷贝输入到输出之外的其他特性,如稀疏表示、 表示的小导数、以及对噪声或输入缺失的鲁棒性。即使模型容量大到足以学习一个无意义的恒等函数,非线性且过完备的正则自编码器仍然能够从数据中学到一些关于数据分布的有用信息。

2.1、稀疏自编码器(Sparse Autoencoders)

稀疏自编码器可简单看作具有额外稀疏惩罚项的自编码器,即目标函数为: L ( x , g ( f ( x ) ) ) + Ω ( h ) L(\boldsymbol{x}, g(f(\boldsymbol{x})))+\varOmega(\boldsymbol{h}) L(x,g(f(x)))+Ω(h)其中 h = f ( x ) \boldsymbol{h}=f(\boldsymbol{x}) h=f(x) 即编码器的输出, Ω ( h ) \varOmega(\boldsymbol{h}) Ω(h) 为作用在编码器输出上的稀疏惩罚项。

与正则化项不同,正则化项直接作用于权重向量。而稀疏自编码器的惩罚项作用于编码层的输出。

我们可以将整个稀疏自编码器看作是具有隐变量(latent variables)的生成模型的近似最大似然训练。假设模型有可见变量 x \boldsymbol{x} x 和隐变量 h \boldsymbol{h} h,且具有明确的联合分布 p m o d e l ( x , h ) = p m o d e l ( h )   p m o d e l ( x ∣ h ) p_{model}(\boldsymbol{x,h})=p_{model}(\boldsymbol{h})\,p_{model}(\boldsymbol{x|h}) pmodel(x,h)=pmodel(h)pmodel(xh)。我们将 p m o d e l ( h ) p_{model}(\boldsymbol{h}) pmodel(h) 视为模型关于隐变量的先验分布,表示模型看到 x \boldsymbol{x} x 的先验信念。对数似然可被分解为, l o g   p m o d e l ( x ) = ∑ h l o g   p m o d e l ( x , h ) log\,p_{model}(\boldsymbol{x})=\sum_\boldsymbol{h}log\,p_{model}(\boldsymbol{x,h}) logpmodel(x)=hlogpmodel(x,h)我们可以认为自编码器使用一个高似然值 h \boldsymbol{h} h 的点估计近似这个总和。根据所选择的 h \boldsymbol{h} h,最大化 l o g   p m o d e l ( x , h ) = l o g   p m o d e l ( h ) + l o g   p m o d e l ( x ∣ h ) log\,p_{model}(\boldsymbol{x,h})=log\,p_{model}(\boldsymbol{h})+log\,p_{model}(\boldsymbol{x|h}) logpmodel(x,h)=logpmodel(h)+logpmodel(xh) l o g   p m o d e l ( h ) log\,p_{model}(\boldsymbol{h}) logpmodel(h) 能被稀疏诱导,以 Laplace 先验为例, p m o d e l ( h i ) = λ 2 e − λ ∣ h i ∣ p_{model}(h_i)=\frac{\lambda}{2}e^{-\lambda |h_i|} pmodel(hi)=2λeλhi 代入 p m o d e l ( h ) = ∏ i p m o d e l ( h i ) p_{model}(\boldsymbol{h})=\prod_i p_{model}(h_i) pmodel(h)=ipmodel(hi),则有 − l o g   p m o d e l ( h ) = ∑ i ( λ ∣ h i ∣ − l o g   λ 2 ) = λ ∑ i ∣ h i ∣ + c o n s t = Ω ( h ) + c o n s t -log\,p_{model}(\boldsymbol{h})=\sum_i\Big(\lambda |h_i|-log\,\frac{\lambda}{2}\Big)=\lambda \sum_i|h_i|+const=\varOmega(\boldsymbol{h})+const logpmodel(h)=i(λhilog2λ)=λihi+const=Ω(h)+const 其中,const 项仅仅依赖于 λ \lambda λ,因此不影响参数学习,可丢弃该项。其他先验如 Student-t 先验也可诱导稀疏。

2.2、去噪自编码器(Denoising Autoencoders)

通过自编码器提取输入的有用数据的原理是阻止自编码器仅学习到一个恒等式。去噪自编码器不是在代价函数上额外添加一个惩罚项,而是对编码器输入进行噪声扰动,即 L ( x , g ( f ( x ~ ) ) ) L(\boldsymbol{x}, g(f(\overset{\text{\textasciitilde}}{\boldsymbol{x}}))) L(x,g(f(x~)))其中, x ~ \overset{\text{\textasciitilde}}{\boldsymbol{x}} x~ x \boldsymbol{x} x 被噪声破坏后的版本。

2.3、收缩自编码器(Contractive Autoencoders)

稀疏自编码的另一个策略是惩罚导数作为正则,即使用以下形式的惩罚项 Ω ( h , x ) = λ ∑ i ∣ ∣ ∇ x h i ∣ ∣ 2 \varOmega(\boldsymbol{h,x})=\lambda \sum_i||\nabla_\boldsymbol{x}h_i||^2 Ω(h,x)=λixhi2 这种策略会使模型所学习到的函数对 x \boldsymbol{x} x 的改动不敏感,即 x \boldsymbol{x} x 的轻微变化不会导致模型所学得函数大的变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值