自编码(Autoencoder)-深度学习_第1页
自编码(Autoencoder)-深度学习_第2页
自编码(Autoencoder)-深度学习_第3页
自编码(Autoencoder)-深度学习_第4页
自编码(Autoencoder)-深度学习_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自编码 (Autoencoder),大纲,稀疏自编码(Sparse Autoencoder),栈式自编码 (Stacked Autoencoder),去噪自编码(Denoising Autoencoder),压缩自编码(Contrative Autoencoder),自编码简介(Autoencoder),自编码简介(Autoencoder),:输入值,:编码函数,:编码或内部表示,:解码函数,:输出,也称“重建值”,:损失函数,用于测量重建的好 坏,目标是最小化L的期望值。,自编码简介(Autoencoder),自动编码器就是一种尽可能复现输入信号的神经网络;,自动编码器必须捕捉可以代表输入数

2、据的最重要的因素;,类似 PCA,找到可以代表原信息的主要成分。,Input:数据的输入; Encoder:编码器; Code:输入的一个表示; Decoder:解码器; Reconstruction: input的重建; Error: 重建数据和input的误差。,自编码简介(Autoencoder),几种自编码的共同点,自编码的共同点:是除了预防针对x简单地学习一个恒等函数外,还包含在以下两方面取折中。,1、学习到一个针对x的表示h,x也能通过一个解码器从h中还原;需要注意的是:这并不需要对所有x都满足,只满足对那些服从数据分布的x即可。(重建误差),2、减小模型代表性的能力,使在尽可能多

3、的输入方向上不敏感。(模型的表达能力,泛化能力?),自编码简介(Autoencoder),如何在重建误差和表达能力之间取折中呢?,解决方法:区分训练样本的哪些变量需要表示。,学到一个数据的表示(映射,mapping),对流形的方向比较敏感,对正交于流形的方向不敏感。将在正交于流形的方向产生一个收缩的表示。,图中,黑色的线为流形空间,向右的绿色箭头与流形相切,蓝色的箭头正交于流形。,自编码简介(Autoencoder),重建误差的概率解释,目标函数:,损失函数的选取取决于输入数据的类型:如果输入是实数值,无界值,损失函数使用平方差(squared error);如果输入时位矢量,交叉熵(cros

4、s-entropy)更适合做损失函数。,什么是交叉熵?,p和q分布的交叉熵是:p分布的信息熵和p和q的DL散度的和。,我们可以认为训练一个解码函数等同于对条件分布P(x|h)的估计;同样的道理,可以将编码函数理解为一个条件分布Q(h|x),而不仅仅是一个“干巴巴”的函数式子。,稀疏自动编码器(Sparse Autoencoder ),如果在AutoEncoder的基础上加上L1的Regularity限制(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0,这就是Sparse名字的来源),我们就可以得到Sparse AutoEncoder法。,如上图,其实就是限制每次得到的表达code

5、尽量稀疏。因为稀疏的表达往往比其他的表达要有效(人脑好像也是这样的,某个输入只是刺激某些神经元,其他的大部分的神经元是受到抑制的)。,稀疏自动编码器(Sparse Autoencoder ),输入:,基础知识回顾,输出:,激活 函数:,Sigmiod,Sigmoid函数曲线,导数:,稀疏自动编码器(Sparse Autoencoder ),简单神经网络(三层,单隐藏层),L层第i个单元的输入单元总的加权和表示为:,例如:,所以:,进一步简写:,稀疏自动编码器(Sparse Autoencoder ),反向传播算法(Backpropagation algorithm),输入:,共m个训练集,损失

6、函数:,其中,,类似于,加入正则化项(权重衰减项,weight decay),如下式:,稀疏自动编码器(Sparse Autoencoder ),反向传播算法(Backpropagation algorithm),首先,通过前向网络,计算每个神经元的激活值(activations),包括输出值:,其次,对于第L层的第i节点,计算其误差项:,对于输出节点,,详细推导步骤,表示输出层,有:,推导见下一张PPT。,稀疏自动编码器(Sparse Autoencoder ),反向传播算法(Backpropagation algorithm),如何得来的呢?推导过程:,对于,,有:,其中,,表示l+1层神

