当前位置:  开发笔记 > 人工智能 > 正文

需要很好的方法来选择和调整"学习率"

如何解决《需要很好的方法来选择和调整"学习率"》经验,为你挑选了2个好方法。

在下图中,您可以看到学习算法试图学习产生所需的输出(红线).学习算法类似于后向错误传播神经网络.

"学习率"是控制训练过程中所做调整的大小的值.如果学习率太高,那么算法会很快学习,但是它的预测会在训练过程中大量跳跃(绿线 - 学习率为0.001),如果它低于预测但跳跃的数量会减少,但算法需要学习的时间更长(蓝线 - 学习率为0.0001).

黑线是移动平均线.

我如何调整学习速率,使其最初收敛到接近所需的输出,但然后减慢速度,以便它可以磨练正确的值?

学习率图表http://img.skitch.com/20090605-pqpkse1yr1e5r869y6eehmpsym.png



1> Nate Kohl..:

有时,随着时间的推移降低学习率的过程被称为"退火"学习率.

有许多可能的"退火时间表",例如学习率是时间的线性函数:

u(t) = c / t

......哪里c有些不变.或者有"搜索然后收敛"的时间表:

u(t) = A * (1 + (c/A)*(t/T)) / 
           (1 + (c/A)*(t/T) + T*(t^2)/(T^2))

......这使各地的学习率At相比,小T("搜索"阶段),然后当降低学习率t相比是大T(以下简称"收敛"阶段).当然,对于这两种方法,你必须调整参数(例如c,AT),但希望引入他们将帮助更多比它会伤害.:)

一些参考:

快速随机梯度搜索的学习速率表,Christian Darken,Joseph Chang和John Moody,信号处理的神经网络2 --- 1992年IEEE工作室的论文集,IEEE出版社,Piscataway,NJ,1992.

随机近似方法,Herbert Robbins和Sutton Monro,数学统计年鉴22,#3(1951年9月),第400-407页.

神经网络和学习机(特别是3.13节),Simon S. Haykin,第3版(2008),ISBN 0131471392,9780131471399

这是一个简要讨论学习速率适应的页面.


Search-then-converge实际上比你在这里写的更复杂.你的公式几乎不变.见[本文(PDF)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.42.2884&rep=rep1&type=pdf).**编辑添加**:看起来错误最初是在您的源素材中.所以这不是你的错,但它仍然值得注意.
@DavidJ.Harris好抓.我已经更新了search-then-converge计划.

2> Welbog..:

当您说您需要在网络学习时改变您的学习率时,您回答了自己的问题.你可以通过很多不同的方式来做到这一点.

最简单的方法是通过迭代次数线性降低学习速率.每25个(或其他任意数字),从速率中减去一部分,直到达到最小值.

您也可以使用迭代次数进行非线性处理.例如,每次迭代将学习率乘以.99,再次达到最佳值.

或者你可以变得更加狡猾.使用网络结果确定网络的下一个学习速率.它的健身指标越好,你的学习率越小.这样,只要需要,它就会快速收敛,然后慢慢收敛.这可能是最好的方法,但它比简单的迭代次数方法更昂贵.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有