自编码(Autoencoder)-深度学习讲述

上传人:最**** 文档编号:118285067 上传时间:2019-12-12 格式: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) 自动编码器就是一种尽可能复现输入信号的神经网络; 自动编码器必须捕捉可以代表输入数

2、据的最重要的因素 ; 类似 PCA,找到可以代表原信息的主要成分。 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);如

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

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

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

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

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

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

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

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

12、图像,更高层会学习如何识别或组合眼睛、鼻子、嘴等人脸器 官。 本节小结 去噪自编码(Denoising Autoencoder) :为输入值 :通过对x随机映射或添加噪声而获得 训练指导思想:最小化 其中, 信息熵 KL散度 去噪自编码(Denoising Autoencoder) 噪声的两个来源: 1、来自于样本中选择的训练数据集x 2、对数据集x的随机破坏(或添加噪声),从而获得 去噪自编码(Denoising Autoencoder) 流形学习观点 重建干净的数据DAE用于从破损的 :破损处理,灰色的圈代表 等概率的破损 :图中的红十字,分布在低维流 形附近。 DAE 训练最小化均方误差

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

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

15、encoder) 图中,C 和P 是条件随机的,f 和g 是 确定性计算。 (a)在x中加入噪声, 产生 (b)使用f函数对x进行编码 (c)使用g函数进行解码 (d)从重建的分布 中进行采样获得一个新的状态 xt+1 从估计分布中产生马尔科夫链的步骤: 答案在:Bengio et al. (2013) (Theorem 1) 理论表明,自编码 是相关的真值条件分布 的 一个相容估计, 然而,以上马尔科夫链的平稳分布是X 的数据生成分布 的 一个相容估计。 去噪自编码(Denoising Autoencoder) 图中数据(黑圈)分布在低维流形 (螺旋线)的附近 马尔科夫链的两个随机步骤 :

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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