从SGD到AutoML:深度学习训练全链路优化指南


📑前言

在深度学习中,构建一个神经网络只是第一步。真正决定模型性能的,往往是如何训练它——即使用什么样的优化算法、如何防止过拟合、以及如何高效地调参

一、模型优化算法:让梯度下降更聪明

神经网络的训练本质是通过反向传播计算梯度,并利用优化算法更新参数以最小化损失函数。不同的优化器在收敛速度、稳定性、泛化能力上表现各异。

1.1 SGD(随机梯度下降)——最基础但最经典

全称:Stochastic Gradient Descent
公式

θ t + 1 = θ t − η ⋅ ∇ θ J ( θ ; x i , y i ) \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta J(\theta; x_i, y_i) θt+1=θtηθJ(θ;xi,yi)

其中:

  • θ \theta θ:模型参数
  • η \eta η:学习率
  • ∇ θ J \nabla_\theta J θJ:单个样本或小批量的损失梯度

优点

  • 简单直观,易于实现
  • 在凸问题中收敛性好

缺点

  • 收敛慢,容易震荡
  • 对学习率敏感
  • 难以处理稀疏梯度或复杂地形(如鞍点)

改进版:SGD + Momentum(动量)

引入“惯性”概念,加速收敛并减少震荡:

v t = γ v t − 1 + η ∇ θ J ( θ ) v_t = \gamma v_{t-1} + \eta \nabla_\theta J(\theta) vt=γvt1+ηθJ(θ)

θ t + 1 = θ t − v t \theta_{t+1} = \theta_t - v_t θt+1=θtvt

1.2 RMSprop —— 自适应学习率的先驱

提出者:Geoffrey Hinton(2012)
核心思想:对每个参数使用不同的学习率,根据历史梯度平方的移动平均来调整。

公式

E [ g 2 ] t = β E [ g 2 ] t − 1 + ( 1 − β ) g t 2 E[g^2]_t = \beta E[g^2]_{t-1} + (1 - \beta) g_t^2 E[g2]t=βE[g2]t1+(1β)gt2

θ t + 1 = θ t − η E [ g 2 ] t + ϵ g t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} g_t θt+1=θtE[g2]t+ϵ ηgt

优点

  • 解决了 AdaGrad 学习率过早衰减的问题
  • 对非平稳目标函数更鲁棒
  • 特别适合 RNN 等序列模型

缺点

  • 缺少动量机制,收敛可能不够平稳

1.3 Adam(Adaptive Moment Estimation)——当前最主流的选择

提出时间:2014 年
结合了:Momentum + RMSprop 的优点

核心思想

  • 计算梯度的一阶矩(均值)和二阶矩(未中心化的方差)
  • 对两个矩进行偏差校正

公式简述

m t = β 1 m t − 1 + ( 1 − β 1 ) g t (一阶动量) m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t \quad \text{(一阶动量)} mt=β1mt1+(1β1)gt(一阶动量)

v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 (二阶动量) v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 \quad \text{(二阶动量)} vt=β2vt1+(1β2)gt2(二阶动量)

m ^ t = m t 1 − β 1 t , v ^ t = v t 1 − β 2 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t} m^t=1β1tmt,v^t=1β2tvt

θ t + 1 = θ t − η v ^ t + ϵ m ^ t \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t θt+1=θtv^t +ϵηm^t

优点

  • 收敛快,适合大多数任务
  • 对超参数不敏感(默认值通常表现良好)
  • 广泛用于 NLP、CV、推荐系统等

缺点

  • 有时泛化性能不如 SGD + Momentum(尤其在图像分类任务中)
  • 可能陷入“锐极小”(sharp minima),影响泛化

替代方案:AMSGrad、AdamW(修正权重衰减)、NAdam(Nesterov + Adam)

二、正则化技术:防止过拟合,提升泛化能力

即使模型训练误差很低,也可能在测试集上表现糟糕——这就是过拟合。正则化技术通过限制模型复杂度来提升泛化能力。

2.1 L1 正则化(Lasso)

原理:在损失函数中加入参数绝对值之和:

