作者:骏天天在线 | 来源:互联网 | 2023-08-18 10:08
上一节已经看到,在超参数范围内,随机取值可以提升搜索效率,但随机取值并不是在有效范围内的随机均匀取值,而是选择合适的标尺用于探究超参数。
假设要选取隐藏单元的数量n[l]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α=10r。所以总结一下,在对数坐标上取值,取最小值的对数得到a值,取最大值的对数得到b值,所以现在在对数轴上的10a10^a10a到10b10^b10b区间取值,在a和b之间随机均匀的选取r值,将超参数设置为10r10^r10r,这就是在对数轴上取值的过程。
最后,另一个棘手的例子是给β\betaβ取值,用于计算指数的加权平均值,假设β\betaβ是从0.9到0.999之间的某个值。请记住这一点,当计算指数的加权平均值时,取0.9就像在10个值中计算平均值,有点类似于计算10天的温度平均值,而取0.999就是在1000个值中取平均。如果想在0.9到0.999区间搜索,就不能用线性轴取值,所以考虑这个问题最好的方法就是探究1−β1-\beta1−β,此值在0.1到0.001区间内,所以我们会给1−β1-\beta1−β取值,采用对数轴,0.1的对数取值为-1,0.001的对数取值为-1。这里设定了1−β=10r1-\beta=10^r1−β=10r,所以β=1−10r\beta=1-10^rβ=1−10r,然后这就变成了超参数随机取值。