🧠 1. 什么是模型参数与超参数?

类型 定义 例子
模型参数 模型训练过程中自动学习的值 神经网络中的权重、偏置
超参数 训练前由我们人为设定、控制训练过程的参数 学习率、批量大小、网络层数等

⚙️ 2. 常见超参数及其作用

🔹 2.1 学习率(Learning Rate)

  • 作用:控制参数更新的步长
  • 常用范围:0.1 ~ 1e-5
  • 论文中常见:0.1, 0.01, 0.001(Adam默认:0.001)
  • 建议
    • 从较大值开始尝试,逐步减小
    • 配合学习率衰减策略使用

🔹 2.2 批量大小(Batch Size)

  • 作用:每次训练更新中使用的样本数量
  • 常用值:32, 64, 128, 256
  • 论文示例
    • ResNet:256
    • Transformer:2048 tokens
  • 建议
    • 小批量(32-256)一般泛化更好
    • 大批量可提升训练速度但风险过拟合

🔹 2.3 训练轮数(Epochs)

  • 作用:完整遍历训练集的次数
  • 设置范围
    • 小型数据集:50~200
    • 大型数据集:10~50
  • 技巧
    • 搭配 Early Stopping 使用
    • 实时监控验证损失

🔹 2.4 优化器(Optimizer)

  • 常见选择
    • SGD、SGD + Momentum(动量0.9)
    • Adam(默认 β1=0.9, β2=0.999)
    • AdamW(改进版,更适用于Transformer)
  • 趋势
    • 经典模型:SGD
    • 现代模型:Adam / AdamW

🔹 2.5 正则化参数(Regularization)

  • 权重衰减(Weight Decay)
    • 抑制过拟合,常设为 1e-4 或 0.01(AdamW)
  • Dropout
    • 防止神经元共适应,常设为 0.1~0.5
    • 输入层 0.1~0.2,隐藏层 0.5

🏗️ 3. 网络结构相关参数

🔸 3.1 层数与神经元数量

  • CNN:从 LeNet(几层) 到 ResNet(上百层)
  • Transformer:6 ~ 24 层
  • 每层维度:32 ~ 4096 不等

🔸 3.2 激活函数

  • ReLU:最常见,简单有效
  • LeakyReLU:缓解“死亡ReLU”
  • GELU:Transformer 默认激活
  • Sigmoid / Tanh:历史悠久,但易梯度消失

🔍 4. 参数调优策略

4.1 超参数搜索方法

  • 网格搜索(Grid Search):全排列遍历参数组合
  • 随机搜索(Random Search):效率更高,更推荐

4.2 动态调整策略

  • 学习率预热(Warmup)
  • 余弦退火(Cosine Annealing)
  • 周期性学习率(Cyclic LR)

📄 5. 论文参数设置参考

✅ ResNet (ImageNet)

参数 设置
学习率 0.1, 每30轮除以10
批量大小 256
动量 0.9
权重衰减 1e-4
Epochs 90

✅ Transformer (Vaswani et al.)

参数 设置
学习率 自定义计划(含warmup)
批量大小 2048 tokens
Adam参数 β1=0.9, β2=0.98, ε=1e-9
Dropout 0.1
训练步数 100K steps

🛠️ 6. 实用调参建议

  1. 从默认值开始:许多框架默认参数已很合理
  2. 逐个调整参数:便于观察每项超参数的影响
  3. 记录实验日志:方便回溯和对比实验结果
  4. 参考开源代码:复现论文实现的设置
  5. 使用调参工具:如 OptunaRay Tune

✨ 结语

深度学习的参数设置没有标准答案,它既是一门技术,也是一门艺术。多实验、多记录、多模仿是成长最快的路径。希望本篇指南能够帮助你建立起对超参数的理解,迈出调参的第一步!


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