深度学习(1)——sae(稀疏自动编码机).pptxVIP

深度学习(1)——sae(稀疏自动编码机).pptx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深度学习(1) —— 稀疏自动编码机(SAE) 网络 广东工业大学 13级控制工程 1019408133@ 传统神经网络 • 1) 比较容易过拟合 , 参数比较难调整; • 2) 训练速度比较慢 , 在层次比较少(小于等于3) 的情况下效果 并不比其它方法更优; BP算法存在的问题: • (1) 梯度越来越稀疏: 从顶层越往下 , 误差校正信号越来越小; • (2) 收敛到局部最小值: 尤其是从远离最优区域开始的时候(随机 值初始化会导致这种情况的发生); • (3) 一般 , 我们只能用有标签的数据来训练: 但大部分的数据是没 标签的 , 而大脑可以从没有标签的的数据中学习; 一 、针对过拟合现象的处理 • 1.惩罚项(Penalty , 正则化方法 , 正则化的一般形式是在整个目标函 数后增加一个正则项 , 以使经验风险最小化 。 把不重要的项的参数 保留 , 但是令其系数为零) • 2.给输入层a{1}加噪 , 以及对隐含层a{i}进行Dropout (按比例随机清 零 。) 二 、针对训练快慢与稳定性的矛盾 应用权值动量辅助调整权值 三 、针对以往一个bp 网络不能太多层 先逐个逐个隐含层进行无监督训练(实际还是用bp ) , 即调用 saesetup.m以及saetrain.m 。 然后得到各个隐含层的参数才对完整的 网络进行有监督训练。 test_example_SAE.m • 一 、训练隐含层(例中为单个隐含层) • 1.调用saesetup设置网络参数( 结构为[784 100]的两层网络) • 2.在第1步基础上修改网络参数(这里是修改第一组的 激活函数类型 、学习 率 、输入加噪率 、训练迭代次数 、batchsize) • 3.调用saetrain , 让它对各个隐含层进行逐层训练(例子中给的隐含层数为 1层 , 100个节点 , 输入输出同是train_x 。每次进行nntrain来训练隐含层都为 三层网络 , 输入层和输出层一样) • 4.对第一组权值进行可视化 , 看看学习结果 。(由于例中的网络只有一个 100节点隐含层 , 故可视化为一张100个特征块图片 。第一组权值W{1}用于编 码 , 第二组W{2}用于解码) • 二 、初始化网络(为第三步初始化) • 1.调用nnsetup , 设置整个网络(结构是[784 100 10]) • 2.设置网络的激活函数和学习率 • 3.第一步中 , 把用于编码的W(实际包括阈值b和权值W) 赋给此网络。 • 三 、训练前向网络 • 1. 设置训练次数 、batchsize。 • 2.调用nntrain训练整个网络(此时因期望输出是tr ain_y , 为有监督的训练) • 3.调用nntest测试整个网络 saesetup.m 这里sae.setup中的输入是[784 100] , 令architecture= [784 10 784] ,调 用nnsetup进行网络参数设置。 x x W1 ’ b1 ’ W1 b1 h • 逐个隐含层进行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} a{2}=sigm(nn.a{1} * nn.W{1}‘) , 作为训 练第二个隐含层的输入 , 但是这里只有一 个隐含层 , 所以a{2}在这里并没用 若是需要训练两个隐含层 , 那么这 里的a{2}则作为下个三层网络的输入 以及输出 这里a{1}=train_x 784 saetrain.m a {1} a {2} 784 +1 100 +1 +1 0 +1 nnsetup.m nn.size = architecture ; %要设置的各层节点结构 , 如[784 100 784] nn.n = numel(nn.size) ; %层数 , 当[784 100 784] , 则为3 nn.activation_function = ‘tan h_opt ’ ; %激活函数 , 或称传递函数 nn. learningRate = 2; %学习率 , 或称步长 , 就是决定每次梯度下降的长度

文档评论(0)

189****4123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档