文章目录
降低 Variance的方法
1. 有限和问题(Finite Sum Problems)
有限和问题的形式为:
min x ∈ R d f ( x ) ≜ 1 n ∑ i = 1 n f i ( x ) \min\limits_{x\in \mathbb{R}^d}f(x)\triangleq \frac{1}{n}\sum\limits_{i=1}^{n}f_i(x) x∈Rdminf(x)≜n1i=1∑nfi(x)
该形式与样本平均近似方法类似。在机器学习中,通常使用的是 min x ∈ R d f ( x ) ≜ 1 n ∑ i = 1 n f i ( x ) + ψ ( x ) \min\limits_{x\in \mathbb{R}^d}f(x)\triangleq \frac{1}{n}\sum\limits_{i=1}^{n}f_i(x)+\psi(x) x∈Rdminf(x)≜n1i=1∑nfi(x)+ψ(x)。
有限和问题在很多地方都有应用:
- 经验风险最小化(Empirical risk minimization) 在机器学习中,针对假设 h h h的risk使用 经验风险 R ( h ) R(h) R(h)近似:
R ( h ) = 1 n ∑ i = 1 n L ( h ( x i ) , y i ) R(h)=\frac{1}{n}\sum\limits_{i=1}^{n}L(h(x_i),y_i) R(h)=n1i=1∑nL(h(xi),yi) - 分布式优化 在分布式优化中,有限和在计算集群上完成,使用基于迭代共识(iterative consensus)以及局部梯度的算法。
2. 增量梯度下降方法(Incremental gradient descent)
基于增量梯度下降方法的算法可以分为确定性的与随机的。其中,确定性的算法包括:
- 1997年 Bertsekas提出的 Incremental Gradient Descent;
- Blatt 等在2007年提出的 Incremental Aggregated Gradient
随机性的算法包括:
- Schmidt 等在2007年提出的 Stochastic Average Gradient;
- Defazio 等在2014年提出的 SAGA;
- Johnson and Zhang在2013年提出的 Stochastic Variance Reduced Gradient;
- Lan and Zhou 在2018年提出的 Randomized Primal-Dual Gradient
假设要估计 Θ = E [ X ] \Theta=\mathbb{E}[X] Θ=E[X],并且有一个随机变量 Y Y Y与 X X X相关,并且计算 E [ Y ] \mathbb{E}[Y] E[Y]相对要更容易。考虑下面一个point estimator:
Θ ^ a = a ( X − Y ) + E [ Y ] \hat{\Theta}_a=a(X-Y)+\mathbb{E}[Y] Θ^a=a(X−Y)+E[Y],其中 a ∈ [ 0 , 1 ] a\in [0,1] a∈[0,1]。其期望与方差为:
E [ Θ ^ a ] = a E [ X ] + ( 1 − a ) E [ Y ] V a r [ Θ ^ a ] = a 2 ( V a r [ X ] + V a r [ Y ] − 2 C o v [ X , Y ] ) \mathbb{E}[\hat{\Theta}_a]=a\mathbb{E}[X]+(1-a)\mathbb{E}[Y]\\ Var[\hat{\Theta}_a]=a^2(Var[X]+Var[Y]-2Cov[X,Y]) E[Θ^a]=aE[X]+(1−a)E[Y]Var[Θ^a]=a2(Var[X]+Var[Y]−2Cov[X,Y])
- 当 a = 1 a=1 a=1时,estimator为 ( X − Y ) + E [ Y ] (X-Y)+\mathbb{E}[Y] (X−Y)+E[Y],是一个无偏的估计;
- 当 a = 0 a=0 a=0的时候,estimator为一个常量 E [ Y ] \mathbb{E}[Y] E[Y],variance为0,但是可能有较大的bias;
- 如果 Cov[X,Y]足够的大,那么 V a r [ Θ ^ a ] < V a r [ X ] Var[\hat{\Theta}_a]<Var[X] Var[Θ^a]<Var[X],即当前估计的variance小于直接对 X X X的估计;
因此,可以得到,随着 a a a从0到1的增大,bias减小并且variance增大。
3. SVRG
如果当前迭代与前面的迭代不远,则历史的梯度信息可以用于降低variance,得到更好的估计。
对于凸且L-smooth的函数 f i f_i fi,考虑下面的目标函数:
min x ∈ R d f ( x ) = 1 n ∑ i = 1 n f i ( x ) \min\limits_{x\in \mathbb{R}^d}f(x)=\frac{1}{n}\sum\limits_{i=1}^{n}f_i(x) x∈Rdminf(x)=n1i=1∑nfi(x)
其中 f f f是 μ − s t r o n g l y \mu-strongly μ−strongly的。
SVRG的思想是,增强之前的梯度信息来帮助提升收敛率。如果能够获取到历史上的某个点 x o l d x^{old} xold以及梯度 ∇ F ( x o l d ) \nabla F(x^{old}) ∇F(xold),那么:
∇ f i t ( x t ) − ∇ f i t ( x o l d ) + ∇ f ( x o l d ) \nabla f_{i_t}(x^t)-\nabla f_{i_t}(x^{old})+\nabla f(x^{old}) ∇fit(xt)−∇fit(xold)+∇f(xold)
其中 i t ∼ U [ 1 , n ] i_t\sim U[1,n] it∼U[1,n]
算法的描述如下:
参数:更新频率 m m m,学习率 η \eta η
初始化: x ~ 0 \widetilde{x}_0 x 0
for s=1,2,… do
x ~ = x ~ s − 1 \widetilde{x}=\widetilde{x}^{s-1} x =x s−1
θ ~ = 1 n ∑ i = 1 n ∇ f i ( x ~ ) \widetilde{\theta}=\frac{1}{n}\sum\limits_{i=1}^{n}\nabla f_i(\widetilde{x}) θ =n1i=1∑n∇fi(x )
x 0 = x ~ x_0=\widetilde{x} x0=x
for t=1,2,…,m do
随机选择 i t ∈ { 1 , 2 , . . . , n } i_t\in \{1,2,...,n\} it∈{ 1,2,...,n}并更新权重
x t = x t − 1 − η ( ∇ f i t ( x t − 1 ) − ∇ f i t ( x ~ ) + θ ~ ) x_t=x^{t-1}-\eta (\nabla f_{i_t}(x^{t-1})-\nabla f_{i_t}(\widetilde{x})+\widetilde{\theta}) xt=xt−1−η(∇fit(xt−1)−∇fit(x )+θ )
end for
更新 x ~ s \widetilde{x}^s x s
选择1: x ~ s = x m \widetilde{x}^s=x^m