图像分类模型训练总结1

学习率

学习率退火

在训练初始阶段使用较大的学习率,,损失函数稳定后下降学习率:

  • 按步长下降
  • 按比例下降
  • 按倒数下降

学习率升温Warmup

在训练前几轮学习率逐渐上升,直到预设的学习率,以稳定训练的初始阶段

  • 线性上升: lr_config = dict(policy=‘step’, step=[30, 60, 90])

    达到指定学习率0.1,在30个epoch时学习率下降1/10为0.01,在60个epoch时学习率下降1/10为0.001,在90个epoch时学习率下降1/10为0.0001

自适应梯度算法

  • 不同梯度需要不同的学习率
  • 根据梯度的幅度自动调整学习率:如Adagrad, ADAM, RMSProp

权重初始化

针对卷积层和全连接层,初始化连接权重 w 和 b

随机初始化

  1. 朴素方法:依照均匀分布或高斯分布
  2. Xavier方法(2010):前传时维持激活值的方差,反传时维持梯度的方差
  3. Kaiming方法(2015):同上,但是针对ReLU激活函数

早停

将训练数据集划分为训练集和验证集,在训练集上训练,周期性在验证集上测试。、

当验证集的loss不降反升时,停止防止过拟合。

正则化与权重衰减weight decay

  • 在损失函数中引入正则化项,以鼓励训练出相对简单的模型
  • 结构风险的梯度
  • 梯度更新策略

图像增广Data Augmentation

  • 泛化性好的模型(大量多样化的数据)
  • 数据的采集标注是有成本的
  • 数据增广(几何变换、色彩变换、随机遮挡)
  • 利用简单的随机变换,从一张图片扩充出多张图片

批归一化 Batch Normalization(2015)

  • BN一般用于卷积层:将同一通道内、不同空间位置、来自不同样本的所有响应值归为一组进行归一化
  • 应用BN的卷积层一般不需bias

不同的归一化层(Batch Norm、Layer Norm、Instance Norm、Group Norm)

总结

  • 随机梯度下降为主,各种经验策略辅助
  • 损失函数高度不规则,非凸
    • 权重初始化:Kaiming init,预训练模型
    • 优化器改进:动量SGD、自适应梯度算法
    • 学习率策略:学习率退火、学习率升温
  • 防止过拟合
    • 数据增广、早停、Dropout
  • Batch Normalization:稳定特征数据分布,降低训练难度

猜你喜欢

转载自blog.csdn.net/wuli_xin/article/details/126954082