Batch的大小、灾难性遗忘将如何影响学习速率.doc
《Batch的大小、灾难性遗忘将如何影响学习速率.doc》由会员分享,可在线阅读,更多相关《Batch的大小、灾难性遗忘将如何影响学习速率.doc(4页珍藏版)》请在三一文库上搜索。
1、Batch的大小、灾难性遗忘将如何影响学习速率编者按:上篇文章中,我们提到了如何高效地训练ResNet。在今天的文章中,我们将对mini-batch的尺寸进行研究,同时要考虑遗忘性问题。在上一篇文章中,我们得到了一个18层的ResNet网络,测试精度达到94%需要341秒,并且经过进一步调整后,时间缩短至297秒。目前,训练使用的batch大小是128,batch更大,就支持更高效的计算,所以我们想试试当batch增大到512会发生什么。如果我们想估计之前的设置,就需要保证学习率和其他超参数都经过合适的调整。具有mini-batch的随机梯度下降几乎是每次只训练一个样本,但不同的是,参数的更新
2、会延迟到batch结束。在低学习率的限制下,你可以认为这种延迟是更高阶的效应,只要梯度只在mini-batch上求和而不是计算平均数,批处理就不会改变任何一阶的顺序。我们还在每个batch之后应用了权重衰减,它会通过batch size中的一个因素增加,从而抵消需要处理的batch数量。如果梯度根据mini-batch被平均,那么学习速率应该增加到可以消除这一影响只留下权重衰减,因为权重衰减的更新对应着学习率的因子。所以现在我们将batch size定为512开始训练。训练时间为256秒,将学习速率增加10%,在128的batch size下,3/5的训练都能达到94%的测试精确度。如之前所料
3、,在512的batch size下,验证结果有更大的噪声,这是因为批规范化的影响。现在速度增加的很好,但是结果让我们很吃惊考虑到要用不同的mini-batch进行训练,我们认为这一过程中我们忽略了两点。首先,我们认为延迟更新,直到这一mini-batch结束都是更高阶的影响,这在较低的学习率中是可行的。目前配置中的快速训练速度很大程度上取决于高学习率的使用。在凸优化的背景下(或仅仅是二次方的梯度下降),我们可以在某一点设置学习速率,达到最大的训练速度,在这一点处,二阶效应开始平衡一阶效应,并且一阶步长产生的益处可以通过曲率效应抵消。假设我们处于这种状态mini-batch导致的延迟更新应该产生
4、相同的曲率惩罚,因为学习率的增加,训练会变得不稳定。简而言之,如果可以忽略高阶效应,就说明训练速度不够快。另外,我们发现训练步骤只有一个,但事实上,训练是一个很长的运行过程,要改变参数就需要好几个步骤。所以,小的batch和大的batch训练之间的二阶差异可以随着时间积累,导致训练轨迹有很大不同。在之后的文章中我们会重新讨论这一点。所以,我们该如何在限制训练速度的情况下,还可以提高batch size,同时不用维持曲率效应带来的不稳定性?答案可能是其他因素在限制学习速率,而我们并没有考虑到曲率效应。我们认为这一其他因素就是“灾难性遗忘(Catastrophic Forgetting)”,这也是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Batch 大小 灾难性 遗忘 如何 影响 学习 速率
链接地址:https://www.31doc.com/p-3249967.html