自编码(Autoencoder)

上传人:n**** 文档编号:50864606 上传时间:2018-08-11 格式:PPTX 页数:38 大小:1.88MB
返回 下载 相关 举报
自编码(Autoencoder)_第1页
第1页 / 共38页
自编码(Autoencoder)_第2页
第2页 / 共38页
自编码(Autoencoder)_第3页
第3页 / 共38页
自编码(Autoencoder)_第4页
第4页 / 共38页
自编码(Autoencoder)_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《自编码(Autoencoder)》由会员分享,可在线阅读,更多相关《自编码(Autoencoder)(38页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

5、的,某个输入只是刺激某些神经元,其他的大部分的神经元是受到抑制的)。稀疏自动编码器(Sparse Autoencoder )输入:基础知识回顾输出 :激活 函数 :SigmiodSigmoid函 数曲线导数 :稀疏自动编码器(Sparse Autoencoder )简单神经网络(三层,单隐藏层)L层第i个单元的输入单元总的加权和表示为:例如 : 所以 :进一步简写 :稀疏自动编码器(Sparse Autoencoder )反向传播算法(Backpropagation algorithm)输入:共m个训练集损失函数 : 其中 ,类似于加入正则化项(权重衰减项,weight decay),如下式:

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

7、码即:稀疏自动编码器(Sparse Autoencoder )为隐藏单元 j 的平均激活值如左图,一般强制约束Why? 看下文是一个稀疏参数,一般取接近于0的值,比如0.05;也就是说,每个隐藏单元j的平均激活值接近于0.05。稀疏自动编码器(Sparse Autoencoder )该式的另外一个作用是:对偏离我们添加一个额外的惩罚项来最优化目标函数。即:其中,KL散度公式:的程度进行惩罚 ?左图中,当时,KL散度值达到最小,其值为0。当趋于0或1时,KL散度值趋于无穷大。因此,为了使以上惩罚项最小,必须使得:稀疏自动编码器(Sparse Autoencoder )因此,全局损失函数为:哎妈,

8、这玩 意终于出来 了!其中:稀疏自动编码器(Sparse Autoencoder )为什么能稀疏?1、减小编码后隐藏层神经元个数。比如,后一层比前一层神经元个数少。如果激活函数不使用sigmoid函数,而使用线性函数,就是PCA模型。2、隐藏层的任何一个神经元不应该总是高度激活 。通过设置的值充分小,一般接近于0,比如0.01等。为使KL散度尽可能小,则:从而使得类似于右图中的神经元激活值较小,处于抑制状态。小稀疏自动编码器(Sparse Autoencoder )部分代码:初始化前向计算各神经元的线 性组合值和激活值权值惩罚项稀疏项损失函数的总表达式栈式自编码 (Stacked Autoen

9、coder)栈式自编码在预训练(初始化)深度神经网络的权重使用较多栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入。采用逐层贪婪训练法进行训练,获取栈式自编码神经网络参数。按照从前向后的顺序执行每一层自编码器的编码步骤 :是最深层隐藏单元的激活值,这个向量是对输入值的更高阶的表 示。其中,作为softmax分类器的输入特征,可以网络中学的特征用于分类问题。 通过将栈式自编码 (Stacked Autoencoder)具体实例训练一个包含两个隐含层的栈式自编码网络,用来进行MNIST手写数字分类。首先,你需要用原始输入 训练第一个自编码器

10、,它能够学习得到原始输入的一阶特征表示然后,你再用这些一阶特征作为另一个稀疏自编码器的输入,使用它们来学习二阶特征栈式自编码 (Stacked Autoencoder)接下来,你可以把这些二阶特征作为softmax分类器的输入,训练得到一个能将二阶特征映射到数字标签的模型。最终,你可以将这三层结合起来构建一个包含两个隐藏层和一个最终softmax分类器层的栈式自编码网络,这个网络能够如你所愿地对MNIST数字进行分类。栈式自编码 (Stacked Autoencoder)栈式自编码神经网络具有强大的表达能力及深度神经网络的所有优点。更进一步,它通常能够获取到输入的“层次型分组”或者“部分-整体

