超参

超参 - 汇总

  • batch size,见..
  • 步长
  • 多机多卡 - 见deep-learning/优化 - 分布式集群

难点

• 超参数范围广泛:

随着模型复杂度的提升,模型中可供调节的超参数数量及数值范围也在增多。例如,在CIFAR-10数据集上训练的ResNet模型有16个可调的超参数[8],当多数超参数的取值为连续域的情况下,如此少量的超参数仍然可能造成组合爆炸。因此,最近也出现了以谷歌的Vizier为代表的系统,采用优化的搜索及学习算法为模型自动适配合适的超参数值的集合。

如何选择合适的超参

此外,由于超参较多,而每一个超参分布范围较广,使得超参调优的耗时较长,特别是针对ImageNet这种超大数据集的情况。前文提过,CIFAR-10数据集上训练的ResNet模型就有16个超参。

随着项目进展,团队还引入了很多新的关键技术,如后面将会提到的LARS算法、分层同步算法、梯度融合策略,Batch Norm替换等都会增加模型超参数量,如何在可接受的时间内寻找到较优解,是机智团队面临的第三个重大挑战。

参数步长由粗到细

调优参数值先以较大步长进行划分,可以减少参数组合数量,当确定大的最优范围之后再逐渐细化调整,例如在调整学习速率时,采取较大步长测试发现:学习率lr较大时,收敛速度前期快、后期平缓,lr较小时,前期平缓、后期较快,根据这个规律继续做细微调整,最终得到多个不同区间的最佳学习速率;

低精度调参

在低精度训练过程中,遇到的最大的一个问题就是精度丢失的问题,通过分析相关数据,放大低精度表示边缘数值,保证参数的有效性是回归高精度计算的重要方法;

初始化数据的调参

随着网络层数的增多,由于激活函数的非线性,初始化参数使得模型变得不容易收敛,可以像VGGNet那样通过首先训练一个浅层的网络,再通过浅层网络的参数递进初始化深层网络参数,也可以根据输入输出通道数的范围来初始化初始值,一般以输入通道数较为常见;对于全连接网络层则采用高斯分布即可;对于shortcut的batch norm,参数gamma初始化为零。