第五节——随机近似理论
1.求平均数
w k + 1 = w k − 1 k ( w k − x k ) w_{k+1}=w_{k}-\frac{1}{k}(w_k-x_k) wk+1=wk−k1(wk−xk)
其中 w k + 1 , w k w_{k+1},w_k wk+1,wk表示当前状态的平均值(k),和前一个状态的平均值(k-1), x k x_k xk表示第k个数
该式子表示了当前平均数与下一个平均数之间的关系
将
1
k
\frac{1}{k}
k1替换为
α
k
\alpha_k
αk就得到一个一般化的式子
w
k
+
1
=
w
k
−
α
k
(
w
k
−
x
k
)
,
α
k
>
0
w_{k+1}=w_{k}-\alpha_k(w_k-x_k), \ \ \alpha_k > 0
wk+1=wk−αk(wk−xk), αk>0
此时
w
k
w_k
wk依然趋近于原平均值,该式是一个特殊的RM算法
2.RM(Robbins-Monro) Algorithm(随机逼近算法)
核心目标就是寻找一个 未知表达式函数的零点,这个函数必须是递增的
w
k
+
1
=
w
k
−
a
k
g
~
(
w
k
,
η
k
)
,
k
=
1
,
2
,
3
,
.
.
.
w_{k+1}= w_k - a_k \widetilde{g}(w_k,\eta_k),k=1,2,3,...
wk+1=wk−akg
(wk,ηk),k=1,2,3,...
其中,
- w k w_k wk表示对零点的第k次估计
- g ~ ( w k , η k ) = g ( w k ) + η k \widetilde{g}(w_k,\eta_k)=g(w_k)+\eta_k g (wk,ηk)=g(wk)+ηk表示带有噪音的一个观测(即观测值含有噪声)
- a k a_k ak>0,称为步长,控制迭代的速度
该算法并不知道 g ( w ) g(w) g(w)到底是什么(即是一个黑盒),算法依赖于以下数据
- 输入的 { w k } \{w_k\} {wk}序列
- 测量到的 { g ~ ( w k , η k ) } \{\widetilde{g}(w_k,\eta_k)\} {g (wk,ηk)}的值序列
3.SGD(Stochastic gradient descent)随机梯度下降
SGD解决的问题
min w J ( w ) = E [ f ( w , X ) ] \min_w J(w) = \mathbb{E}[f(w,X)] wminJ(w)=E[f(w,X)]
- 优化参数w使目标函数J(w)达到最小
- X是随机变量,期望是对于X的
求解以上问的方法
-
方法1:梯度下降gradient descent(GD)
w k + 1 = w k − α k ∇ w E [ f ( w k , X ) ] = w k − α k E [ ∇ w f ( w k , X ) ] w_{k+1} = w_{k} - \alpha_k \nabla_w \mathbb{E}[f(w_k,X)]=w_{k} - \alpha_k \mathbb{E}[\nabla_wf(w_k,X)] wk+1=wk−αk∇wE[f(wk,X)]=wk−αkE[∇wf(wk,X)]
其中, ∇ w \nabla_w ∇w表示后面跟着的函数的梯度, α k \alpha_k αk表示步长,控制梯度方向下降的快慢问题:难以求出梯度的期望
-
方法2:批量梯度下降Batch gradient descent(BGD)
由数据得到,对随机变量X进行采样 x i x_i xi
E [ ∇ w f ( w k , X ) ] ≈ 1 n ∑ i = 1 n ∇ w f ( w k , x i ) w k + 1 = w k − α k 1 n ∑ i = 1 n ∇ w f ( w k , x i ) \mathbb{E}[\nabla_wf(w_k,X)]\approx \frac{1}{n}\sum^n_{i=1}\nabla_wf(w_k,x_i) \\ w_{k+1} = w_{k} - \alpha_k\frac{1}{n}\sum^n_{i=1}\nabla_wf(w_k,x_i) E[∇wf(wk,X)]≈n1i=1∑n∇wf(wk,xi)wk+1=wk−αkn1i=1∑n∇wf(wk,xi) -
方法3:SGD
w k + 1 = w k − α k ∇ w f ( w k , x i ) w_{k+1} = w_{k} - \alpha_k\nabla_wf(w_k,x_i) wk+1=wk−αk∇wf(wk,xi)
其中, x k x_k xk为X的一个随机采样- 对比于GD,将真正的梯度 E [ ∇ w f ( w k , X ) ] \mathbb{E}[\nabla_wf(w_k,X)] E[∇wf(wk,X)]换成随机梯度 ∇ w f ( w k , x i ) \nabla_wf(w_k,x_i) ∇wf(wk,xi)
- 对比于BGD,令n=1,表明只采样1次
4.BGD、MBGD和SGD的比较
w k + 1 = w k − α k 1 n ∑ i = 1 n ∇ w f ( w k , x i ) ( B G D ) w k + 1 = w k − α k 1 m ∑ j ∈ I k n ∇ w f ( w k , x i ) ( M B G D ) w k + 1 = w k − α k ∇ w f ( w k , x i ) ( S G D ) w_{k+1} = w_{k} - \alpha_k\frac{1}{n}\sum^n_{i=1}\nabla_wf(w_k,x_i) (BGD) \\ w_{k+1} = w_{k} - \alpha_k\frac{1}{m}\sum^n_{j\in\mathcal{I}_k}\nabla_wf(w_k,x_i) (MBGD) \\ w_{k+1} = w_{k} - \alpha_k\nabla_wf(w_k,x_i)(SGD) wk+1=wk−αkn1i=1∑n∇wf(wk,xi)(BGD)wk+1=wk−αkm1j∈Ik∑n∇wf(wk,xi)(MBGD)wk+1=wk−αk∇wf(wk,xi)(SGD)
- BGD用了所有的采样,MBGD用所有采样中的一小部分,SGD随机用采样中的一个数据
- 相比于SGD,MBGD的随机性小于SGD
- 相比于BGD,MBGD随机性要大一些,要更加灵活和高效