李宏毅深度学习笔记(二)随机梯度下降(Stochastic Gradient Descent)

已知损失函数为:

L=j=1n(y^j(b+i=1mwixij))2L=\sum_{j=1}^n(\hat y^j-(b+\sum_{i=1}^{m}w_ix_i^j))^2·············································(1)

nn代表样本的个数,mm代表特征的个数。

\bullet一般的梯度下降(Gradient Descent):

θi=θi1ηL(θi1)\theta^i=\theta^{i-1}-\eta\nabla L(\theta^{i-1})··································································(2)

\bullet随机梯度下降(Stochastic Gradient Descent):

只取其中一个样本

Lj=(y^j(b+i=1mwixij))2L^j=(\hat y^j-(b+\sum_{i=1}^mw_ix_i^j))^2······················································(3)

θi=θi1ηLj(θi1)\theta^i=\theta^{i-1}-\eta \nabla L^j(\theta^{i-1})

下图是随机梯度下降法与一般的梯度下降的比较:

李宏毅深度学习笔记(二)随机梯度下降(Stochastic Gradient Descent)
优点:
(1)由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函 数,这样每一轮参数的更新速度大大加快。
缺点:
(1)准确度下降。由于即使在目标函数为强凸函数的情况下,SGD仍旧无法做到线性收敛。
(2)可能会收敛到局部最优,由于单个样本并不能代表全体样本的趋势。
(3)不易于并行实现。