VR方法性质
要求随着迭代次数的增加,梯度估计的方差逐渐收敛到0。即估计的梯度最终能够接近真实梯度。
常见VR方法
SAG
SAG方法希望得到全梯度的近似,是全梯度的有偏估计。近似方法如下: 其中表示梯度,并且希望尽可能的接近。这是的更新规则: 然而我们可以不用这么麻烦的每一次都将从1加到n,可以用如下式子简化计算:
具体算法过程:
SAG方法相当于对n个数据维护一个表,每个表中存储这次迭代求的随机梯度。对于样本i来说,如果这次选到了样本i,则存的数据就是随机梯度,否则就保持不变。然后每次计算梯度时是对这张表中的梯度取平均,用以模拟全梯度,是全梯度的有偏估计。这种方法与GD相比可以减少计算量,但是却需要至少(是数据量,表示数据维度)的存储空间。而且这种方法分析非常困难,因此有人提出了更易于分析的SAGA。
SAGA
SAGA方法基于以下变换得到: 因此可以取: 而且只要足够接近, 最终就会收敛到,即会满足VR性质。
SAGA使用如下形式的: 其中是每一个样本的参考点。因此可得到梯度为: 每次在计算完梯度之后,需要用如下式子更新参考点 :
具体算法过程:
SAG和SAGA都需要的存储空间,对于大规模机器学习应用来说很不现实。因此有人提出了能达到相同收敛速度,但是只需要存储空间的SVRG方法。
SVRG
(以计算换存储)
SVRG中存在两个循环,其中外循环计算并存储全梯度,在内循环中固定参考点 ,更新,然后将内循环中更新得到的赋给。由于不需要为每个样本存储一个参考点的随机梯度,因此存储空间只要。
-
其中SVRG还有很多变种
- 使用内循环迭代次数的替代分布,使无上限。
- 使用mini-batch的梯度近似全梯度,然后每次迭代增加batch大小以满足VR性质
- 使用如下公式更新梯度:
SAG,SAGA和SVRG均有的复杂度,其中为条件数。