• 图像分类模型训练总结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:稳定特征数据分布,降低训练难度
  • 相关阅读:
    编程中什么情况下需要加 volatile?
    matplotlib中图表常用设置(五)
    研究了34个跨境独立站 总结出了20条成功经验
    java测试private
    数据安全治理:构建与实施的关键要素及总体架构
    中国冰淇淋市场深度评估及发展趋势预测报告(2022版)
    HPUX系统Oracle RAC如何添加ASM磁盘
    Win10系统使用pip安装juypter notebook过程记录(安装在系统盘以外的盘)
    总结:Prometheus之PromQL操作符
    SpringMVC+jsp中文乱码问题解决
  • 原文地址:https://blog.csdn.net/wuli_xin/article/details/126954082