超参数调试、正则化以及优化

吴恩达:超参数调试、正则化以及优化

基本原则

超参数搜索讲究两个基本原则,即随机取值和精细搜索

  1. 随机取值
    在传统机器学习方法中,当遇到两个超参数需要调节的情况下,会采用网格取值法,比如说两个超参数各取5个点,这样组成25个点进行测试。这种传统方法是有缺陷的,因为很多超参数实际上不重要,如果两个超参数一个重要而一个不重要,上述网格法在进行25次运算后获得的结果实际上只能归于5大类(5类对于重要超参数的调节),大部分获得了类似的结果。
    所以对于超参数的随机取值变得重要,两类超参数均在限定范围内取25个点,这样可以让筛选过程更有效。就算有一个超参数无关紧要,也没有浪费25次的计算过程,因为得到了重要超参数25次不同的结果。

  2. 精细搜索
    在随机取值后,将获得优秀结果的少数超参数组合的区域适当扩大并在这个小区域内(对比于原本区域变小)再次采样,则节省算力并且获得更优结果。

进阶:为超参数选择合适的标尺

在某些情况下,选择均匀分布采样也许是合适的,比如说神经网络层数或者隐藏层纬度。而学习率则不适合采用均匀标尺,假设学习率搜索范围是0.00011,采用均匀搜索将会吧算力90%浪费在0.1-1,而实际上很少用这么大的学习率。
所以可以采用指数分布,具体做法如下
r = -4 * np.random.rand()
\alpha = 10^r
这样0.00010.001的取值便占据了\frac14,合理了许多。

显然,在遇到10^{-4}10^0的参数空间情况,在[0,4]均匀取值作为幂就可以。那么对于\beta取值为[0.9,0.999],则可以将其变为考虑1-\beta,区间变为[10^{-3},10^{-1}],然后进行类似于上面的均匀采样就行。

注意:

  1. 这里取指数平均的具体原因是这些参数接近1的时候,会变得敏感,如Bias Correction时\frac{1}{1-\beta}会在\beta接近1时变得特别陡峭。如果\beta取值在[0.9,0.9005]可以直接采用平均分布采样。而\beta取值在[0.999,0.9995]时,则需要指数平均以增大\beta在接近1时取值的概率。
  2. 如果采样点足够多,直接均匀分布采样也是可以的,何况精细搜索最终还是会让你聚焦于有效区域。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。