随机梯度下降

  • 优化目标函数:\(L(\theta) = \mathbb{E}_{(x,y) \sim p_{data}} L(f(x, \theta), y)\)
  • 找到平均损失最小的模型参数,也就是求解优化问题:\(\theta^{*} = \mathop{\arg \min} L(\theta)\)

经典梯度下降

  • 采用所有训练数据的平均损失来近似目标函数,即\(L(\theta) = \frac{1}{M}\sum \limits_{i=1}^{M}L(f(x_i, \theta), y_i)​\)
  • \(\nabla L(\theta) = \frac{1}{M}\sum \limits_{i=1}^{M}\nabla L(f(x_i, \theta), y_i)\)
  • 需要遍历所有训练数据,计算开销太大,但效果其实最好

随机梯度下降

  • 用单个训练样本的损失来近似平均损失,即

    \[\begin{aligned} L(\theta; x_i, y_i) & = L(f(x_i, \theta), y_i) \\ \nabla L(\theta; x_i, y_i) & = \nabla L(f(x_i, \theta), y_i) \end{aligned}​\]

  • 加快收敛速度,也适合在线更新

  • 小批量梯度下降法

    • 降低随机梯度的方差,使迭代更稳定

    • 充分利用高度优化的矩阵运算

    • 同时处理m个训练数据\(\{ (x_1, x_2), \cdots, (x_m, y_m) \}\),目标函数及其梯度为

      \[\begin{aligned} L(\theta) & = \frac{1}{m} \sum \limits_{i=1}^{m}L(f(x_i, \theta), y_i) \\ \nabla L(\theta) & = \frac{1}{m} \sum \limits_{i = 1}^{m} \nabla L(f(x_i, \theta), y_i) \end{aligned}\]

    • 注意:

      • m的选取:一般选2的幂次,充分利用矩阵运算
      • 挑选m条数据:shuffle
      • 学习率:动态可调的

猜你喜欢

转载自www.cnblogs.com/weilonghu/p/11922496.html