深度学习 课程笔记

本文最后更新于 2025年5月3日 晚上

优化器|Optimizer

SGD

概念:SGD(Stochastic Gradient Descent),每次更新权重只用小批次(mini batch)的样本梯度,而不是整个数据集的梯度。

公式: \[ \theta=\theta-\alpha\cdot\nabla J \]

优点:

  • 计算量小
  • 可以频繁更新,加快训练速度

缺点:

  • 更新不稳定,可能导致震荡,不容易收敛
  • 需要调整学习率

SGD With Momentum

概念:受物理世界启发,在更新参数时,加入动量,i.e. 积累历史梯度。

公式: \[ v_t=\beta\,v_{t-1}+(1-\beta)\nabla J\\ \theta=\theta-\alpha v_t \] 其中:\(\beta\) 是动量衰减因子,通常取0.9

优点:

  • 下降更快
  • 容易跳出局部极小值
  • 减小震荡次数
  • 提高收敛速度

缺点:

  • 需要调节衰减因子和学习率

Adagrad

概念:Adagrad(Adaptive Gradient Algorithm),是一种自适应优化算法,会根据每个参数的历史梯度调整学习率。

公式: \[ \theta=\theta-\frac{\alpha}{\sqrt{G_t+\epsilon}}\cdot \nabla J \]

优点:

缺点:

RMSprop

概念:

Adam

概念:Adam(Adaptive Momentum Estimation),是 Momentum 与 RMSprop 的结合

Nadam

激活函数|Activation Function

正则化|Regularization

(1)神经网络训练方式

  • 批量训练:一次性求出最小值并不好求,利用计算机用迭代计算
  • mini batch
  • 随机梯度下降:每个 epoch 随机选一个样本,在样本向前传播完之后,马上调整权重和偏置

(2)常用激活函数|Activation Function

  • Sigmoid Function
  • tanh Function
  • ReLu Function
  • Leaky ReLu

(3)激活函数性质

  • 非线性
  • 可微性
  • 单调性
  • \(f(x)\approx x\)
  • 计算简单
  • 归一化
  • 输出值范围

(4)损失代价函数|Loss or Cost Function

一般按照最小均方误差 MSE 原则 \[ J(w)=\sum_{\text{sample}}\sum_{i=1}^n (\hat{y}_i-y_i)^2 \] (5)常见的损失代价函数

  • Sigmoid
  • Moon Loss
  • Triplet Loss
  • Contrastive Loss
  • Cross-Entropy Loss

(6)防止过拟合|Overfitting

  • 参数范数惩罚:正则化:L1正则化,L2正则化
  • 数据增强
  • Early Stopping(提前终止)
  • Bagging 集成
  • Dropout(漏失)
  • 批正则化

(7)防止过拟合——惩罚性成本函数

在 Cost Function 中加上惩罚项,下面的例子是加上网络权重的平方和

该方法类似于岭回归

这种方法也叫 \(L_2\) 正则化 \[ J(w)=\frac{1}{2n}\sum_{i=1}^n(\hat{y}_i-y_i)^2+\lambda\sum_{j=1}^mW_j^2 \] (8)防止过拟合——漏失|Dropout

在训练的每一个迭代(批次),依概率漏掉一些神经元子集。

(9)提前停止|Early Stopping

比如:

对训练样本进行10个 epoch 之后,对测试样本观察损失函数

  1. 损失下降,继续训练
  2. 损失上升,停止训练

(10)动量|Momentum

概念:每次仅略微改变方向

保持步进方向的连续平均数,消除个别点的变化。 \[ v_t\coloneqq\eta \cdot v_{t-1}-\alpha\cdot\nabla J\\ W\coloneqq W-v_t \] \(\eta\) 表示动量(decay rate),通常小于1


深度学习 课程笔记
http://blog.kdata.top/2025/03/01/深度学习/深度学习_人工神经网络/
作者
Louis Liang
发布于
2025年3月1日
许可协议