随机梯度下降
Posted weilonghu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机梯度下降相关的知识,希望对你有一定的参考价值。
- 优化目标函数:(L( heta) = mathbb{E}_{(x,y) sim p_{data}} L(f(x, heta), y))
- 找到平均损失最小的模型参数,也就是求解优化问题:( heta^{*} = mathop{arg min} L( heta))
经典梯度下降
- 采用所有训练数据的平均损失来近似目标函数,即(L( heta) = frac{1}{M}sum limits_{i=1}^{M}L(f(x_i, heta), y_i)?)
- ( abla L( heta) = frac{1}{M}sum limits_{i=1}^{M} abla L(f(x_i, heta), y_i))
- 需要遍历所有训练数据,计算开销太大,但效果其实最好
随机梯度下降
用单个训练样本的损失来近似平均损失,即
[egin{aligned} L( heta; x_i, y_i) & = L(f(x_i, heta), y_i) \ abla L( heta; x_i, y_i) & = abla L(f(x_i, heta), y_i) end{aligned}?]
加快收敛速度,也适合在线更新
小批量梯度下降法
降低随机梯度的方差,使迭代更稳定
充分利用高度优化的矩阵运算
同时处理m个训练数据({ (x_1, x_2), cdots, (x_m, y_m) }),目标函数及其梯度为
[egin{aligned} L( heta) & = frac{1}{m} sum limits_{i=1}^{m}L(f(x_i, heta), y_i) \ abla L( heta) & = frac{1}{m} sum limits_{i = 1}^{m} abla L(f(x_i, heta), y_i) end{aligned}]
注意:
- m的选取:一般选2的幂次,充分利用矩阵运算
- 挑选m条数据:shuffle
- 学习率:动态可调的
以上是关于随机梯度下降的主要内容,如果未能解决你的问题,请参考以下文章