网站大量收购闲置独家精品文档,联系QQ:2885784924

深度学习之反向传播.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  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文档。上传文档
查看更多
深度学习之反向传播算法(BackPropagation) 算法简介 反向传播算法( BP算法)主要由两个环节(激励传播、权重更新)反复循环 迭代,直到网络的对输入的响应达到预定的目标范围为止。 BP算法要求每个人工神经元(节点)所使用的 激励函数必须是 可微的。BP算法特别适合用来训练前向神经网络。 算法原理 假设有一个固定样本集?,它包含??个样例。可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例?,其代价函数(或损失函数)为: 这是一个(二分之一的)方差代价函数。给定一个包含??个样例的数据集,可以定义整体代价函数为: 以上公式中的第一项??是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过度拟合。 [注:通常权重衰减的计算并不使用偏置项?,比如在??的定义中就没有使用。一般来说,将偏置项包含在权重衰减项中只会对最终的神经网络产生很小的影响。] 权重衰减参数??用于控制公式中两项的相对重要性。在此重申一下这两个复杂函数的含义:?是针对单个样例计算得到的方差代价函数;?是整体样本代价函数,它包含权重衰减项。 以上的代价函数经常被用于分类和回归问题。在分类问题中,利用??或?1,来代表两种类型的标签(这是因为 sigmoid激活函数的值域为?;如果我们使用双曲正切型激活函数,那么应该选用??和??作为标签)。对于回归问题,我们首先要变换输出值域,以保证其范围为??(同样地,如果使用双曲正切型激活函数,要使输出值域为?)。 我们的目标是针对参数??和??来求其函数??的最小值。为了求解神经网络,需要将每一个参数??和??初始化为一个很小的、接近零的随机值(比如说,使用正态分布??生成的随机值,其中??设置为??),之后对目标函数使用诸如批量梯度下降法的最优化算法。因为??是一个非凸函数,梯度下降法很可能会收敛到局部最优解;但是在实际应用中,梯度下降法通常能得到令人满意的结果。最后,需要再次强调的是,要将参数进行随机初始化,而不是全部置为?。如果所有参数都用相同的值作为初始值,那么所有隐藏层单元最终会得到与输入值有关的、相同的函数(也就是说,对于所有?,都会取相同的值,那么对于任何输入??都会有:?(图1))。随机初始化的目的是使对称失效。 梯度下降法中每一次迭代都按照如下公式对参数??和?进行更新: 其中??是学习速率。其中关键步骤是计算偏导数。我们现在来讲一下反向传播算法,它是计算偏导数的一种有效方法。 下面来介绍一下如何使用反向传播算法来计算??和?,这两项是单个样例??的代价函数??的偏导数。一旦求出该偏导数,就可以推导出整体代价函数??的偏导数: 以上两行公式稍有不同,第一行比第二行多出一项,是因为权重衰减是作用于??而不是?。 算法实例 图1 三层神经网络 上图是典型的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层,Layer L3是隐含层,给定一些数据{x1,x2,x3,...,xn},输出也是一堆数据{y1,y2,y3,...,yn},现在将它们在隐含层做某种变换,让输入的数据训练后得到期望的输出。如果输出和原始输入一样,那么就是最常见的自编码模型(Auto-Encoder)。如果输出和原始输入不一样,那么就是很常见的人工神经网络了,相当于让原始数据通过一个映射来得到希望输出的数据。 在此直接举一个例子,带入数值演示反向传播法的过程,假设,有一个网络层: 第一层是输入层,包含两个神经元i1,i2,和截距项b1;第二层是隐含层,包含两个神经元h1,h2和截距项b2,第三层是输出o1,o2,每条线上标的wi是层与层之间连接的权重,激活函数我们默认为sigmoid函数。 对它们赋上初值,如下图: 其中,输入数据 ?i1=0.05,i2=0.10; 输出数据 o1=0.01,o2=0.99; 初始权重 ?w1=0.15,w2=0.20,w3=0.25,w4=0.30; w5=0.40, w6=0.45, w7=0.50, w8=0.88; 目标:给出输入数据i1,i2(0.05和0.10),使输出尽可能与原始输出o1,o2(0.01和0.99)接近。 前向传播 输入层----隐含层: 计算神经元h1的输入加权和: 神经元h1的输出outh1:(此处用到激活函数为sigmoid函数): 同理,可计算出神经元h2的输出outh2: 隐含层----输出层: 计算输出层神经元o1和o2的值: 这样前向传播的过程就结束了,得到输出值为[0, 0.772928465],与实际值[0.01 ,0.99]相差还很远,因此对误差进行反向传播,更新权值,重新计算输出。 反向传播 计算总误差 总误差:(square error) 因

文档评论(0)

我思故我在 + 关注
实名认证
文档贡献者

部分用户下载打不开,可能是因为word版本过低,用wps打开,然后另存为一个新的,就可以用word打开了

1亿VIP精品文档

相关文档