前言算法
如下内容是我的学习以后的感悟,转载请注明出处~函数
超参数调试学习
在深度学习中,超参数有不少,好比学习率α、使用momentum或Adam优化算法的参数(β1,β2,ε)、层数layers、不一样层隐藏优化
单元数hidden units、学习率衰退、mini=batch的大小等。其中一些超参数比其余参数重要,其优先级能够分为如下几级,如图,红色spa
框最优先,橙色次之,紫色再次之,最后没有框住的通常直接取经验值(固然你也能够本身取)。调试
那么如何来调试超参数呢?blog
如下图的2维超参数为例(即只调两个超参数,固然有时候须要调的超参数不少时,就须要不少维,不便画出)首先能够在必定的范资源
围内对这两个超参数随机取值(如图中黑点),若发现其中几个黑点的效果最好,则缩小范围(即蓝色方框)进行细化参数,寻找最适合深度学习
的超参数。此法从粗略搜索再到精密搜索,能够达到很好的效果。it
上面提到的随机取值,并不是是在有效值范围内的随机均匀取值,而是选择合适的标尺。好比对于隐藏单元数n和隐藏层数L,以下图所
示,其合适的标尺刚好是在有效范围内均匀取值,能够实现很好的调试效果。
然而,这对某些超参数是不适用的,好比学习率α,其范围在0.0001到1之间,有经验的咱们怀疑α有很大可能在0.0001到0.1之间,但
是若是随机均匀取值,那么在0.1到1之间将用去90%的资源,这看上去不对啊,资源没有用在刀刃上。所以,咱们须要选择更加合适的标
尺——对数标尺,分别取0.000一、0.00一、0.0一、0.一、1,这样能够充分利用资源,达到理想的效果。固然,若是你怀疑α是在0.9到0.999之
间,那么(1-α)就在0.1到0.001之间,其实作法是同样的。
有时候,你训练好超参数不久,你的数据在逐渐的改变,意味着以前训练好的超参数再也不适用于现今的数据,那么该如何作呢?咱们需
要常常照看模型。通常有如下两种方式,第一种是只有一个模型,以下图中左边所示,该模型的代价函数随时间的变化而变化,咱们须要不
断调整其超参数,使曲线不上升;第二种就是建许多个模型,以下图中右边所示,每一个模型的代价函数随时间的变化而变化,咱们只须要挑
当时表现比较好的模型用于预测数据便可。能够看出,在计算量容许的状况下,第二种方式是很是好的。
以上是所有内容,若是有什么地方不对,请在下面留言,谢谢~