7、经元个数,详细推导步骤,稀疏自动编码器(Sparse Autoencoder ),自编码 设法学习到一个函数,使得:,回到自编码,即:,稀疏自动编码器(Sparse Autoencoder ),为隐藏单元 j 的平均激活值,如左图,,一般强制约束,Why? 看下文,是一个稀疏参数,一般取接近于0的值,比如0.05;,也就是说,每个隐藏单元j的平均激活值接近于0.05。,稀疏自动编码器(Sparse Autoencoder ),该式的另外一个作用是:对,偏离,我们添加一个额外的惩罚项来最优化目标函数。,即:,其中,KL散度公式:,的程度进行惩罚 ?,左图中,,当,时,KL散度值达到最小,其值为0

8、。,当,趋于0或1时,KL散度值趋于无穷大。,因此,为了使以上惩罚项最小,必须使得:,稀疏自动编码器(Sparse Autoencoder ),因此,全局损失函数为:,哎妈,这玩意终于出来了!,其中:,稀疏自动编码器(Sparse Autoencoder ),为什么能稀疏?,1、减小编码后隐藏层神经元个数。 比如,后一层比前一层神经元个数少。 如果激活函数不使用sigmoid函数,而 使用线性函数,就是PCA模型。,2、隐藏层的任何一个神经元不应该总是高度激活 。,通过设置,的值充分小,一般接近于0,比如0.01等。,为使KL散度尽可能小,则:,从而使得类似于右图中的神经元 激活值较小,处于抑

9、制状态。,小,稀疏自动编码器(Sparse Autoencoder ),部分代码:,初始化,前向计算各神经元的线性组合值和激活值,权值惩罚项,稀疏项,损失函数的总表达式,栈式自编码 (Stacked Autoencoder),栈式自编码在预训练(初始化)深度神经网络的权重使用较多,栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入。采用逐层贪婪训练法进行训练,获取栈式自编码神经网络参数。,按照从前向后的顺序执行每一层自编码器的编码步骤:,是最深层隐藏单元的激活值,这个向量是对输入值的更高阶的表示。,其中,,作为softmax分类器的输入特

10、征,可以网络中学的特征用于分类问题。,通过将,栈式自编码 (Stacked Autoencoder),具体实例,训练一个包含两个隐含层的栈式自编码网络,用来进行MNIST手写数字分类。,首先,你需要用原始输入,训练第一个自编码器,它能够学习得到原始输入的一阶特征表示,然后,你再用这些一阶特征作为另一个稀疏自编码器的输入,使用它们来学习二阶特征,栈式自编码 (Stacked Autoencoder),接下来,你可以把这些二阶特征作为softmax分类器的输入,训练得到一个能将二阶特征映射到数字标签的模型。,最终,你可以将这三层结合起来构建一个包含两个隐藏层和一个最终softmax分类器层的栈式自

11、编码网络,这个网络能够如你所愿地对MNIST数字进行分类。,栈式自编码 (Stacked Autoencoder),栈式自编码神经网络具有强大的表达能力及深度神经网络的所有优点。更进一步,它通常能够获取到输入的“层次型分组”或者“部分-整体分解”结构。自编码器倾向于学习得到能更好地表示输入数据的特征。,举个例子,如果网络的输入数据是图像,网络的第一层会学习如何去识别边,第二层一般会学习如何去组合边,从而构成轮廓、角等。更高层会学习如何去组合更形象且有意义的特征。例如,如果输入数据集包含人脸图像,更高层会学习如何识别或组合眼睛、鼻子、嘴等人脸器官。,本节小结,去噪自编码(Denoising Au

12、toencoder),:为输入值,:通过对x随机映射或添加噪声而获得,训练指导思想:最小化,其中,,信息熵,KL散度,去噪自编码(Denoising Autoencoder),噪声的两个来源:,1、来自于样本中选择的训练数据集x,2、对数据集x的随机破坏(或添加噪声),从而获得,去噪自编码(Denoising Autoencoder),流形学习观点,重建干净的数据,DAE用于从破损的,:破损处理,灰色的圈代表等概率的破损,:图中的红十字,分布在低维流 形附近。,DAE 训练最小化均方误差:,学习一个向量场(绿色的箭头),向量场用于估计一个梯度场,去噪自编码(Denoising Autoenco

13、der),学习一个向量场用于估计梯度场,这个属性在以下前提条件下已被证明(Alain and Bengio, 2012, 2013),用于估计梯度场,x是连续值,损坏(添加噪声)和重建分布都服从高斯分布,均方误差:,破损处理服从以下分布:,更准确地说,,是,一个相容估计,即:,去噪自编码(Denoising Autoencoder),1、图中每个箭头长度正比于:重建值减去自编码的输入矢量;,2、方向:根据隐含估计的概率分布指向更高的概率值;,3、注意:估计密度函数的顶峰(数据流形上)和低谷(局部最小)向量场为零值。,去噪自编码(Denoising Autoencoder),将梯度场变成一个生成

