调参技巧
网络设计
-
下采样在网络的前几层密度大一些
- 尽可能用微弱的精度损失来换取速度提升
-
使用小卷积核
- 有利于网络走向更深 并且有更好的识别鲁棒性
-
能用可分离卷积替代的一定要替代
- 可分离卷积的参数和计算量都是线性增长的
拟合
欠拟合 训练集,测试集准确率都很低
- 增加层数
- 减小dropout
- 减小L2正则值
- 增加节点数
模型超参数
一般在小数据集上合适的参数,在大数据集上效果也不会太差。因此可以尝试对数据进行精简,以提高速度
- 学习率
学习率一般就比正则值,dropout值重要,最先确定,在对数尺度上进行超参数搜索 从1-0.001 - dropout
一般设置成0.5 - BatchSize
优化器
SGD
Momentum
- 一个已经完成的梯度+步长的组合不会立刻消失,只是会以一定的形式衰减
- 改进自SGD算法,让每一次的参数更新方向不仅仅取决于当前位置的梯度,还受到上一次参数更新方向的影响
- 多更新一部分上一次迭代的更新量,来平滑这一次迭代的梯度[为了抑制SGD的震荡]
- 物理的角度上解释,就像是一个小球滚落的时候会受到自身历史动量的影响,所以才叫动量(Momentum)算法
NAG
- 通俗解释
动量走了一步,那个时候的下降方向(能够让算法提前看到前方的地形梯度,如果前面的梯度比当前位置的梯度大,那我就可以把步子迈得比原来大一些,如果前面的梯度比现在的梯度小,那我就可以把步子迈得小一些) 然后用下一个点的梯度方向,与历史累积动量相结合 - 本质
是多考虑了目标函数的二阶导信息,怪不得可以加速收敛了
Adam
自学习,速度快
来源:CSDN
作者:ferryliu
链接:https://blog.csdn.net/lxy_erp/article/details/103765279