自编码(Autoencoder).pptx_第1页
自编码(Autoencoder).pptx_第2页
自编码(Autoencoder).pptx_第3页
自编码(Autoencoder).pptx_第4页
自编码(Autoencoder).pptx_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

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

文档简介

自编码 Autoencoder 大纲 稀疏自编码 SparseAutoencoder 栈式自编码 StackedAutoencoder 去噪自编码 DenoisingAutoencoder 压缩自编码 ContrativeAutoencoder 自编码简介 Autoencoder 自编码简介 Autoencoder 输入值 编码函数 编码或内部表示 解码函数 输出 也称 重建值 损失函数 用于测量重建的好坏 目标是最小化L的期望值 自编码简介 Autoencoder 自动编码器就是一种尽可能复现输入信号的神经网络 自动编码器必须捕捉可以代表输入数据的最重要的因素 类似PCA 找到可以代表原信息的主要成分 Input 数据的输入 Encoder 编码器 Code 输入的一个表示 Decoder 解码器 Reconstruction input的重建 Error 重建数据和input的误差 自编码简介 Autoencoder 几种自编码的共同点 自编码的共同点 是除了预防针对x简单地学习一个恒等函数外 还包含在以下两方面取折中 1 学习到一个针对x的表示h x也能通过一个解码器从h中还原 需要注意的是 这并不需要对所有x都满足 只满足对那些服从数据分布的x即可 重建误差 2 减小模型代表性的能力 使在尽可能多的输入方向上不敏感 模型的表达能力 泛化能力 自编码简介 Autoencoder 如何在重建误差和表达能力之间取折中呢 解决方法 区分训练样本的哪些变量需要表示 学到一个数据的表示 映射 mapping 对流形的方向比较敏感 对正交于流形的方向不敏感 将在正交于流形的方向产生一个收缩的表示 图中 黑色的线为流形空间 向右的绿色箭头与流形相切 蓝色的箭头正交于流形 自编码简介 Autoencoder 重建误差的概率解释 目标函数 损失函数的选取取决于输入数据的类型 如果输入是实数值 无界值 损失函数使用平方差 squarederror 如果输入时位矢量 交叉熵 cross entropy 更适合做损失函数 什么是交叉熵 p和q分布的交叉熵是 p分布的信息熵和p和q的DL散度的和 我们可以认为训练一个解码函数等同于对条件分布P x h 的估计 同样的道理 可以将编码函数理解为一个条件分布Q h x 而不仅仅是一个 干巴巴 的函数式子 稀疏自动编码器 SparseAutoencoder 如果在AutoEncoder的基础上加上L1的Regularity限制 L1主要是约束每一层中的节点中大部分都要为0 只有少数不为0 这就是Sparse名字的来源 我们就可以得到SparseAutoEncoder法 如上图 其实就是限制每次得到的表达code尽量稀疏 因为稀疏的表达往往比其他的表达要有效 人脑好像也是这样的 某个输入只是刺激某些神经元 其他的大部分的神经元是受到抑制的 稀疏自动编码器 SparseAutoencoder 输入 基础知识回顾 输出 激活函数 Sigmiod Sigmoid函数曲线 导数 稀疏自动编码器 SparseAutoencoder 简单神经网络 三层 单隐藏层 L层第i个单元的输入单元总的加权和表示为 例如 所以 进一步简写 稀疏自动编码器 SparseAutoencoder 反向传播算法 Backpropagationalgorithm 输入 共m个训练集 损失函数 其中 类似于 加入正则化项 权重衰减项 weightdecay 如下式 稀疏自动编码器 SparseAutoencoder 反向传播算法 Backpropagationalgorithm 首先 通过前向网络 计算每个神经元的激活值 activations 包括输出值 其次 对于第L层的第i节点 计算其误差项 对于输出节点 详细推导步骤 表示输出层 有 推导见下一张PPT 稀疏自动编码器 SparseAutoencoder 反向传播算法 Backpropagationalgorithm 如何得来的呢 推导过程 对于 有 其中 表示l 1层神经元个数 详细推导步骤 稀疏自动编码器 SparseAutoencoder 自编码设法学习到一个函数 使得 回到自编码 即 稀疏自动编码器 SparseAutoencoder 为隐藏单元j的平均激活值 如左图 一般强制约束 Why 看下文 是一个稀疏参数 一般取接近于0的值 比如0 05 也就是说 每个隐藏单元j的平均激活值接近于0 05 稀疏自动编码器 SparseAutoencoder 该式的另外一个作用是 对 偏离 我们添加一个额外的惩罚项来最优化目标函数 即 其中 KL散度公式 的程度进行惩罚 左图中 当 时 KL散度值达到最小 其值为0 当 趋于0或1时 KL散度值趋于无穷大 因此 为了使以上惩罚项最小 必须使得 稀疏自动编码器 SparseAutoencoder 因此 全局损失函数为 哎妈 这玩意终于出来了 其中 稀疏自动编码器 SparseAutoencoder 为什么能稀疏 1 减小编码后隐藏层神经元个数 比如 后一层比前一层神经元个数少 如果激活函数不使用sigmoid函数 而使用线性函数 就是PCA模型 2 隐藏层的任何一个神经元不应该总是高度激活 通过设置 的值充分小 一般接近于0 比如0 01等 为使KL散度尽可能小 则 从而使得类似于右图中的神经元激活值较小 处于抑制状态 小 稀疏自动编码器 SparseAutoencoder 部分代码 初始化 前向计算各神经元的线性组合值和激活值 权值惩罚项 稀疏项 损失函数的总表达式 栈式自编码 StackedAutoencoder 栈式自编码在预训练 初始化 深度神经网络的权重使用较多 栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络 其前一层自编码器的输出作为其后一层自编码器的输入 采用逐层贪婪训练法进行训练 获取栈式自编码神经网络参数 按照从前向后的顺序执行每一层自编码器的编码步骤 是最深层隐藏单元的激活值 这个向量是对输入值的更高阶的表示 其中 作为softmax分类器的输入特征 可以网络中学的特征用于分类问题 通过将 栈式自编码 StackedAutoencoder 具体实例 训练一个包含两个隐含层的栈式自编码网络 用来进行MNIST手写数字分类 首先 你需要用原始输入 训练第一个自编码器 它能够学习得到原始输入的一阶特征表示 然后 你再用这些一阶特征作为另一个稀疏自编码器的输入 使用它们来学习二阶特征 栈式自编码 StackedAutoencoder 接下来 你可以把这些二阶特征作为softmax分类器的输入 训练得到一个能将二阶特征映射到数字标签的模型 最终 你可以将这三层结合起来构建一个包含两个隐藏层和一个最终softmax分类器层的栈式自编码网络 这个网络能够如你所愿地对MNIST数字进行分类 栈式自编码 StackedAutoencoder 栈式自编码神经网络具有强大的表达能力及深度神经网络的所有优点 更进一步 它通常能够获取到输入的 层次型分组 或者 部分 整体分解 结构 自编码器倾向于学习得到能更好地表示输入数据的特征 举个例子 如果网络的输入数据是图像 网络的第一层会学习如何去识别边 第二层一般会学习如何去组合边 从而构成轮廓 角等 更高层会学习如何去组合更形象且有意义的特征 例如 如果输入数据集包含人脸图像 更高层会学习如何识别或组合眼睛 鼻子 嘴等人脸器官 本节小结 去噪自编码 DenoisingAutoencoder 为输入值 通过对x随机映射或添加噪声而获得 训练指导思想 最小化 其中 信息熵 KL散度 去噪自编码 DenoisingAutoencoder 噪声的两个来源 1 来自于样本中选择的训练数据集x 2 对数据集x的随机破坏 或添加噪声 从而获得 去噪自编码 DenoisingAutoencoder 流形学习观点 重建干净的数据 DAE用于从破损的 破损处理 灰色的圈代表等概率的破损 图中的红十字 分布在低维流形附近 DAE训练最小化均方误差 学习一个向量场 绿色的箭头 向量场用于估计一个梯度场 去噪自编码 DenoisingAutoencoder 学习一个向量场用于估计梯度场 这个属性在以下前提条件下已被证明 AlainandBengio 2012 2013 用于估计梯度场 DAE的一个重要属性是 他们的训练准则使得自编码学习一个向量场 x是连续值 损坏 添加噪声 和重建分布都服从高斯分布 均方误差 破损处理服从以下分布 更准确地说 是 一个相容估计 即 去噪自编码 DenoisingAutoencoder 1 图中每个箭头长度正比于 重建值减去自编码的输入矢量 围绕一个一维弯曲流形 附近数据 橙色的圈 集中在一个二维空间 通过DAE学习一个向量场 2 方向 根据隐含估计的概率分布指向更高的概率值 3 注意 估计密度函数的顶峰 数据流形上 和低谷 局部最小 向量场为零值 去噪自编码 DenoisingAutoencoder 将梯度场变成一个生成模型 编码 解码对的应用可以给我们生成一个大概的结构 如果我们考虑蒙特卡罗马尔科夫链算法 MCMC 两方面需要注意 1 从低概率结构转移到高概率结构 2 加入随机性 使得链可到处转移 不至于在一些概率或模型的顶峰被困住 陷入局部最优 并且有机会遍历整个空间 使得概率等于潜在模型的概率 从概念上的理解 我们在做编码解码操作时 需要加入噪声 但加入多少 怎么加合适呢 Buthowmuchandhow 下页将作出解释 去噪自编码 DenoisingAutoencoder 图中 C和P是条件随机的 f和g是确定性计算 a 在x中加入噪声 产生 b 使用f函数对x进行编码 c 使用g函数进行解码 d 从重建的分布 中进行采样获得一个新的状态xt 1 从估计分布中产生马尔科夫链的步骤 答案在 Bengioetal 2013 Theorem1 理论表明 自编码是相关的真值条件分布的一个相容估计 然而 以上马尔科夫链的平稳分布是X的数据生成分布的一个相容估计 去噪自编码 DenoisingAutoencoder 图中数据 黑圈 分布在低维流形 螺旋线 的附近 马尔科夫链的两个随机步骤 x 绿色的圆圈代表狗的真实图像值 蓝色的圆圈代表添加噪声后狗的图像值 代表各向同性 等概率 高斯噪声 图中的绿色 1 通过将x变换成 2 在降噪后重建的分布中对下一个状态进行采样 x有很多种可能 取决于 图中 蓝色的扁平形状就是的表示结果 x分布在附近的流形上 说明 去噪自编码 DenoisingAutoencoder 去噪自动编码器DA是在自动编码器的基础上 训练数据加入噪声 所以自动编码器必须学习去去除这种噪声而获得真正的没有被噪声污染过的输入 因此 这就迫使编码器去学习输入信号的更加鲁棒的表达 这也是它的泛化能力比一般编码器强的原因 本节小结 压缩自编码 ContrativeAutoencoder 好的特征表示大致有2个衡量标准 1 可以很好的重构出输入数据 2 对输入数据一定程度下的扰动具有不变形 普通的autoencoder sparseautoencoder和stackedautoencoder主要是符合第一个标准 而denioseautoencoder和contractiveautoencoder则主要体现在第二个 在一些分类任务中 第二个标准显得更重要 引言 压缩自编码 ContrativeAutoencoder 普通自编码 压缩自编码 其中 雅克比矩阵 WhenSigmoid 压缩自编码 ContrativeAutoencoder CAE与正则化自编码 即weightdecay 的关系 1 当线性编码 并且为恒等函数时 有 对于 此时 使权值W尽量小是收缩的唯一方法 2 当为sigmoid函数时 通过使隐藏节点达到饱和状态 也能达到收缩和编码的健壮性 如何解释 Sigmoid函数曲线 压缩自编码 ContrativeAutoencoder CAE与稀疏自编码的关系 自编码时 使用稀疏特性的目的在于 使得编码层输出值大部分趋于0 Sigmoid函数曲线 使用sigmoid激活函数时 为使编码层输出值 特征值 趋于0 必须尽可能的离开函数曲线的饱和部分 见图中的左下角 可以看出 值很小 并且曲线基本是水平的 因此 下面式子必然较小 所以 稀疏自编码中 很多趋近于0的特征输出值可以理解为一个高度压缩映射 contractivemapping 压缩自编码 ContrativeAu

温馨提示

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

评论

0/150

提交评论