自编码器

自编码器是一种基于无监督学习的数据维度压缩和特征表达方法。多层自编码器能够更好地进行压缩及特征表达。本部分介绍自编码器及其变种,如降噪自编码器、稀疏自编码器,以及由多层自编码器组成的栈式自编码器.

自编码器
自编码器 ( autoencoder ) (\text{autoencoder}) (autoencoder)是一种有效的数据维度压缩算法,主要应用在以下两个方面

  1. 构建一种能够重构输入样本并进行特征表达的神经网络
  2. 训练多层神经网络时,通过自编码器训练样本得到参数初始值

第一条中的特征表达是指对于分类会发生变动的不稳定模式,例如手写字符识别中由于不同人的书写习惯和风格的不同造成字符模式不稳定,或者输入样本中包含噪声等情况,神经网络也能将其转换成可以准确识别的特征。当样本中包含噪声时,如果神经网络能够消除噪声,则被称为降噪自编码器 ( denosing autoencoder ) (\text{denosing autoencoder}) (denosing autoencoder)的网络,它在自编码器中引入了正则化项,以去除冗余信息。
第二条中的得到参数初始值是指在多层神经网络中得到最优参数。一个多层神经网络的训练,首先要利用随机数初始化训练样本的参数,然后通过训练样本得到最优参数。但是,如果是层数较多的神经网络,即使使用误差反向传播算法也很难把误差梯度有效反馈到底层,这样就会导致神经网络训练困难。所以,需要使用自编码器计算每层的参数,并将其作为神经网络的参数初始值逐层训练,以便得到更加完善的神经网络模型。首先,我们来看一下自编码器

图片名称

自编码器的基本形式如上图所示,和受限玻尔兹曼机一样,都是两层结构,由输入层和输出层组成。图中的输入数据 x \boldsymbol x x与对应的连接权重 W \boldsymbol W W相乘,再加上偏置 b \boldsymbol b b,并经过激活函数 f ( ⋅ ) \boldsymbol{f(\cdot)} f()变换后,就可以得到输出 y \boldsymbol y y,如下所示。 y = f ( W x + b ) ( 1 ) \boldsymbol{y=f(W x+b)} \qquad(1) y=f(Wx+b)(1)自编码器是一种基于无监督学习的神经网络,目的在于通过不断调整参数,重构经过维度压缩的输入样本。现在我们来看一种能够重构输入样本的三层神经网络。

图片名称

我们把输入层到中间层之间的映射称为编码,把中间层到输出层之间的映射称为解码。编码和解码的过程如图所示,先通过编码得到压缩后的向量,再通过解码进行重构。

图片名称

中间层和重构层之间的连接权重及偏置分别记作 W ~ \boldsymbol{\widetilde{W}} W b ~ \boldsymbol{\widetilde{b}} b ,重构值(解码结果)记作 x ~ \widetilde{\boldsymbol{x}} x x ~ = f ~ ( W ~ y + b ~ ) ( 2 ) \boldsymbol{\tilde{x}=\widetilde{f}(\widetilde{W} y+\tilde{b})} \qquad(2) x~=f (W y+b~)(2)

这里, f ( ⋅ ) \boldsymbol{f(\cdot)} f()表示编码器的激活函数, f ~ ( ⋅ ) \boldsymbol{\widetilde{f}(\cdot)} f ()表示解码器的激活函数。
根据公式 ( 1 ) (1) (1)和公式 ( 2 ) (2) (2)可以得到重构层的 x ~ \widetilde{\boldsymbol{x}} x x ~ = f ~ ( W ~ f ( W x + b ) + b ~ ) ( 3 ) \boldsymbol{\tilde{x}=\widetilde{f}(\widetilde{W} f(W x+b)+\tilde{b})} \qquad(3) x~=f (W f(Wx+b)+b~)(3)
自编码器的训练就是确定编码器和解码器的参数 W , W ~ , b , b ~ \boldsymbol{W, \widetilde{W}, b, \tilde{b}} W,W ,b,b~的过程。首先,使用公式 ( 3 ) (3) (3)计算输入样本 x \boldsymbol{x} x的重构值 x ~ \widetilde{\boldsymbol{x}} x ,然后使用误差反向传播算法调整参数值,不断迭代上述过程直至误差函数收敛于极小值。误差函数 E E E可以使用公式 ( 4 ) (4) (4)中的最小二乘误差函数或公式 ( 5 ) (5) (5)中的交叉熵代价函数。 E = ∑ n = 1 N ∥ x n − x n ~ ∥ 2 ( 4 ) E=\sum_{n=1}^{N}\left\|x_{n}-\widetilde{x_{n}}\right\|^{2} \qquad(4) E=n=1N

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值