人工智能/机器学习基础知识——自编码器(AutoEncoder,AE)

Auto-Encoder(AutoEncoder AE)

自编码器

  • 自编码器将数据映射到特征空间得到每个样本的编码,并希望这组编码可以重构出原来的样本

  • Encoder

    编码器

    f : R D → R M f: \mathbb{R}^{D} \rightarrow \mathbb{R}^{M} f:RDRM

  • Decoder

    解码器

    g : R M → R D g: \mathbb{R}^{M} \rightarrow \mathbb{R}^{D} g:RMRD

  • 目标函数:最小化重构错误(Reconstruction Error)

    L = ∑ n = 1 N ∥ x ( n ) − g ( f ( x ( n ) ) ) ∥ 2 = ∑ n = 1 N ∥ x ( n ) − f ∘ g ( x ( n ) ) ∥ 2 \begin{aligned} \mathcal{L} &=\sum_{n=1}^{N}\left\|\boldsymbol{x}^{(n)}-g\left(f\left(\boldsymbol{x}^{(n)}\right)\right)\right\|^{2} \\ &=\sum_{n=1}^{N}\left\|\boldsymbol{x}^{(n)}-f \circ g\left(\boldsymbol{x}^{(n)}\right)\right\|^{2} \end{aligned} L=n=1N x(n)g(f(x(n))) 2=n=1N x(n)fg(x(n)) 2

  • One Simple Example

    在这里插入图片描述

    z = f ( W ( 1 ) x + b ( 1 ) ) z=f\left(\boldsymbol{W}^{(1)} \boldsymbol{x}+\boldsymbol{b}^{(1)}\right) z=f(W(1)x+b(1))

    x ′ = f ( W ( 2 ) z a + b ( 2 ) ) \boldsymbol{x}^{\prime}=f\left(\boldsymbol{W}^{(2)} z_{a}+\boldsymbol{b}^{(2)}\right) x=f(W(2)za+b(2))

    L = ∑ n = 1 N ∥ x ( n ) − x ′ ( n ) ∥ 2 + λ ∥ W ∥ F 2 \mathcal{L}=\sum_{n=1}^{N} \| \boldsymbol{x}^{(n)}-\boldsymbol{x}^{\prime(n)}\left\|^{2}+\lambda\right\| \boldsymbol{W} \|_{F}^{2} L=n=1Nx(n)x(n) 2+λ WF2

  • 使用自编码器是为了得到有效的数据表示,因此在训练结束后,我们一般会去掉解码器,只保留编码器.编码器的输出可以直接作为后续机器学习模型的输入

Sparse Auto-Encoder

稀疏自编码器

  • 编码向量 z z z的维度 M M M大于输入样本 x x x的维度 D D D,且 z z z尽可能稀疏

  • 稀疏性度量函数

    • L 0 L_0 L0范数

      ρ ( z ) = ∑ m = 1 M I ( ∣ z m ∣ > 0 ) \rho(z)=\sum_{m=1}^{M} \mathbf{I}\left(\left|z_{m}\right|>0\right) ρ(z)=m=1MI(zm>0)

    • L 1 L_1 L1范数

      ρ ( z ) = ∑ m = 1 M ∣ z m ∣ \rho(\boldsymbol{z})=\sum_{m=1}^{M}\left|z_{m}\right| ρ(z)=m=1Mzm

    • 对数函数

      ρ ( z ) = ∑ m = 1 M log ⁡ ( 1 + z m 2 ) \rho(z)=\sum_{m=1}^{M} \log \left(1+z_{m}^{2}\right) ρ(z)=m=1Mlog(1+zm2)

    • 指数函数

      ρ ( z ) = ∑ m = 1 M − exp ⁡ ( − z m 2 ) \rho(\boldsymbol{z})=\sum_{m=1}^{M}-\exp \left(-z_{m}^{2}\right) ρ(z)=m=1Mexp(zm2)

  • 目标函数

    L = ∑ n = 1 N ∥ x ( n ) − x ′ ( n ) ∥ 2 + η ρ ( Z ) + λ ∥ W ∥ 2 \mathcal{L}=\sum_{n=1}^{N} \| \boldsymbol{x}^{(n)}-\boldsymbol{x}^{\prime(n)}\left\|^{2}+\eta \rho(\boldsymbol{Z})+\lambda\right\| \boldsymbol{W} \|^{2} L=n=1Nx(n)x(n) 2+ηρ(Z)+λ W2
    Z = [ z ( 1 ) , ⋯   , z ( N ) ] \boldsymbol{Z}=\left[\boldsymbol{z}^{(1)}, \cdots, \boldsymbol{z}^{(N)}\right] Z=[z(1),,z(N)]表示所有训练样本的编码, ρ ( Z ) \rho(\boldsymbol{Z}) ρ(Z)为稀疏性度量函数

    • 这里的稀疏性度量函数还可以定义为一组训练样本中每一个神经元激活的概率。给定 N N N个训练样本,隐藏层第 j j j个神经元平均活性值为

      ρ ^ j = 1 N ∑ n = 1 N z j ( n ) \hat{\rho}_{j}=\frac{1}{N} \sum_{n=1}^{N} z_{j}^{(n)} ρ^j=N1n=1Nzj(n)
      ρ ^ j \hat{\rho}_{j} ρ^j可以近似看作第 j j j个神经元激活的概率

    • 我们希望 ρ ^ j \hat{\rho}_{j} ρ^j接近于一个事先给定的值 ρ ∗ \rho^{*} ρ,例如 0.05 0.05 0.05,可以通过KL散度来衡量两者的差异

      K L ( ρ ∗ ∥ ρ ^ j ) = ρ ∗ log ⁡ ρ ∗ ρ ^ j + ( 1 − ρ ∗ ) log ⁡ 1 − ρ ∗ 1 − ρ ^ j \mathrm{KL}\left(\rho^{*} \| \hat{\rho}_{j}\right)=\rho^{*} \log \frac{\rho^{*}}{\hat{\rho}_{j}}+\left(1-\rho^{*}\right) \log \frac{1-\rho^{*}}{1-\hat{\rho}_{j}} KL(ρρ^j)=ρlogρ^jρ+(1ρ)log1ρ^j1ρ

    • 故稀疏性度量函数可定义为

      ρ ( Z ) = ∑ j = 1 p KL ⁡ ( ρ ∗ ∥ ρ ^ j ) \rho(\boldsymbol{Z})=\sum_{j=1}^{p} \operatorname{KL}\left(\rho^{*} \| \hat{\rho}_{j}\right) ρ(Z)=j=1pKL(ρρ^j)

Stacked Auto-Encoder(SAE)

堆叠自编码器

Denoising Auto-Encoder(DAE)

降噪自编码器

  • 通过引入噪声来增加编码鲁棒性

Variational Auto-Encoder(VAE)

变分自编码器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值