11、分解”结构。自编码器倾向于学习得到能更好地表示输入数据的特征。举个例子,如果网络的输入数据是图像,网络的第一层会学习如何去识别边,第二层一般会学习如何去组合边,从而构成轮廓、角等。更高层会学习如何去组合更形象且有意义的特征。例如,如果输入数据集包含人脸图像,更高层会学习如何识别或组合眼睛、鼻子、嘴等人脸器官。本节小结去噪自编码(Denoising Autoencoder):为输入值:通过对x随机映射或添加噪声而获得训练指导思想:最小化其中,信息熵KL散度去噪自编码(Denoising Autoencoder)噪声的两个来源:1、来自于样本中选择的训练数据集x2、对数据集x的随机破坏(或添加噪声

12、),从而获得去噪自编码(Denoising Autoencoder)流形学习观点重建干净的数据DAE用于从破损的:破损处理,灰色的圈代表 等概率的破损:图中的红十字,分布在低维流 形附近。DAE 训练最小化均方误差:学习一个向量场(绿色的箭头)向量场用于估计一个梯度场去噪自编码(Denoising Autoencoder)学习一个向量场用于估计梯度场这个属性在以下前提条件下已被证明(Alain and Bengio, 2012, 2013)用于估计梯度场 x是连续值,损坏(添加噪声)和重建分布都服从高斯分布 均方误差: 破损处理服从以下分布:更准确地说,是一个相容估计,即:去噪自编码(Deno

13、ising Autoencoder)1、图中每个箭头长度正比于:重建值减去自编码的输入矢量;2、方向:根据隐含估计的概率分布指向更高的概率值;3、注意:估计密度函数的顶峰(数据流形上)和低谷(局部最小)向量场为零值。去噪自编码(Denoising Autoencoder)将梯度场变成一个生成模型编码-解码对的应用可以给我们生成一个大概的结构,如果我们考虑蒙特卡罗马尔科夫链算法 (MCMC),两方面需要注意:1、从低概率结构转移到高概率结构2、加入随机性,使得链可到处转移(不至于在一些概率或模型的顶峰被困住,陷入局部最优?),并且有机会遍历整个空间,使得概率等于潜在模型的概率从概念上的理解,我们

14、在做编码解码操作时,需要加入噪声,但加入多少?怎么加合适呢?(But how much and how?) 下页将作出解释去噪自编码(Denoising Autoencoder)图中,C 和P 是条件随机的,f 和g 是确定性计算。(a)在x中加入噪声, 产生(b)使用f函数对x进行编码(c)使用g函数进行解码(d)从重建的分布中进行采样获得一个新的状态 xt+1从估计分布中产生马尔科夫链的步骤:答案在:Bengio et al. (2013) (Theorem 1)理论表明,自编码 是相关的真值条件分布 的 一个相容估计,然而,以上马尔科夫链的平稳分布是X 的数据生成分布 的 一个相容估计。

15、去噪自编码(Denoising Autoencoder)图中数据(黑圈)分布在低维流形 (螺旋线)的附近马尔科夫链的两个随机步骤 :x: 绿色的圆圈 代表狗的真实图像 值。: 蓝色的圆圈 代表添加噪声后狗 的图像值。: 代表各向同性(等概率? )高斯噪声,图中的绿色。 1、通过 将x变换成2、在降噪后重建的分布中 对下一个状态进行采样。x有很多种可能,取决于 ,图中,蓝色的扁平形状就是 的 表示结果x分布在 附近的流形 上。说明:去噪自编码(Denoising Autoencoder)去噪自动编码器DA是在自动编码器的基础上,训练数据加入噪声,所以自动编码器必须学习去去除这种噪声而获得真正的没

16、有被噪声污染过的输入。因此,这就迫使编码器去学习输入信号的更加鲁棒的表达,这也是它的泛化能力比一般编码器强的原因。本节小结压缩自编码(Contrative Autoencoder)好的特征表示大致有2个衡量标准:1. 可以很好的重构出输入数据; 2.对输入数据一定程度下的扰动具有不变形。普通的autoencoder、sparse autoencoder和stacked autoencoder主要是符合第一个标准。而deniose autoencoder和contractive autoencoder则主要体现在第二个。在一些分类任务中,第二个标准显得更重要。引言压缩自编码(Contrative Autoencoder)普通自编码:压缩自编码:其中,雅克比矩阵:When Sigmoid,压缩自编码(Contrative Autoencoder)CAE与正则化自编码(即weight decay)的关系1、当线性编码,并且 为恒等函数时,有:对于,此时,使权值W尽量小是收缩的唯一方法。2、当 为

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号