从激活函数到超参搜索:一份“能落地”的深度学习手册

从激活函数到超参搜索:一份"能落地"的深度学习手册


1. 激活函数:先选对,再调参

函数 零中心 梯度消失 计算速度 稀疏性 典型坑 适用场景
Sigmoid × 严重 慢(exp) × 输出≠0 均值 二分类输出层
Tanh 较重 慢(exp) × 两端饱和 浅层网络
ReLU × 缓解 极快 Dead ReLU 99% 隐藏层首选
Leaky ReLU × 缓解 斜率手工 实验性替代
ELU 缓解 慢(exp) 计算贵 小数据集精调
Swish × 缓解 参数增加 深层网络 SOTA


一句话总结

隐藏层默认 ReLU;如果训练很深且显存充足,换成 Swish 往往有 0.5%~1% 的额外收益;输出层二分类用 Sigmoid,多分类用 Softmax 。


2. 梯度消失 & 爆炸:诊断 + 处方

现象 快速判断 根因 实战组合拳
梯度消失 层越靠前,‖∂Loss/∂W‖趋 0 链式<1 连乘 1) ReLU 家族激活 2) BN + 残差 3) Xavier/He 初始化
梯度爆炸 Loss → NaN,‖∂Loss/∂W‖>100 链式>1 连乘 1) Gradient Clip by norm=5 2) 降低 lr 1 个量级 3) L2 weight decay 1e-4

BN 能把激活值拉回 N(0,1),相当于给梯度做了"保险丝":既防消失也防爆炸 。

3. 正则化全家桶:何时用、怎么用

技术 作用面 训练/测试差异 调参经验
Dropout 神经元 训练 p=0.5,测试关闭 小网络 0.3,大网络 0.5;与 BN 共存时降至 0.1
L2 权重 无差异 系数 1e-4 起步,观察验证集再 ×10 或 ÷10
Early Stop 迭代次数 无差异 验证 loss 连续 5 epoch 不降即停
Data Aug 样本 无差异 分类任务先水平翻转+随机裁剪,再考虑颜色扰动

注意

BN 本身自带噪声,ResNet 后几层可完全去掉 Dropout,不降精度反而省显存 。


4. 参数初始化:别让网络"死"在起跑线

激活函数 推荐初始化 原理 代码一行
ReLU He 方差=2/fan_in torch.nn.init.kaiming_normal_
Tanh/Sigmoid Xavier 方差=2/(fan_in+fan_out) torch.nn.init.xavier_normal_
全零初始化 × 对称破坏,梯度相同 永远别用

5. 优化器选择:Adam 快,SGD 准

阶段 数据量 推荐组合 学习率起点
快速实验 任意 Adam 1e-3
中期精调 >10k AdamW + CosineLR 3e-4
收官冲刺 任意 SGD+Momentum 1e-2(再 ×0.1 两次)


经验

先用 Adam 把验证 AUC 拉到 0.9x,再换 SGD 往往能再提 0.5~1 个点,代价是 3× 训练时间 。


6. 学习率:一步到位最省钱

  • 搜索套路

    1. 从 {3,1,0.3,0.1,0.03,0.01} 跑 3 epoch,找最快降 loss 的那个;
    2. 用 Cosine/One-Cycle 在剩余 epoch 里平滑下降;
    3. 最后 10% epoch 做 Warm-Restarts 微调。
  • 自动化

    把上述过程写成回调函数,配合早停,一次训练就能拿到"手工调 3 天"的效果。


7. Batch Size & Epoch:不是越大越好

显卡 显存 最大 bs 平衡策略
1080Ti 11 G 64~128 梯度累加 4 步 = 有效 256
V100 32 G 256~512 直接上,配合 LARS 可上千

规律

线性缩放 lr 只适用于 ≤512;再大时用 LARS 层自适应学习率,否则 val acc 会掉 。

8. 超参搜索:从网格到贝叶斯

方法 搜索空间 适合维度 预算 备注
网格搜索 离散 ≤3 指数爆炸 教学演示用
随机搜索 连续/离散 5~10 线性 baseline 首选
贝叶斯优化 连续 ≥10 10× 随机 利用历史评估,3~5 轮就能逼近最优

贝叶斯四件套

  1. 目标函数:验证集 1-AUC
  2. 搜索空间:lr∈[1e-4,1e-1] 对数、dropout∈[0,0.5] 均匀
  3. 采集函数:EI (Expected Improvement)
  4. 历史结果:上一轮 (lr, dropout, 1-AUC) 三元组

9. 微调预训练模型:冻结多少层?

数据规模 与源域相似度 推荐方案
<1 k 只改分类层,lr=1e-3
1 k~10 k 解冻 top-1 block,lr=1e-4
>10 k 解冻全部,lr=3e-5 + 早停

先冻结底层训练 5 epoch,再解冻一半层继续 10 epoch,可减小 30% 过拟合风险 。


10. 一份"能跑"的调参 Checklist

  1. 数据:可视化 100 张,确认标签干净;
  2. 预处理:零均值 + 方差归一化,分类做 One-Hot;
  3. 模型:隐藏层默认 ReLU,输出层匹配任务;
  4. 初始化:He/Xavier + bias=0;
  5. 正则:BN 必备,小网络加 Dropout(0.3);
  6. 优化器:Adam 1e-3 先跑 10 epoch;
  7. 学习率:Cosine 下降,Warm-Restarts 最后 10%;
  8. 早停:val loss 不降 5 epoch 停,回滚最优 ckpt;
  9. 复现:固定 numpy/torch 随机种子;
  10. 记录:用 TensorBoard 把 loss、lr、grad norm 全写进日志,方便复盘。

彩蛋:一张"炼丹"壁纸

"如果 loss 不下降,先把 lr 除以 10,再把 batch size 乘 2,最后检查数据标签。"

------ 深度学习第一定律


参考文献

:
程序员学长《终于把神经网络中的激活函数搞懂了!!》
:
CSDN《神经网络激活函数优缺点和比较》

相关推荐
机器学习社区2 小时前
《大模型面试宝典》(2026版) 正式发布!
人工智能·语言模型·自然语言处理·面试·职场和发展·面试题
体育分享_大眼2 小时前
足球API接口与篮球API接口核心数据体系及标准化接入全指南
大数据·人工智能
拆房老料2 小时前
实战复盘:自研 Office / PDF 文档处理平台的高坑预警与 AI Agent 时代架构思考
人工智能·架构·pdf·编辑器·开源软件
田井中律.2 小时前
模型微调(Fine-Tuning)
人工智能
2501_941507942 小时前
使用_ssd300_训练蘑菇分类数据集经验总结_毒菇与食用菇自动识别研究
人工智能·分类·数据挖掘
Aliex_git2 小时前
大模型相关概念 - LLM对话
人工智能·笔记·prompt·ai编程
Zilliz Planet2 小时前
熠智AI+Milvus:从Embedding 到数据处理、问题重写,电商AI客服架构怎么搭?
人工智能·架构·embedding·milvus
lynnlovemin2 小时前
SpringBoot+SSE构建AI实时流式对话系统:原理剖析与代码实战
人工智能·spring boot·后端·ai·sse