14、模型,编码-解码对的应用可以给我们生成一个大概的结构,如果我们考虑蒙特卡罗马尔科夫链算法 (MCMC),两方面需要注意:,1、从低概率结构转移到高概率结构,2、加入随机性,使得链可到处转移(不至于在一些概率或模型的顶峰被困住,陷入局部最优?),并且有机会遍历整个空间,使得概率等于潜在模型的概率,从概念上的理解,我们在做编码解码操作时,需要加入噪声,但加入多少?怎么加合适呢?(But how much and how?) 下页将作出解释,去噪自编码(Denoising Autoencoder),图中,C 和P 是条件随机的,f 和g 是确定性计算。,(a)在x中加入噪声, 产生,(b)使用f函数

15、对x进行编码,(c)使用g函数进行解码,(d)从重建的分布,中进行采样获得一个新的状态 xt+1,从估计分布中产生马尔科夫链的步骤:,答案在:Bengio et al. (2013) (Theorem 1),理论表明,自编码 是相关的真值条件分布 的 一个相容估计,,然而,以上马尔科夫链的平稳分布是X 的数据生成分布 的 一个相容估计。,去噪自编码(Denoising Autoencoder),图中数据(黑圈)分布在低维流形 (螺旋线)的附近,马尔科夫链的两个随机步骤:,x: 绿色的圆圈 代表狗的真实图像值。,: 蓝色的圆圈 代表添加噪声后狗的图像值。,: 代表各向同性(等概率?)高斯噪声,图

16、中的绿色。,1、通过 将x变换成,2、在降噪后重建的分布中 对下一个状态进行采样。,x有很多种可能,取决于 ,,图中,蓝色的扁平形状就是 的表示结果,x分布在 附近的流形上。,说明:,去噪自编码(Denoising Autoencoder),去噪自动编码器DA是在自动编码器的基础上,训练数据加入噪声,所以自动编码器必须学习去去除这种噪声而获得真正的没有被噪声污染过的输入。,因此,这就迫使编码器去学习输入信号的更加鲁棒的表达,这也是它的泛化能力比一般编码器强的原因。,本节小结,压缩自编码(Contrative Autoencoder),好的特征表示大致有2个衡量标准:1. 可以很好的重构出输入数

17、据; 2.对输入数据一定程度下的扰动具有不变形。,普通的autoencoder、sparse autoencoder和stacked autoencoder主要是符合第一个标准。而deniose autoencoder和contractive autoencoder则主要体现在第二个。在一些分类任务中,第二个标准显得更重要。,引言,压缩自编码(Contrative Autoencoder),普通自编码:,压缩自编码:,其中,,雅克比矩阵:,When Sigmoid,,压缩自编码(Contrative Autoencoder),CAE与正则化自编码(即weight decay)的关系,1、当线性

18、编码,并且 为恒等函数时,有:,对于,,此时,使权值W尽量小是收缩的唯一方法。,2、当 为 sigmoid 函数时,通过使隐藏节点达到饱和状态,也能达到收缩 和编码的健壮性。如何解释?,Sigmoid函数曲线,压缩自编码(Contrative Autoencoder),CAE与稀疏自编码的关系,自编码时,使用稀疏特性的目的在于:使得编码层输出值大部分趋于0。,Sigmoid函数曲线,使用sigmoid激活函数时,为使编码层输出值(特征值)趋于0,必须尽可能的离开函数曲线的饱和部分。见图中的左下角。,可以看出,值很小,并且曲线基本是水平的,因此,下面式子必然较小。,所以,稀疏自编码中,很多趋近于0的特征输出值可以理解为一个高度压缩映射(contractive mapping)。,压缩自编码(Contrative

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论