详细介绍:【深度学习日记】调参侠指南

基础:超参数与模型结构

1. 模型结构相关参数

  • 网络深度/宽度
    • 层数越深、通道越宽 → 模型表达能力越强,但训练难度增加。
  • 激活函数
    • 默认使用 ReLU
    • 若出现“神经元死亡”问题,可尝试LeakyReLU, GELU
  • 卷积核大小与步长
    • 小卷积核 (3×3) 一般优于大卷积核 (5×5 以上)
    • 步长一般设置为 1,便于保持特征。
  • 归一化方式
    • 常见:BatchNorm, LayerNorm, GroupNorm
    • 训练时推荐 BatchNorm

2. 优化相关超参数

  • 学习率 (lr)
    • 最关键的超参数之一,控制参数更新的速度。
  • 学习率策略
    • StepLR, CosineAnnealingLR, Warmup 等。
  • 批大小 (batch size)
    • 太小 → 波动大
    • 太大 → 可能降低泛化能力
    • 常用:32、64、128。
  • 优化器
    • 常用:SGD (带 momentum), Adam, AdamW
  • 权重衰减 (weight decay)
    • 起正则化作用,防止过拟合
    • 常设:1e-4、5e-4。
  • Dropout 比例
    • 防止过拟合
    • 建议范围:0.2 ~ 0.5。

实用技巧

1. 学习率寻找 (Learning Rate Finder)

方法:先从一个较小的学习率开始训练若干 batch,并不断线性或指数级增加学习率。

  • 观察 loss 的变化趋势。
  • 选择 loss 快速下降前的那个学习率

2. 冷启动 vs 热启动 (迁移学习)

  • 冷启动
    • 从头训练。
    • 适合自定义结构/小素材集。
  • 热启动
    • 使用预训练模型。
    • 适合下游任务(如迁移学习、微调)。

3. 模型调参顺序建议

  1. 验证数据和网络结构是否正常(先跑通)。
  2. 调整学习率和 batch_size。
  3. 更换优化器和学习率策略。
  4. 增加正则化(weight decay, dropout)、资料增强(增加模型鲁棒性)
  5. 微调网络结构(增加或删除层)

4. 数据增强 (Data Augmentation)

  • 图像增强
    • 翻转、裁剪、旋转、加噪、亮度调整等。
  • 文本增强
    • 同义词替换、句子重组。
  • 时序数据增强
    • 时间抖动、平移、噪声、剪裁。

5. 模型验证与诊断

  • 训练损失不下降

    → 检查学习率、梯度爆炸、数据格式。

  • 验证集精度低

    → 可能过拟合,需要增加正则化或数据增强。

  • Overfitting(过拟合)

    • Dropout
    • Early Stopping
    • 权重衰减
  • Underfitting(欠拟合)

    • 增大模型容量(更复杂)
    • 减少正则化

进阶训练策略

一、学习率调度策略

策略名称特点推荐场景
StepLR每 n 个 epoch 乘以一个固定系数简单有效,适用于大多数任务
CosineAnnealingLR按余弦函数衰减,帮助 warmup图像任务,效果稳定

二、混合精度训练(FP16)

  • 使用 torch.cuda.amp 模块实现
  • 可显著降低显存使用,加快训练速度
  • 特别适用于大模型训练或显存有限的场景

三、多卡并行策略

  1. DistributedDataParallel(DDP):推荐运用,支持多机多卡训练
  2. 模型并行:将大模型拆分到不同 GPU 上执行,适用于超大模型

四、早停策略(Early Stopping)

  • 当验证集损失连续多轮不再下降时,提前终止训练
  • 避免过拟合和计算资源浪费

深度学习超参数调优速查表

超参数推荐范围/值常见问题应对策略
学习率1e-3 ~ 1e-4loss震荡,不收敛尝试Warmup或减小学习率
batch size32 ~ 128精度下降调整归一化层或增加迭代次数
Dropout0.3 ~ 0.5过拟合增加Dropout或应用CutMix
权重衰减1e-4模型震荡使用AdamW或SGD+decay
优化器Adam / SGD收敛慢尝试带momentum的SGD

自动化调参器具推荐

工具名称特点适用场景
Optuna轻量级贝叶斯优化应用承受PyTorch和lightning框架
Ray Tune高性能分布式超参数搜索框架大规模超参数优化
Weights & Biases可视化超参数效果和实验管理实验记录与结果对比

实用训练经验分享

  1. 从小模型、小数据开始
    • 先用小网络、小数据验证流程可行性,再迁移到大模型、大材料
  2. 优先调整学习率
    • 大多数训练难题都是由学习率设置不当引起
  3. 记录实验日志
    • 养成记录每次超参数和实验结果的习惯
  4. 合理使用可视化工具
    • 使用TensorBoard等工具监控loss、精度曲线变化
  5. 保持耐心与坚持
    • 深度学习需要大量试错,经验积累越多效果越好
posted on 2026-01-28 14:44  ljbguanli  阅读(3)  评论(0)    收藏  举报