0
点赞
收藏
分享

微信扫一扫

Tuning process

飞空之羽 2022-03-18 阅读 61
深度学习

优先级

第一级:learning rate
第二级:β in momentum,mini-batch size,hidden units
第三级:layers,learning rate decay

这是吴恩达的优先级,其他人可能不认同


如何选取超参数

不要全部遍历参数选最好的,原因如下
  1. 调整哪些参数对效果影响大,哪些影响小是未知的,可能很多参数取所有值效果都差不多,遍历浪费了算力
  2. 参数可能非常多,无法穷举全部组合
随机挑选,试验效果如何再相应调整

可以采用coarse to fine sampling scheme:

  1. 在搜索空间中随机挑一些参数组合试验效果如何,初始时搜索空间就是全部的参数组合
  2. 挑选效果好的聚集的参数组合
  3. 将与2中的参数组合接近的参数组合作为下一步的搜索空间
  4. 重复1-3,逐渐缩小搜索空间

Appropriate scales to pick hyperparameters

均匀取值

有些超参数可以随机取值或者遍历,例如网络层数(2、3、4)、hidden units(50-100)

按指数尺度取值
  1. 为什么
    以learning rate α α α举例, α α α的使用场景是: w = w − α × d w w=w-α \times dw w=wα×dw
    假设learning rate的取值范围为0.0001到1,当 α = 0.1 α=0.1 α=0.1 α = 0.01 α=0.01 α=0.01时(差一个小数点), w w w更新的幅度差距是10倍;当 α = 0.5 α=0.5 α=0.5 α = 0.6 α=0.6 α=0.6时, w w w更新的幅度差距1倍都不到
    如果取值范围内均匀取值,0.1到1之间的取值差距都不到1倍,但是会占据取值范围的90%,显然不合理,应该扩大一个小数点和另一个小数点之间的尺度
    因为一个小数点代表了10倍差距,所以 α α α适合使用10的指数来取值

  2. 怎么实现
    假设超参数的取值范围为 1 0 a 10^{a} 10a 1 0 b 10^{b} 10b,a到b均匀取值即可
    例如 α α α的取值范围为 1 0 − 4 10^{-4} 104 1 0 0 10^{0} 100,对-4到0均匀取值即可
    例如 momentum里的 β β β,假设取值范围为0.9到0.999,可以将其转化为 1 − β 1-β 1β,则取值范围变为0.001到0.1,也就是 1 0 − 3 10^{-3} 103 1 0 − 1 10^{-1} 101,对-3到-1均匀取值即可


how to organize hyperparameter search process

  1. 数据很多,计算资源不够时,经常查看训练效果,根据情况调整参数
  2. 计算资源很多,同时训练不同超参数模型,选最好的
举报

相关推荐

0 条评论