自编码算法SAE

这个和稀疏自编码器很类似。我是在学习宽度学习的算法中了解到这一部分,并且在相关论文中看到了这部分的讲解,希望能够用我能够理解的方式来进行介绍。

利用SAE将输入样本映射到特征节点的过程如下所示:

对于输入数据 X X X,自动编码器会尝试去学习一个函数,使得该函数的输出能够和输入尽可能接近,即:
X ^ = f W i , θ i ( X ) ≈ X \hat{X}=f_{W_i,\theta_i}(X)\approx X X^=fWi,θi(X)X
其中 W i = { W e i , W ^ e i } , θ i = { θ e i , θ ^ e i } W_i=\{W_{ei},\hat{W}_{ei}\},\theta_i=\{\theta_{ei},\hat{\theta}_{ei}\} Wi={Wei,W^ei}θi={θei,θ^ei}。将此过程进行拆分,隐藏层的特征节点为:
Z i = g ( X ) = ϕ i ( X W e i + θ e i ) ϕ i ( t ) = 1 1 + e − t Z_i=g(X)=\phi_i(XW_{ei}+\theta_{ei})\\\phi_i(t)=\frac{1}{1+e^{-t}} Zi=g(X)=ϕi(XWei+θei)ϕi(t)=1+et1
然后通过相同的激活函数将所生成的特征节点映射回重构的向量:
X ^ = g ( Z i ) = ϕ i ( Z i W ^ e i + θ ^ e i ) \hat{X}=g(Z_i)=\phi_i(Z_i\hat{W}_{ei}+\hat{\theta}_{ei}) X^=g(Zi)=ϕi(ZiW^ei+θ^ei)
那么此过程的平均重建误差为:
J E ( W i , θ i ) = 1 N u m ∑ t = 1 N u m 1 2 ∥ X ^ ( t ) − X ( t ) ∥ 2 J_E(W_i,\theta_i)=\frac{1}{Num}\sum_{t=1}^{Num}\frac{1}{2}\Vert \hat{X}(t)-X(t)\Vert^2 JE(Wi,θi)=Num1t=1Num21X^(t)X(t)2
N u m Num Num为样本的数目。

一般情况下,如果神经元的输出接近于1那我们认为它是活跃的;如果输出接近于0,那么认为它是不活跃的。稀疏性约束迫使神经元大部分时间都处于不活跃状态。令 Z i j ( t ) Z_{ij}(t) Zij(t)表示第i组特征节点的第j个节点,此节点平均激活度为:
p ^ i j = 1 N u m ∑ t = 1 N u m Z i j ( t ) \hat{p}_{ij}=\frac{1}{Num}\sum_{t=1}^{Num}Z_{ij}(t) p^ij=Num1t=1NumZij(t)
为了实现稀疏性,会对平均激活度加上限制:
p ^ i j = p \hat{p}_{ij}=p p^ij=p
其中 p p p是一个稀疏度参数,通常选择为接近于零的正数。为了实现这一点,我们需要在损失函数中加入对应的惩罚项。

可以用KL散度来衡量此处 p ^ i j \hat{p}_{ij} p^ij p p p之间的差距:
J K L ( p ∣ ∣ p ^ i ) = ∑ j = 1 k i J K L ( p ∣ ∣ p ^ i j ) = ∑ j = 1 k i ( p log ⁡ p p ^ i j + ( 1 − p ) log ⁡ 1 − p 1 − p ^ i j ) J_{KL}(p\mid \mid \hat{\pmb{p}}_i)=\sum_{j=1}^{k_i}J_{KL}(p\mid \mid \hat{p}_{ij})\\=\sum_{j=1}^{k_i}(p\log \frac{p}{\hat{p}_{ij}}+(1-p)\log \frac{1-p}{1-\hat{p}_{ij}}) JKL(p∣∣pp^i)=j=1kiJKL(p∣∣p^ij)=j=1ki(plogp^ijp+(1p)log1p^ij1p)
同时为了防止过拟合,也在损失函数中增加正则化项,因此SAE最终的损失函数为:
J S A E ( W i , θ i ) = J E ( W i , θ i ) + α J K L ( p ∣ ∣ p ^ i ) + λ 2 ( ∑ j = 1 M ∑ l = 1 k i ( W e i j l ) 2 + ∑ j = 1 k i ∑ l = 1 M ( W ^ e i j l ) 2 ) J_{SAE}(\pmb{W}_i,\theta_i)=J_E(\pmb{W}_i,\theta_i)+\alpha J_{KL}(p\mid \mid \hat{\pmb{p}}_i)\\+\frac{\lambda}{2}(\sum_{j=1}^M\sum_{l=1}^{k_i}(W_{ei}^{jl})^2+\sum_{j=1}^{k_i}\sum_{l=1}^M(\hat{W}^{jl}_{ei})^2) JSAE(WWi,θi)=JE(WWi,θi)+αJKL(p∣∣pp^i)+2λ(j=1Ml=1ki(Weijl)2+j=1kil=1M(W^eijl)2)
那么同样可通过梯度下降法来求解。

求解得到所要的参数之后,就可以用第二条公式去计算特征节点了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值