随机梯度下降算法
上一篇有介绍梯度下降算法以及收敛性分析,但是梯度下降算法需要将全部的数据加载到内存,然后在全局数据上作迭代计算,数据量较大的情况下,占用较大的内存空间和计算时间,为了解决这个问题会引入另外的一个变种的算法,随机梯度下降算法。
算法解释
随机梯度下降中,我们不要求基于精确的梯度值来更新迭代方向,而是允许迭代方向是一个随机向量,并且只要求在每次迭代的时候该方向的期望值和梯度方向是相等的。或者,更一般地,我们要求随机向量的期望值是函数在当前向量处的次梯度。即随机梯度的更新如下
wt+1=wt−ηt∇Jt(wt)
其中当
ηt=ττ+t‾‾‾√
,算法可达到
O(1t√)
其中
τ
是可调的参数。