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

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


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《神经网络激活函数优缺点和比较》

相关推荐
twc82930 分钟前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
宇擎智脑科技32 分钟前
A2A Python SDK 源码架构解读:一个请求是如何被处理的
人工智能·python·架构·a2a
IT_陈寒33 分钟前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
电商API&Tina1 小时前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json
湘美书院--湘美谈教育1 小时前
湘美谈教育湘美书院网文研究:人工智能与微型小说选集
人工智能·深度学习·神经网络·机器学习·ai写作
uzong1 小时前
Harness Engineering 是什么?一场新的 AI 范式已经开始
人工智能·后端·架构
墨有6661 小时前
FieldFormer:基于物理场论的极简AI大模型底层架构,附带源码
人工智能·架构·电磁场算法映射
Mountain and sea1 小时前
从零搭建工业机器人激光切割+焊接产线:KUKA七轴协同+节卡AGV+视觉检测实战复盘
人工智能·机器人·视觉检测
K姐研究社2 小时前
阿里JVS Claw实测 – 手机一键部署 OpenClaw,开箱即用
人工智能·智能手机·aigc·飞书
卷积殉铁子2 小时前
从“手动挡”到“自动驾驶”:OpenClaw如何让AI开发变成“说话就行”
人工智能