我目前正致力于利用反向传播实现神经网络的随机梯度下降( SGD ),虽然我理解它的目的,但我有一些关于如何为学习速率选择值的问题。
简单地说:我如何选择SGD的学习率?
发布于 2014-06-16 19:53:09

- [Adadelta](http://arxiv.org/pdf/1212.5701v1.pdf) is another such training algorithm which uses both the error gradient history like adagrad and the weight update history and has the advantage of _not having to set a learning rate at all_.发布于 2014-06-26 23:46:22
以下是非常好的笔记(第12页)关于神经网络中的学习率(反向传播)由吴家辉。你会发现与学习率有关的细节。
http://web.stanford.edu/class/cs294a/sparseAutoencoder_2011new.pdf
关于你的第四点,你是对的,通常你必须选择一个“平衡”的学习速度,既不应该过高,也不应该收敛太慢。我们可以绘制出学习速率w.r.t。成本函数的下降,用于诊断/微调。在实践中,安德鲁通常使用L-BFGS算法(在第12页中提到)来获得“足够好”的学习率。
发布于 2015-08-17 14:13:39
选择一个学习率是一个被称为超参数优化的“元问题”的例子。最佳学习率取决于手头的问题,以及正在优化的模型的体系结构,甚至取决于当前优化过程中模型的状态!甚至还有一些软件包专门用于超参数优化,如斯皮尔蒙和超选择 (仅举几个例子,还有许多其他的例子!)
除了全面的超参数优化之外,我还想提到一种在选择学习速率方面很常见的技术,到目前为止还没有提到过。模拟退火是一种优化模型的技术,它从一个大的学习速率开始,并随着优化的进展逐渐降低学习速度。通常情况下,你会用一个很高的学习率(0.1左右)优化你的模型,然后逐步降低这个比率,通常是一个数量级(所以是0.01,然后是0.001,0.0001等等)。
这可以与早期停止相结合,只要取得了进展,就可以用一个学习速率来优化模型,然后在进度出现放缓时切换到较小的学习速率。较大的学习率似乎有助于模型定位一般的、大规模的最优区域,而较小的学习率则有助于模型集中于一个特定的局部最优区域。
https://datascience.stackexchange.com/questions/410
复制相似问题