Stochastic average gradient(SAG)
介绍:
在SGD中,由于收敛的速度太慢,所以后面就有人提出SAG基于梯度下降的算法。
SAG中的S是随机(Stochastic),A是平均(average),G是梯度(gradient)的意思。可以看到SAG是一种加速版本的SGD。
SAG其实每次计算时,利用了两个梯度的值,一个是前一次迭代的梯度值,另一个是新的梯度值。当然这两个梯度值都只是随机选取一个样本来计算。
直观上看,利用的信息量大了,收敛速度就应该比单纯用一个样本估计梯度值的SGD要快。在一定条件下SAG线性收敛,与全梯度下降(FGD)收敛速度一样。但是SAG带来的问题就是需要内存来维护(保存)每一个旧梯度值。
用空间换时间也是一种不错的思路。
优化问题:
minx∈Rpg(x)=1n∑i=1nfi(x) m i n x ∈ R p g ( x ) = 1 n ∑ i = 1 n f i ( x )
迭代格式:
xk+1=xk−