深度学习(1)——sae(稀疏自动编码机)PPT课件.ppt_第1页
深度学习(1)——sae(稀疏自动编码机)PPT课件.ppt_第2页
深度学习(1)——sae(稀疏自动编码机)PPT课件.ppt_第3页
深度学习(1)——sae(稀疏自动编码机)PPT课件.ppt_第4页
深度学习(1)——sae(稀疏自动编码机)PPT课件.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

深度学习 1 稀疏自动编码机 SAE 网络 广东工业大学13级控制工程1019408133 1 传统神经网络1 比较容易过拟合 参数比较难调整 2 训练速度比较慢 在层次比较少 小于等于3 的情况下效果并不比其它方法更优 BP算法存在的问题 1 梯度越来越稀疏 从顶层越往下 误差校正信号越来越小 2 收敛到局部最小值 尤其是从远离最优区域开始的时候 随机值初始化会导致这种情况的发生 3 一般 我们只能用有标签的数据来训练 但大部分的数据是没标签的 而大脑可以从没有标签的的数据中学习 2 一 针对过拟合现象的处理1 惩罚项 Penalty 正则化方法 正则化的一般形式是在整个目标函数后增加一个正则项 以使经验风险最小化 把不重要的项的参数保留 但是令其系数为零 2 给输入层a 1 加噪 以及对隐含层a i 进行Dropout 按比例随机清零 二 针对训练快慢与稳定性的矛盾应用权值动量辅助调整权值三 针对以往一个bp网络不能太多层先逐个逐个隐含层进行无监督训练 实际还是用bp 即调用saesetup m以及saetrain m 然后得到各个隐含层的参数才对完整的网络进行有监督训练 3 test example SAE m 一 训练隐含层 例中为单个隐含层 1 调用saesetup设置网络参数 结构为 784100 的两层网络 2 在第1步基础上修改网络参数 这里是修改第一组的激活函数类型 学习率 输入加噪率 训练迭代次数 batchsize 3 调用saetrain 让它对各个隐含层进行逐层训练 例子中给的隐含层数为1层 100个节点 输入输出同是train x 每次进行nntrain来训练隐含层都为三层网络 输入层和输出层一样 4 对第一组权值进行可视化 看看学习结果 由于例中的网络只有一个100节点隐含层 故可视化为一张100个特征块图片 第一组权值W 1 用于编码 第二组W 2 用于解码 二 初始化网络 为第三步初始化 1 调用nnsetup 设置整个网络 结构是 78410010 2 设置网络的激活函数和学习率3 第一步中 把用于编码的W 实际包括阈值b和权值W 赋给此网络 三 训练前向网络1 设置训练次数 batchsize 2 调用nntrain训练整个网络 此时因期望输出是train y 为有监督的训练 3 调用nntest测试整个网络 4 saesetup m 这里sae setup中的输入是 784100 令architecture 78410784 调用nnsetup进行网络参数设置 x h x W1b1 W1 b1 5 saetrain m 逐个隐含层进行nntrain sae ae i x x opts 训练更新sae ae i 参数 其实就是更新sae ae i W 1 sae ae i W 2 实验中 这里的i 1 因而就是得到sae ae 1 W 1 sae ae 1 W 2 而最后只取用sae ae 1 W 1 784 1 100 1 784 1 1 这里a 1 train xa 2 sigm nn a 1 nn W 1 作为训练第二个隐含层的输入 但是这里只有一个隐含层 所以a 2 在这里并没用 a 1 a 2 若是需要训练两个隐含层 那么这里的a 2 则作为下个三层网络的输入以及输出 a 1 a 2 阈值B 6 nnsetup m nn size architecture 要设置的各层节点结构 如 784100784 nn n numel nn size 层数 当 784100784 则为3nn activation function tanh opt 激活函数 或称传递函数nn learningRate 2 学习率 或称步长 就是决定每次梯度下降的长度nn momentum 0 5 权值动量nn scaling learningRate 1 在nntrain中出现 是每代间 学习率的关系倍数nn weightPenaltyL2 0 权值惩罚 L2正则化 在nnapplygrads中用到nn nonSparsityPenalty 0 稀疏惩罚项 在nnbp中用到 nn sparsityTarget 0 05 稀疏目标 在nnbp中用到 nn inputZeroMaskedFraction 0 用于加噪nn dropoutFraction 0 每一次mini batch样本输入训练时 随机扔掉0 的隐含层节点nn testing 0 设置此时网络有无测试nn output sigm 输出接什么函数 还有 softmax and linear 以下i为从第2到最后一层nn nnn W i 1 随机给出网络权值初始值nn vW i 1 让它初值 0 用于更新参数时的临时参数nn p i 让它初值 0稀疏 7 nntrain 这里无验证数据输入 大循环逐numepochs 训练代数 小循环逐numbatches 每代的样本批次 每批样本100个 它们共同决定更新一次权值 不同代的同个批次中的样本不会相同 因为被随机打乱了 1故有numepochs numbatches次执行下列 这么多次更新权值 判断inputZeroMaskedFraction 看看是否要加噪 是的话 按此比例随机把输入值清零 nn nnff nn batch x batch y 前向网络nn nnbp nn 反向传播网络nn nnapplygrads nn 梯度下降L n nn L 保存每次训练的误差 总共训练了10 600次 故有6000个误差2每代更新损失值和学习率loss nneval nn loss train x train y 误差值nn learningRate nn learningRate nn scaling learningRate 调整改变下一次训练的学习率 8 nntrain m x h y W2b2 W1b1 结果 9 得到每层的激活值 一 输入层a 1 ones m 1 x 这里m size x 1 100二 隐含层 这里只考虑s函数 从第2到第n 1层 a i sigm nn a i 1 nn W i 1 dropoutFraction用在训练隐含层中 随机将激活值按比例清零 为了让权值不起作用 dropoutFraction用在测试中 将激活值nn a i nn a i 1 nn dropoutFraction if nn nonSparsityPenalty 0 在nnbp中用到nn p i 0 99 nn p i 0 01 mean nn a i 1 三 输出层1 当输出不接softmax时nn a n sigm nn a n 1 nn W n 1 2 当输出接分类器softmax时 此次实验没用到它 得到误差值e y a n 当输出不接softmax时 平均误差平方为L sum sum 1 2 nn e 2 m nnff m 10 为了得到n 1组dW 用于调节n 1个W 在求dW过程中用到了中间变量d i d act一 求d i 1 输出层的d n 当nn output sigm 时 d n nn e nn a n 1 nn a n 即1 2 nn e 2的复合函数求导 其中变量是nn a n 2 隐含层的d i if nn nonSparsityPenalty 0 pi repmat nn p i size nn a i 1 1 sparsityError zeros size nn a i 1 1 nn nonSparsityPenalty nn sparsityTarget pi 1 nn sparsityTarget 1 pi ifi 1 n 倒数第二层 即最后一个隐含层d i d i 1 nn W i sparsityError d act d act nn a i 1 nn a i else 此外d i d i 1 2 end nn W i sparsityError d act if nn dropoutFraction 0 nn dropOutMask i 在nnff中已求得 必须与它相同d i d i ones size d i 1 1 nn dropOutMask i 清零 二 求dW i ifi 1 nnn dW i d i 1 nn a i size d i 1 1 elsenn dW i d i 1 2 end nn a i size d i 1 1 以往的bp网络 W de dw 这里多了稀疏项 以及Dropout的处理 在下一步的nnapplygrads中还多了权值惩罚以及权值动量 nnbp m 11 nnapplygrads m 梯度下降法计算作为更新值的nn W 当设置nn weightPenaltyL2 0 则dW nn dW i nn weightPenaltyL2 zeros size nn W i 1 1 nn W i 2 end 当设置nn weightPenaltyL2 0 则dW nn dW i 再让dW乘以学习率 或称步长 如果权值动量momentum 0 则nn vW i nn momentum nn vW i dW dW nn vW i 最后nn W i nn W i dW 1 惩罚项方法是一种间接修剪网络的办法 其原理是在传统的误差函数中加入一衡量网络结构复杂程度的 复杂度项 应用到权值更新规则后 该项在训练过程中起到防止权值增长太大和驱使不重要权值逐渐减小到零的作用 尽管那些接近零的连接权没有从网络中被删除 但它们对网络输出几乎没有影响 已相当于从网络中被删除了 这样一来 训练后的神经网络实际上已是被修剪过的小网络了 可见 惩罚项法在没有破坏网络结构的同时又达到网络修剪的目的 从而是提高神经网络泛化

温馨提示

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

评论

0/150

提交评论