深度学习反向传播公式分析及参数调整策略.docx

深度学习反向传播公式分析及参数调整策略.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
深度学习反向传播公式分析及参数调整策略 1深度学习solver反向传播中优化训练方法 Solver就是用来使loss最小化的优化方法。对于一个数据集D,需要优化的目标函数是整 个数据集中所有数据loss的平均值。 奶)=高冲阴 其中,fW(x(i))计算的是数据x(i)上的loss,先将每个单独的样本x的loss求出来,然后求 和,最后求均值。r(W)是正则项(weight_decay),为了减弱过拟合现象。 如果采用这种Loss函数,迭代一次需要计算整个数据集,在数据集非常大的这情况下, 这种方法的效率很低,这个也是我们熟知的梯度下降采用的方法。 在实际中,通过将整个数据集分成几批(batches),每一批就是一个mini-batch,其数量 (batch_size)为 N<<|D|,此时的 loss 函数为: 必)蛇立如(对))一而网) i 有了 loss函数后,就可以迭代的求解loss和梯度来优化这个问题。在神经网络中,用forward pass来求解loss,用backward pass来求解梯度。 在caffe中,默认采用的Stochastic Gradient Descent (SGD)进行优化求解。后面几种方法 也是基于梯度的优化方法(like SGD),因此本文只介绍一下SGD。其它的方法,有兴趣的同 学,可以去看文献原文。 1、Stochastic gradient descent( SGD) 随机梯度下降(Stochastic gradient descent)是在梯度下降法(gradient descent)的基础上 发展起来的,梯度下降法也叫最速下降法,具体原理在网易公开课《机器学习》中,吴恩达教 授已经讲解得非常详细。SGD在通过负梯度和上一次的权重更新值儿的线性组合来更 新仍迭代公式如下: % + 1 =" -aVL(Wt) Wt+1=Wt^ Vt+1 其中,◎是负梯度的学习率(base_lr),〃是上一次梯度值的权重(momentum),用来加权 之前梯度方向对现在梯度下降方向的影响。这两个参数需要通过tuning来得到最好的结果,一 般是根据经验设定的。如果你不知道如何设定这些参数,可以参考相关的论文。 [ImageNet Classification with Deep Convolutional Neural Networks, Alex Krizhevsky 2012,NIPS.] 符号 拼音 Caffe术语 深度学习术语 中文含义 典型值 入 Lambda Weight_decay Weight decay 权值衰减 0.0005 a Alpha Base_lr Learning rate 学习速率 0.01 Mu momentum momentum 梯度值的权重 (动量因子) 0.9 本部分的随机梯度下降算法是在第二部分的基础上得来的。第二部分所阐述的常规梯度下 降算法为吨1 = ^t - O^L(W)与第二部分所阐述的常规梯度下降算法相比,增加了匕+1部 分以及权重动量参数。 在深度学习中使用SGD,比较好的初始化参数的策略是把学习率设为0.01左右(base_lr: 0.01),在训练的过程中,如果loss开始出现稳定水平时,对学习率乘以一个常数因子(gamma), 这样的过程重复多次。 对于momentum, 一般取值在0.5--0.99之间。通常设为0.9, momentum可以让使用SGD 的深度学习方法更加稳定以及快速。关于更多的momentum,请参看Hinton的 《A Practical Guide to Training Restricted Boltzmann Machines》。 实例: base_lr: 0.01 lr_policy: "step" gamma: 0.1 stepsize: 1000 max_iter: 3500 momentum: 0.9 lr_policy 设置为 step,则学习率的变化规则为 base_lr * gamma A (floor(iter / stepsize))即前 1000次迭代,学习率为0.01;第1001-2000次迭代,学习率为0.001;第2001-3000次迭代,学 习率为0.00001,第3001-3500次迭代,学习率为10-5。 上面的设置只能作为一种指导,它们不能保证在任何情况下都能得到最佳的结果,有时候 这种方法甚至不work。如果学习的时候出现diverge(比如,你一开始就发现非常大或者NaN 或者inf的loss值或者输出),此时你需要降低base_lr的值(比如,0.001),然后重新训练, 这样的过程重复几次直到你找到可以work的base_lr。 2经典的梯度下降算法 参考 UFLDL 教

文档评论(0)

z190712l + 关注
实名认证
内容提供者

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

认证主体李**

1亿VIP精品文档

相关文档

相关课程推荐