J reg ( θ ) = J ( θ ) + λ ∑ i ∣ θ i ∣ J_{\text{reg}}(\theta) = J(\theta) + \lambda \sum_i |\theta_i| Jreg(θ)=J(θ)+λiθi

特点

  • 倾向于产生稀疏解(部分权重变为 0)
  • 可用于特征选择
  • 适合高维稀疏数据

缺点

  • 不可导(在 0 处),需次梯度方法
  • 可能不稳定

2.2 L2 正则化(Ridge / 权重衰减)

公式

J reg ( θ ) = J ( θ ) + λ 2 ∑ i θ i 2 J_{\text{reg}}(\theta) = J(\theta) + \frac{\lambda}{2} \sum_i \theta_i^2 Jreg(θ)=J(θ)+2λiθi2

特点

  • 使权重趋向于小值但不为零
  • 提高数值稳定性
  • 在深度学习中常称为“权重衰减(Weight Decay)
  • AdamW 中明确区分了权重衰减与梯度更新

缺点

  • 不产生稀疏性

注意:L2 正则化等价于在参数上施加高斯先验(贝叶斯视角)

2.3 Dropout —— 训练时的“神经元随机失活”

提出者:Hinton 等(2014)
思想:在训练过程中,以概率 p p p 随机“关闭”一部分神经元

实现方式

  • 每层输出乘以一个伯努利掩码(mask)
  • 测试时所有神经元都启用,但输出乘以保留概率 ( 1 − p ) (1-p) (1p)

优点

  • 有效防止神经元共适应
  • 相当于集成多个子网络的平均效果
  • 实现简单,广泛用于全连接层

缺点

  • 增加训练时间(每次随机)
  • 卷积层中效果有限(通常用 BatchNorm 替代)

变体

  • DropConnect:随机断开连接而非神经元
  • Spatial Dropout:用于 CNN,整通道丢弃
  • Alpha Dropout:配合 SELU 激活函数使用

三、超参数调优与自动化机器学习(AutoML)

深度学习模型的成功高度依赖于超参数设置,如学习率、批次大小、层数、正则化系数等。手动调参耗时且依赖经验,因此 AutoML 应运而生。

3.1 常见超参数类型

类型示例
优化相关学习率、动量、优化器类型
网络结构层数、每层神经元数、激活函数
正则化Dropout 概率、L2 系数
数据相关批次大小、数据增强方式

3.2 超参数搜索方法

(1)网格搜索(Grid Search)

  • 遍历所有参数组合
  • 优点:全面
  • 缺点:计算成本高,维度灾难

(2)随机搜索(Random Search)

  • 随机采样参数组合
  • 优点:比网格搜索更高效(Bengio 发现某些参数不敏感)
  • 缺点:仍可能浪费资源

(3)贝叶斯优化(Bayesian Optimization)

  • 使用高斯过程建模目标函数
  • 通过“采集函数”(如 EI)选择下一个采样点
  • 优点:高效,适合昂贵的黑箱函数
  • 工具HyperoptOptunascikit-optimize

(4)进化算法 / 粒子群优化

  • 模拟自然选择或群体行为
  • 适合离散或混合参数空间

3.3 自动化机器学习(AutoML)

AutoML 的目标是自动化整个机器学习流程,包括:

  • 模型选择
  • 超参数优化
  • 特征工程(部分)
  • 架构搜索(NAS)

主流 AutoML 框架

工具特点
Optuna轻量级,支持贝叶斯优化、可视化
Hyperopt支持 Tree-structured Parzen Estimator (TPE)
Keras Tuner专为 Keras/TensorFlow 设计
AutoKeras基于 Keras 的 NAS 工具,一键训练
Google Cloud AutoML商业化平台,支持图像、文本、表格
H2O.ai AutoML开源,支持表格数据自动建模

3.4 神经架构搜索(NAS)

目标:自动设计神经网络结构(如 ResNet、EfficientNet 的自动发现)

典型方法

  • 强化学习:用 RNN 生成网络结构,用 RL 评估性能
  • 可微分架构搜索(DARTS):将搜索空间连续化,用梯度优化
  • 进化算法:通过“变异+选择”生成更优结构
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屿小夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值