改善深层神经网络:超参数调整、正则化以及优化 —— 3.2 为超范围

上一节已经看到,在超参数范围内,随机取值可以提升搜索效率,但随机取值并不是在有效范围内的随机均匀取值,而是选择合适的标尺用于探究超参数。

假设要选取隐藏单元的数量n[l]n^{[l]},对于给定层,假设选择的取值范围是从50到100中某点,这种情况下,对于50-100的数轴,可以随机在其上取点,这是一个搜索特定超参数的很直观的方式。

或者如果要选取神经网络的层数,称之为字母L,也许会选择层数为2到4中的某个值,接着顺着2,3,4随机均匀取样才比较合理,还可以应用网格搜索。这是集合随机均匀取值的例子。

但这对于某些超参数是不适用的,假设在搜索超参数α\alpha学习速率,假设其值最小是0.0001,或者最大值是1,如果画一条从0.0001到1的数轴,沿其随机均匀取值,那么90%的数值将会落在0.1到1之间,结果就是在0.1到1之间应用了90%的资源,而在0.0001到0.1之间只有10%的搜索资源,这看上去不太对,反而用对数标尺搜索超参数的方式会更合理,因此这里不使用线性轴,分别依次取0.0001,0.001,0.01,1,在对数轴上均匀随机取点,这样在0.0001到0.001之间就会有更多的搜索资源可,还有在0.001到0.01之间等等。分别取对数可以得到0.0001-1之间的对数范围是-4-0,然后可以设置α\alpha的值,基于随机取样的超参数值α=10r\alpha=10^r。所以总结一下,在对数座标上取值,取最小值的对数得到a值,取最大值的对数得到b值,所以现在在对数轴上的10a10^a10b10^b区间取值,在a和b之间随机均匀的选取r值,将超参数设置为10r10^r,这就是在对数轴上取值的过程。

最后,另一个棘手的例子是给β\beta取值,用于计算指数的加权平均值,假设β\beta是从0.9到0.999之间的某个值。请记住这一点,当计算指数的加权平均值时,取0.9就像在10个值中计算平均值,有点类似于计算10天的温度平均值,而取0.999就是在1000个值中取平均。如果想在0.9到0.999区间搜索,就不能用线性轴取值,所以考虑这个问题最好的方法就是探究1β1-\beta,此值在0.1到0.001区间内,所以我们会给1β1-\beta取值,采用对数轴,0.1的对数取值为-1,0.001的对数取值为-1。这里设定了1β=10r1-\beta=10^r,所以β=110r\beta=1-10^r,然后这就变成了超参数随机取值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章