由于全文太长,只好分开发了。 (已完结!在专栏查看本系列其他文章)
个人博客可以直接看全文~
本系列为在学习赵世钰老师的"强化学习的数学原理" 课程后所作笔记。
课堂视频链接https://www.bilibili.com/video/BV1sd4y167NS/
第六章 Stochastic Approximation & Stochastic Grandient Descent
Stochastic Approximation(随机近似理论) 和Stochastic Grandient Descent(随机梯度下降)
Motivating example
mean estimation problem:
- 考虑有一个随机变量 X
- 目标是计算期望 E X \mathbb{E}X EX
- 假设我们有N个采样 { x i } i = 1 N \{x_i\}_{i=1}^N {xi}i=1N
- 那么期望可以被估计为 E X ≈ x ‾ : = 1 N ∑ N i = 1 x i \mathbb{E}X \approx \overline{x}:=\frac{1}{N}\underset{i=1}{\overset{N}{\sum}}x_i EX≈x:=N1i=1∑Nxi
- 当 N → ∞ N \to \infty N→∞ , x ‾ → E X \overline{x} \to \mathbb{E}X x→EX
怎么计算 m e a n x ‾ mean\ \overline{x} mean x ?
方法一: 计算所有的总和,然后除以 N N N
方法二(iterative mean estimation):实时估计 x ‾ \overline{x} x ,当出现新的 x i x_i xi时,更新 x ‾ \overline{x} x
我们规定 w k + 1 w_{k+1} wk+1 表示前KaTeX parse error: Invalid color: ' #0000EE' at position 11: \textcolor{̲ ̲#̲0̲0̲0̲0̲E̲E̲}̲{k}个x的均值。即w_{k+1} = \\frac{1}{k}\\underset{i=1}{\\overset{k}{\\sum}}x_i 。(一般设置 w 1 = x 1 w_1 = x_1 w1=x1)
那么根据如下公式
w k + 1 = 1 k ∑ k i = 1 x i = 1 k ( 1 k − 1 ∑ k − 1 i = 1 x i + x k ) = 1 k ( ( k − 1 ) w k + x k ) = w k − 1 k ( w k − x k ) \begin{aligned} w_{k+1} = \frac{1}{k}\underset{i=1}{\overset{k}{\sum}}x_i & = \frac{1}{k}(\frac{1}{k-1}\underset{i=1}{\overset{k-1}{\sum}}x_i+x_k) \\ &=\frac{1}{k}((k-1)w_k + x_k) = w_k - \frac{1}{k}(w_k-x_k) \end{aligned} wk+1=k1i=1∑kxi=k1(k−11i=1∑k−1xi+xk)=k1((k−1)wk+xk)=wk−k1(wk−xk)
我们就可以迭代地计算 w k + 1 w_{k+1} wk+1 了。
于是我们稍作改进,把 1 k \frac{1}{k} k1 换成 α \alpha α .于是我们就可以通过调整 α \alpha α 来改变公式的计算了。
w k + 1 = w k − α ( w k − x k ) w_{k+1} = w_k - \alpha (w_k-x_k) wk+1=wk−α(wk−xk)
Robbins-Monro algorithm
stochastic approximation能够做到在不知道函数具体公式的情况下求出解。
RM算法是stochastic approximation中的开创性工作。
而stochastic gradient descent algorithm 则是RM的一种特殊情况。
问题:求解 g ( w ) = 0 g(w) = 0 g(w)=0方程, 其中 w w w是未知量, g g g是函数。
于是RM算法可以求解如下问题:
w k + 1 = w k − a k g ~ ( w k , η k ) w_{k+1} = w_k - a_k \tilde g(w_k,\eta _k) wk+1=wk−akg~(wk,ηk)
其中 η k \eta _k ηk 是噪声, g ~ ( w k , η k ) = g ( w k ) + η k \tilde g(w_k,\eta _k) = g(w_k) + \eta_k g~(wk,ηk)=g(wk)+ηk , α \alpha α是一个正数 。
函数 g ( w k ) g(w_k) g(wk) 是一个黑盒函数,我们无法得出它的具体公式。
不断迭代这个公式,就能够收敛到 g ( w ) = 0 g(w) = 0 g(w)=0
RM算法-Convergence properties
RM算法的三个条件:
-
0 < c 1 ≤ ∇ w g ( w ) ≤ c 2 0 < c_1 \le \nabla _wg(w) \le c_2 0<c1≤∇wg(w)≤c2 ,即导数大于0,并且不会趋于无穷。
-
∑ k = 1 ∞ a k = ∞ \sum_{k=1}^{\infty}a_k = \infty ∑k=1∞ak=∞ 并且 ∑ k = 1 ∞ a k 2 < ∞ \sum_{k=1}^{\infty}a_k^2 < \infty ∑k=1∞ak2<∞ 。
∑ k = 1 ∞ a k 2 < ∞ \sum_{k=1}^{\infty}a_k^2 < \infty ∑k=1∞ak2<∞ 保证了 a k a_k ak一定会收敛到0。
∑ k = 1 ∞ a k = ∞ \sum_{k=1}^{\infty}a_k = \infty ∑k=1∞ak=∞ 保证了 a k a_k ak收敛的不会太快,否则加起来就不会是无穷了。
-
E η k = 0 \mathbb{E}\\eta_k = 0 Eηk=0 并且 E n k 2 ∣ H < ∞ \mathbb{E}n_k\^2\|\\mathcal{H}<\infty Enk2∣H<∞ (这里的 E η k 2 ∣ H \mathbb{E}\\eta_k\^2\|\\mathcal{H} Eηk2∣H的意思是 η k \eta_k ηk的方差)。通常这里的噪声通过同分布(Independent and Identically Distriuted)采样得来,并且在此处 η k \eta_k ηk并没有强制要求满足高斯分布。
对于条件二的解释:
根据上面的公式 w k + 1 − w k = a k g ~ ( w k , η k ) w_{k+1}-w_k = a_k \tilde g(w_k,\eta_k) wk+1−wk=akg~(wk,ηk) ,那么 a k a_k ak收敛到0,才能保证 w k + 1 − w k w_{k+1}-w_k wk+1−wk不断收敛到0,从而趋于稳定。
而将 k = 1 , 2 , . . . , ∞ k = 1,2,...,\infty k=1,2,...,∞ 的公式相加可以得到
w ∞ − w 1 = ∑ k = 1 ∞ a k g ~ ( w k , η k ) w_{\infty} - w_1 = \overset{\infty}{\underset{k=1}{\sum}}a_k \tilde g(w_k,\eta_k) w∞−w1=k=1∑∞akg~(wk,ηk) .
w ∗ ≈ w ∞ w^* \approx w_\infty w∗≈w∞是我们猜测的值, w 1 w_1 w1 是初始值,那么 ∑ k = 1 ∞ a k = ∞ \sum_{k=1}^{\infty}a_k = \infty ∑k=1∞ak=∞ 保证了不管我们选的初始值 w 1 w_1 w1离目标值有多远,最终都可以通过不断迭代得到 w ∗ w^* w∗
a k a_k ak取什么值是符合条件的? a k = 1 k a_k= \frac{1}{k} ak=k1 。(但一般在 k k k很大的时候,不会让 a k a_k ak一直变小,达到某个较小值后则会不再改变)
SGD(stochatic gradient descent)
目标是解决如下优化问题:
m i n w J ( w ) = E f ( w , X ) \underset{w}{min} J(w) =\mathbb Ef(w,X) wminJ(w)=Ef(w,X)
算法一、 gradient descent(GD)梯度下降法:
w k + 1 = w k − α k ∇ w E f ( w k , X ) = α k E ∇ w f ( w k , X ) w_{k+1} = w_k- \alpha_k \nabla_w \mathbb Ef(w_k,X) = \alpha_k\mathbb E\\nabla_wf(w_k,X) wk+1=wk−αk∇wEf(wk,X)=αkE∇wf(wk,X)
这里的 α k \alpha_k αk 是步长,就是学习率。 但是一般无法得到准确的梯度的期望。
算法二、batch gradient descent(BGD)批量梯度下降法:
∇ w f ( w k , X ) ≈ 1 n ∑ n i = 1 ∇ w f ( w k , x i ) \mathbb \\nabla_w f(w_k,X) \approx \frac{1}{n} \underset{i=1}{\overset{n}{\sum}}\nabla_wf(w_k,x_i) ∇wf(wk,X)≈n1i=1∑n∇wf(wk,xi)
于是得到: w k + 1 = w k − α k 1 n ∑ n i = 1 ∇ w f ( w k , x i ) w_{k+1} = w_k- \alpha_k\frac{1}{n} \underset{i=1}{\overset{n}{\sum}}\nabla_wf(w_k,x_i) wk+1=wk−αkn1i=1∑n∇wf(wk,xi)
不需要求期望,用多次采样的平均值来代替期望值,但是每次都需要求n个数的平均太耗时了。(n为采样次数)
算法三、stochastic gradient descent(SGD) 随机梯度下降:
w k + 1 = w k − α k ∇ w f ( w k , x k ) w_{k+1} = w_k - \alpha_k \nabla_w f(w_k,x_k) wk+1=wk−αk∇wf(wk,xk)
和GD相比,替使用随机梯度来替换准确的期望的梯度。
和BGD相比,其实就是把n设置为了1。
SGD 的例子和练习
假设如下例子: m i n w J ( w ) = E f ( w , X ) = E 1 2 ∣ ∣ w − X ∣ ∣ 2 \underset{w}{min} \ J(w) = \mathbb Ef(w,X) = \mathbb E\\frac{1}{2} \|\|w-X\|\|\^2 wmin J(w)=Ef(w,X)=E21∣∣w−X∣∣2
此处的 f ( w , X ) = ∣ ∣ w − X ∣ ∣ 2 / 2 , ∇ w f ( w , X ) = w − X f(w,X)= ||w-X||^2/2, \nabla_wf(w,X) = w - X f(w,X)=∣∣w−X∣∣2/2,∇wf(w,X)=w−X
三个练习:
- 证明最优解 w ∗ w^* w∗ 满足 w ∗ = E X w^* = \mathbb E X w∗=EX
∇ w J ( w ) = 0 ⇒ E ∇ w f ( w , X ) = 0 ⇒ E w − X = 0 ⇒ w ∗ = E X \begin{aligned} & \nabla _w\ J(w) = 0 \\ \Rightarrow & \mathbb E\\nabla _w f(w,X) = 0 \\ \Rightarrow & \mathbb Ew-X = 0 \\ \Rightarrow & w^* = \mathbb EX \end{aligned} ⇒⇒⇒∇w J(w)=0E∇wf(w,X)=0Ew−X=0w∗=EX
- 这个例子的GD算法是什么?
w k + 1 = w k − α k ∇ w J ( w k ) = w k − α k E ∇ w J ( w k ) = w k − α k E w k − X \begin{aligned} w_{k+1} & = w_k - \alpha_k \nabla _w J(w_k) \\ &=w_k - \alpha_k \mathbb E\\nabla _w J(w_k) \\ &=w_k - \alpha_k \mathbb Ew_k - X \end{aligned} wk+1=wk−αk∇wJ(wk)=wk−αkE∇wJ(wk)=wk−αkEwk−X
- 这个例子的SGD算法是什么?
不求期望了,直接用某一个的 w k − x k w_k - x_k wk−xk 来代替 E w k − X \mathbb Ew_k - X Ewk−X
w k + 1 = w k − α k ∇ w f ( w k , x k ) = w k − α k ( w k − x k ) w_{k+1} = w_k - \alpha_k \nabla_wf(w_k,x_k) = w_k - \alpha _k (w_k - x_k) wk+1=wk−αk∇wf(wk,xk)=wk−αk(wk−xk)
我们发现最后的公式和mean alogrithm算法是一样的,所以mean algorithm算法就是一种特殊的SGD算法。
SGD算法的收敛性(convergence)
- 首先证明SGD是一种特殊的RM算法:
SGD的目标是最小化 J ( w ) = E f ( w , X ) J(w) = \mathbb Ef(w,X) J(w)=Ef(w,X) , 这个问题可以转换为寻根问题:
∇ w J ( w ) = E ∇ w f ( w , X ) = 0 \nabla_w \ J(w) = \mathbb E\\nabla _w f(w,X) = 0 ∇w J(w)=E∇wf(w,X)=0
设 g ( w ) = ∇ w J ( w ) = E ∇ w f ( w , X ) g(w) = \nabla_w J(w) = \mathbb E\\nabla_wf(w,X) g(w)=∇wJ(w)=E∇wf(w,X)
那么SGD的目标就是找到 g ( w ) = 0 g(w)= 0 g(w)=0的根。
我们可以测量的是:
g ~ ( w , η ) = ∇ w f ( w , x ) = E ∇ w f ( w , X ) + ( ∇ w f ( w , x ) − E ∇ w f ( w , X ) ) \begin{aligned} \tilde g(w,\eta) &= \nabla_w f(w,x) \\ &= \mathbb E\\nabla_wf(w,X) + (\nabla_wf(w,x) - \mathbb E\\nabla_w f(w,X)) \end{aligned} g~(w,η)=∇wf(w,x)=E∇wf(w,X)+(∇wf(w,x)−E∇wf(w,X))
而与之对应的RM算法是
w k + 1 = w k − α k g ~ ( w , η ) = w k − α k ∇ w f ( w k , x k ) w_{k+1}= w_k - \alpha _k \tilde g(w,\eta) = w_k - \alpha_k \nabla_wf(w_k,x_k) wk+1=wk−αkg~(w,η)=wk−αk∇wf(wk,xk)
- 接下来我们就可以应用RM算法的收敛性条件,来证明SGD是收敛的。
SGD算法的收敛模式
SGD收敛的过程中,是否会收敛很慢或者收敛随机?
我们定义相对误差 δ k \delta _k δk
δ k = ∣ ∇ w f ( w , x ) − E ∇ w f ( w , X ) ∣ ∣ E ∇ w f ( w , X ) ∣ \delta _k = \frac{|\nabla_wf(w,x) - \mathbb E\\nabla_w f(w,X)|}{|\mathbb E\\nabla_w f(w,X)|} δk=∣E∇wf(w,X)∣∣∇wf(w,x)−E∇wf(w,X)∣
此处的 E ∇ w f ( w , X ) \mathbb E\\nabla_w f(w,X) E∇wf(w,X)是true gradient, 而 ∇ w f ( w , x ) \nabla_wf(w,x) ∇wf(w,x) 是 stochastic gradient。
性质:当 w k w_k wk 离 w ∗ w^* w∗ 较远时,相对误差较小, 当 w k w_k wk 离 w ∗ w^* w∗ 很近的时候,才会有比较大的相对误差(即随机性)
如何得到如上性质?
使用拉格朗日中值定理 f ( x 1 ) − f ( x 2 ) = f ′ ( x 3 ) ( x 1 − x 2 ) f(x_1)-f(x_2) =f'(x_3)(x_1 - x_2) f(x1)−f(x2)=f′(x3)(x1−x2)
那么由 E ∇ w f ( w ∗ , X ) = 0 \mathbb E\\nabla _wf(w\^\*,X) = 0 E∇wf(w∗,X)=0和中值定理 ,我们有
δ k = ∣ ∇ w f ( w , x ) − E ∇ w f ( w , X ) ∣ ∣ E ∇ w f ( w , X ) − E ∇ w f ( w ∗ , X ) ∣ = ∣ ∇ w f ( w , x ) − E ∇ w f ( w , X ) ∣ ∣ E ∇ w 2 f ( w \~ , X ) ( w k − w ∗ ) ∣ \delta_k = \frac{|\nabla_wf(w,x) - \mathbb E\\nabla_w f(w,X)|}{|\mathbb E\\nabla_w f(w,X) - \mathbb E\\nabla_wf(w\^\*,X)|} = \frac{|\nabla_wf(w,x) - \mathbb E\\nabla_w f(w,X)|}{|\mathbb E\\nabla\^2_w f(\\tilde w,X)(w_k-w\^\*)|} δk=∣E∇wf(w,X)−E∇wf(w∗,X)∣∣∇wf(w,x)−E∇wf(w,X)∣=∣E∇w2f(w\~,X)(wk−w∗)∣∣∇wf(w,x)−E∇wf(w,X)∣
我们假设 ∇ w 2 f ≥ c > 0 \nabla^2_wf \ge c > 0 ∇w2f≥c>0
那么我们考虑分母项,就有
KaTeX parse error: Invalid color: ' #FF0000' at position 38: ...hbb E\textcolor{̲ ̲#̲F̲F̲0̲0̲0̲0̲}̲{[}\nabla^2_w f...
于是误差 δ k \delta_k δk满足
δ k ≤ ∣ ∇ w f ( w , x ) − E ∇ w f ( w , X ) ∣ c ∣ w k − w ∗ ∣ \delta_k \le \frac{|\nabla_wf(w,x) - \mathbb E\\nabla_w f(w,X)|}{c|w_k - w^*|} δk≤c∣wk−w∗∣∣∇wf(w,x)−E∇wf(w,X)∣
于是当 w k w_k wk 距离 w ∗ w^* w∗比较远,那么分母比较大,相对误差 δ k \delta_k δk 的上界比较小。
当 w k w_k wk 距离 w ∗ w^* w∗比较近,那么分母比较小,此时相对误差 δ k \delta_k δk 的上界才会变大一些。
BGD,MBGD和SGD
- BGD(batch gradient descent) , 用到所有的采样来平均求期望
- MBGD(min-batch gradient descent) ,选择一部分采样(m个采样)
- SGD(stocastic gradient descent) ,选择一个采样
在MBGD中,当MBGD中的采样数量 m = 1 m=1 m=1时,等价于SGD。
当采样数量 m = n m = n m=n时,趋近于BGD(注意!此时不完全等于BGD,因为BGD是取出所有的n个样本,而MBGD是对样本集进行n次的采样)
考虑如下优化问题:
m i n w J ( w ) = 1 2 n ∑ n i = 1 ∣ ∣ w − x i ∣ ∣ 2 \underset{w}{min} \ J(w) = \frac{1}{2n} \underset{i=1}{\overset{n}{\sum}} ||w - x_i || ^2 wmin J(w)=2n1i=1∑n∣∣w−xi∣∣2
那么三种算法的迭代公式如下:
KaTeX parse error: Expected 'EOF', got '&' at position 121: ...- \overline x) &̲ (BGD)\\ w_{k+1...