赞
踩
首先回顾mean estimation:
已经知道这个估计的基本想法是Monte Carlo estimation,以及 x ˉ → E \bar{x}\to\mathbb{E} xˉ→E,随着 N → ∞ N\to\infty N→∞。
这里为什么又要关注mean estimation, 那是因为在强化学习中许多value被定义为means,例如state/action value。
新的问题: 如何计算mean
b
a
r
x
:
barx:
barx:
E [ X ] ≈ x ˉ : = 1 N ∑ i = 1 N x i \mathbb{E}[X]\approx\bar{x}:=\frac1N\sum_{i=1}^Nx_i E[X]≈xˉ:=N1i=1∑Nxi
我们有两种方式:
具体地,假设
w k + 1 = 1 k ∑ i = 1 k x i , k = 1 , 2 , . . . w_{k+1}=\frac{1}{k}\sum_{i=1}^{k}x_{i},k=1,2,... wk+1=k1i=1∑kxi,k=1,2,...
然后有
w k + 1 = 1 k ∑ i = 1 k x i , k = 1 , 2 , . . . w_{k+1}=\frac1k\sum_{i=1}^kx_i,k=1,2,... wk+1=k1i=1∑kxi,k=1,2,...
我们要建立 w k w_k wk和 w k + 1 w_{k+1} wk+1之间的关系,用 w k w_k wk表达 w k + 1 : w_{k+1}: wk+1:
w
k
+
1
=
1
k
∑
i
=
1
k
x
i
=
1
k
(
∑
i
=
1
k
−
1
x
i
+
x
k
)
=
1
k
(
(
k
−
1
)
w
k
+
x
k
)
=
w
k
−
1
k
(
w
k
−
x
k
)
wk+1=1kk∑i=1xi=1k(k−1∑i=1xi+xk)=1k((k−1)wk+xk)=wk−1k(wk−xk)
因此,获得了如下的迭代算法:
w
k
+
1
=
w
k
−
1
k
(
w
k
−
x
k
)
\color{red}{wk+1=wk−1k(wk−xk)
我们使用上面的迭代算法
w
k
+
1
=
w
k
−
1
k
(
w
k
−
x
k
)
\color{blue}{wk+1=wk−1k(wk−xk)
w
1
=
x
1
,
w
2
=
w
1
−
1
1
(
w
1
−
x
1
)
=
x
1
,
w
3
=
w
2
−
1
2
(
w
2
−
x
2
)
=
x
1
−
1
2
(
x
1
−
x
2
)
=
1
2
(
x
1
+
x
2
)
,
w
4
=
w
3
−
1
3
(
w
3
−
x
3
)
=
1
3
(
x
1
+
x
2
+
x
3
)
,
:
w
k
+
1
=
1
k
∑
i
=
1
k
x
i
.
w1=x1,w2=w1−11(w1−x1)=x1,w3=w2−12(w2−x2)=x1−12(x1−x2)=12(x1+x2),w4=w3−13(w3−x3)=13(x1+x2+x3),:wk+1=1kk∑i=1xi.
这样就得到了一个求平均数的迭代式的算法。
更进一步地,将上述算法
w
k
+
1
=
w
k
−
1
k
(
w
k
−
x
k
)
\color{blue}{wk+1=wk−1k(wk−xk)
w k + 1 = w k − α k ( w k − x k ) w_{k+1}\:=\:w_k\:-\:\color{red}{\alpha_k}\color{black}{\:(w_k\:-\:x_k\:)} wk+1=wk−αk(wk−xk)
其中 1 k \cfrac{1}{k} k1 被替换为 α k > 0 \alpha_k>0 αk>0。
随机逼近/Stochastic approximation (SA):
Robbins-Monro(RM)算法:
问题声明: 假设我们要求解下面方程的根
g ( w ) = 0 g(w)=0 g(w)=0
其中 w ∈ R w\in\mathbb{R} w∈R是要求解的变量, g : R → R g:\mathbb{R}\to\mathbb{R} g:R→R是一个函数.
这样的问题可以使用Robbins-Monro(RM)
算法求解:
w
k
+
1
=
w
k
−
a
k
g
~
(
w
k
,
η
k
)
,
k
=
1
,
2
,
3
,
.
.
.
wk+1=wk−ak˜g(wk,ηk),k=1,2,3,...
Robbins-Monro(RM)算法:
w
k
+
1
=
w
k
−
a
k
g
~
(
w
k
,
η
k
)
,
k
=
1
,
2
,
3
,
.
.
.
wk+1=wk−ak˜g(wk,ηk),k=1,2,3,...
其中
函数
g
(
w
)
g(w)
g(w)是一个black box! 也就是说该算法依赖于数据:
这里边的哲学思想:没有model,就要有data! 这里的model就是指函数的表达式。
为什么RM算法可以找到 g ( w ) = 0 g(w)=0 g(w)=0的解?
首先给出一个直观的例子:
在本例中RM算法如下【当
η
k
=
0
\eta_k=0
ηk=0的时候
g
~
(
w
k
,
η
k
)
=
g
(
w
k
)
\tilde{g}\left(w_k,\eta_k\right)=g(w_k)
g~(wk,ηk)=g(wk)】:
w
k
+
1
=
w
k
−
a
k
g
~
(
w
k
,
η
k
)
=
w
k
−
a
k
g
(
w
k
)
w_{k+1}=w_k-a_k\tilde{g}\left(w_k,\eta_k\right)=w_k-a_kg(w_k)
wk+1=wk−akg~(wk,ηk)=wk−akg(wk)
模拟仿真结果是:
w
k
w_k
wk 收敛到 true root
w
∗
=
1
w^*=1
w∗=1。
直观上:
w
k
+
1
w_{k+1}
wk+1比
w
k
w_k
wk 更接近于
w
∗
w*
w∗
上面的分析是基于直观的,但是不够严格。一个严格收敛的结果如下:
在RM算法中,如果上面的条件满足,那么
w
k
w_k
wk就会收敛到
w
∗
w^*
w∗,
w
∗
w^*
w∗就是
g
(
w
)
=
0
g(w)=0
g(w)=0的一个解。
∑
k
=
1
∞
a
k
2
<
∞
,
∑
k
=
1
∞
a
k
=
∞
\sum_{k=1}^\infty a_k^2<\infty,\sum_{k=1}^\infty a_k=\infty
k=1∑∞ak2<∞,k=1∑∞ak=∞
首先:
∑
k
=
1
∞
a
k
2
<
∞
\sum_{k=1}^\infty a_k^2<\infty
∑k=1∞ak2<∞表明随着
k
→
∞
k\to\infty
k→∞,
a
k
→
0
a_k\to0
ak→0 为什么这个条件重要呢? 因为:
w
k
+
1
−
w
k
=
−
a
k
g
~
(
w
k
,
η
k
)
w_{k+1}-w_k=-a_k\tilde{g}\left(w_k,\eta_k\right.)
wk+1−wk=−akg~(wk,ηk)
第二, ∑ k = 1 ∞ a k = ∞ \sum_{k=1}^\infty a_k=\infty ∑k=1∞ak=∞表明 a k a_k ak不应当太快收敛到0. 为什么这个条件重要呢?
那么问题来了,什么样的
a
k
a_k
ak能够满足这样两个条件呢?
∑
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<∞ 一个典型的序列是
a
k
=
1
k
a_k=\frac1k
ak=k1
在数学上
k
k
k 满足
lim
n
→
∞
(
∑
k
=
1
n
1
k
−
ln
n
)
=
κ
limn→∞(n∑k=11k−lnn)=κ
其中
κ
≈
0.577
\kappa\approx0.577
κ≈0.577,称为Euler-Mascheroni 常数 (也称为Euler常数)
另一个数学上的结论是:
∑
k
=
1
∞
1
k
2
=
π
2
6
<
∞
\sum_{k=1}^\infty\frac1{k^2}=\frac{\pi^2}6<\infty
k=1∑∞k21=6π2<∞
极限
∑
k
=
1
∞
\sum_{k=1}^\infty
∑k=1∞在数论中也有一个特定的名字: Basel problem 。
如果不满足这三个条件,RM算法可能无法正常工作。
我们将看到,在许多强化学习算法中, a k a_k ak 通常被选为一个足够小的常数。尽管在这种情况下第二个条件未被满足,但算法仍然可以有效地工作。
a k a_k ak 通常被选为一个足够小的常数还有一个作用:防止 a k = 1 k a_k=\frac{1}{k} ak=k1 时,当 k k k 特别大的时候,后面的数据起到的作用就会特别小,而我们希望未来进来的数据依然能够有用,所以不会让 a k a_k ak 到后面趋向于0,而是让它趋向于一个特别小的数。
回顾本文最初的mean estimation算法
w k + 1 = w k − α k ( w k − x k ) w_{k+1}\:=\:w_k\:-\:\alpha_k\:(w_k\:-\:x_k\:) wk+1=wk−αk(wk−xk)
我们知道:
现在我们证明这个算法是一个特殊的RM算法,它的收敛性就能够得到了。
w
k
+
1
=
w
k
−
α
k
g
~
(
w
k
,
η
k
)
=
w
k
−
α
k
(
w
k
−
x
k
)
wk+1=wk−αk˜g(wk,ηk)=wk−αk(wk−xk)
这就是之前给出的mean estimation算法。可见,mean estimation algorithm 是 RM算法的一个特殊情况。
stochastic gradient descent(SGD)算法在机器学习和强化学习的许多领域中广泛应用;
假设我们的目标是求解下面优化问题
min
w
J
(
w
)
=
E
[
f
(
w
,
X
)
]
\min_wJ(w)=\mathbb{E}[f(w,X)]
wminJ(w)=E[f(w,X)]
有三种方法求解:
true gradient
E
[
∇
w
f
(
w
k
,
X
)
]
E[\nabla_wf(w_k,X)]
E[∇wf(wk,X)]替换为 stochastic gradient
∇
w
f
(
w
k
,
x
k
)
\nabla_wf(w_k,x_k)
∇wf(wk,xk);
考虑下面的一个优化问题:
min
w
J
(
w
)
=
E
[
f
(
w
,
X
)
]
=
E
[
1
2
∥
w
−
X
∥
2
]
,
\min_w\quad J(w)=\mathbb{E}[f(w,X)]=\mathbb{E}\left[\frac12\|w-X\|^2\right],
wminJ(w)=E[f(w,X)]=E[21∥w−X∥2],
其中:
f
(
w
,
X
)
=
∥
w
−
X
∥
2
/
2
∇
w
f
(
w
,
X
)
=
w
−
X
f(w,X)=\|w-X\|^2/2\quad\nabla_wf(w,X)=w-X
f(w,X)=∥w−X∥2/2∇wf(w,X)=w−X
有三个练习:
答案:
练习01:证明最优解是
w
∗
=
E
[
X
]
w^*=\mathbb{E}[X]
w∗=E[X]:
对
J
(
w
)
J(w)
J(w)求梯度,使其等于0,即可得到最优解,因此有
∇
w
J
(
w
)
=
0
\nabla_wJ(w)=0
∇wJ(w)=0,然后根据公式,得到
E
[
∇
w
f
(
w
,
X
)
]
=
0
\mathbb{E}[\nabla_wf(w,X)]=0
E[∇wf(w,X)]=0,然后得到
E
[
w
−
X
]
=
0
\mathbb{E}[w-X]=0
E[w−X]=0,由于w是一个常数,因此
w
=
E
[
X
]
w=\mathbb{E}[X]
w=E[X]。
练习02:用GD算法求解这个问题:
w
k
+
1
=
w
k
−
α
k
∇
w
J
(
w
k
)
=
w
k
−
α
k
E
[
∇
w
f
(
w
k
,
X
)
]
=
w
k
−
α
k
E
[
w
k
−
X
]
.
\begin{aligned} w_{k+1}& \begin{aligned}=w_k-\alpha_k\nabla_wJ(w_k)\end{aligned}
练习03:使用SGD算法求解这个问题:
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)
使用SGD时,采样必须满足 iid(独立同分布/independent and identically distributed)。
注:BGD是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据。
问题:由于stochastic gradient是随机的,那么approximation是不精确的,SGD的收敛性是slow或者random?
为了回答这个问题,我们考虑在stochastic gradient
和真实梯度 batch gradients
之间的一个相对误差 relative error
:
δ k ≐ ∣ ∇ w f ( w k , x k ) − E [ ∇ w f ( w k , X ) ] ∣ ∣ E [ ∇ w f ( w k , X ) ] ∣ \delta_k\doteq\frac{|\nabla_wf(w_k,x_k)-\mathbb{E}[\nabla_wf(w_k,X)]|}{|\mathbb{E}[\nabla_wf(w_k,X)]|} δk≐∣E[∇wf(wk,X)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣
由于 E [ ∇ w f ( w ∗ , X ) ] = 0 \mathbb{E}[\nabla_wf(w^*,X)]=0 E[∇wf(w∗,X)]=0,因此:
δ k = ∣ ∇ w f ( w k , x k ) − E [ ∇ w f ( w k , X ) ] ∣ ∣ E [ ∇ w f ( w k , X ) ] − E [ ∇ w f ( w ∗ , X ) ] ∣ = ∣ ∇ w f ( w k , x k ) − E [ ∇ w f ( w k , X ) ] ∣ ∣ E [ ∇ w 2 f ( w ~ k , X ) ( w k − w ∗ ) ] ∣ \delta_k=\frac{|\nabla_wf(w_k,x_k)-\mathbb{E}[\nabla_wf(w_k,X)]|}{|\mathbb{E}[\nabla_wf(w_k,X)]-\mathbb{E}[\nabla_wf(w^*,X)]|}=\frac{|\nabla_wf(w_k,x_k)-\mathbb{E}[\nabla_wf(w_k,X)]|}{|\mathbb{E}[\nabla_w^2f(\tilde{w}_k,X)(w_k-w^*)]|} δk=∣E[∇wf(wk,X)]−E[∇wf(w∗,X)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣=∣E[∇w2f(w~k,X)(wk−w∗)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣
其中后面等式的分母使用了一个mean value theorem(中值定理),并且 w ~ k ∈ [ w k , w ∗ ] \tilde{w}_{k}\in[w_{k},w*] w~k∈[wk,w∗]
假设
f
f
f是严格凸的,满足
∇
w
2
f
≥
c
>
0
\nabla_w^2f\geq c>0
∇w2f≥c>0
对于所有的
w
,
X
w,X
w,X,其中
c
c
c 是一个positive bound。
然后,
δ
k
\delta_k
δk 的证明就变为了
∣
E
[
∇
w
2
f
(
w
~
k
,
X
)
(
w
k
−
w
∗
)
]
=
∣
E
[
∇
w
2
f
(
w
~
k
,
X
)
]
(
w
k
−
w
∗
)
∣
=
∣
E
[
∇
w
2
f
(
w
~
k
,
X
)
]
∣
∣
(
w
k
−
w
∗
)
∣
≥
c
∣
w
k
−
w
∗
∣
\begin{aligned} \begin{aligned}\left|\mathbb{E}[\nabla_w^2f(\tilde{w}_k,X)(w_k-w^*)]\right.\end{aligned}
然后把这个分母的性质带入刚才的relative error公式,就得到
δ
k
≤
∣
∇
w
f
(
w
k
,
x
k
)
−
E
[
∇
w
f
(
w
k
,
X
)
]
∣
c
∣
w
k
−
w
∗
∣
\delta_k\leq\frac{\left|\nabla_wf(w_k,x_k)-\mathbb{E}[\nabla_wf(w_k,X)]\right|}{c|w_k-w^*|}
δk≤c∣wk−w∗∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣
再看上面的式子:
δ
k
≤
∣
∇
w
f
(
w
k
,
x
k
)
⏞
stochastic gradient
−
E
[
∇
w
f
(
w
k
,
X
)
]
⏞
true gradient
∣
c
∣
w
k
−
w
∗
∣
⏟
distance to the optimal solution
.
\delta_k\leq\frac{\left|\overbrace{\nabla_wf(w_k,x_k)}^{\text{stochastic gradient}}-\overbrace{\mathbb{E}[\nabla_wf(w_k,X)]}^{\text{true gradient}}\right|}{\underbrace{c|w_k-w^*|}_{\text{distance to the optimal solution}}}.
δk≤distance to the optimal solution
c∣wk−w∗∣
∇wf(wk,xk)
stochastic gradient−E[∇wf(wk,X)]
true gradient
.
这个公式也表明了SGD的一个有趣的收敛模式:
relative error
δ
k
\delta_k
δk 与
∣
w
k
−
w
∗
∣
|w_k-w^*|
∣wk−w∗∣成反比
尽管均值的初始猜测离真实值很远,随机梯度下降(SGD)的估计可以迅速接近真实值的邻近区域。
当估计接近真实值时,它表现出一定的随机性,但仍然逐渐接近真实值。
在之前介绍的SGD的formulation中,涉及random variable和expectation。但是在学习其他材料的时候可能会遇到一个SGD的deterministic formulation,不涉及任何random variables。
同样地,考虑这样一个优化问题:
min
w
J
(
w
)
=
1
n
∑
i
=
1
n
f
(
w
,
x
i
)
\min_wJ(w)=\frac1n\sum_{i=1}^nf(w,x_i)
wminJ(w)=n1i=1∑nf(w,xi)
求解这个问题的gradient descent算法如下:
w
k
+
1
=
w
k
−
α
k
∇
w
J
(
w
k
)
=
w
k
−
α
k
1
n
∑
i
=
1
n
∇
w
f
(
w
k
,
x
i
)
w_{k+1}=w_k-\alpha_k\nabla_wJ(w_k)=w_k-\alpha_k\frac1n\sum_{i=1}^n\nabla_wf(w_k,x_i)
wk+1=wk−αk∇wJ(wk)=wk−αkn1i=1∑n∇wf(wk,xi)
假设这样的一个实数集合比较大,每次只能得到一个
x
i
x_i
xi,在这种情况下,可以使用下面的迭代算法:
w
k
+
1
=
w
k
−
α
k
∇
w
f
(
w
k
,
x
k
)
w_{k+1}=w_k-\alpha_k\nabla_wf(w_k,x_k)
wk+1=wk−αk∇wf(wk,xk)
那么问题来了:
对上述问题的一个快速回答是,我们可以手动引入一个随机变量(random variable),并将确定性的表述(deterministic formulation)转化为随机梯度下降(SGD)的随机形式(stochastic formulation)。
具体地,假设一个
X
X
X是定义在集合
{
x
i
}
i
=
1
n
\{x_i\}_{i=1}^n
{xi}i=1n的random variable。假设它的概率分布是均匀的,即
p
(
X
=
x
i
)
=
1
/
n
p(X=x_i)=1/n
p(X=xi)=1/n
然后,这个deterministic optimization problem变成了一个stochastic one:
min
w
J
(
w
)
=
1
n
∑
i
=
1
n
f
(
w
,
x
i
)
=
E
[
f
(
w
,
X
)
]
\min_w\quad J(w)=\frac1n\sum_{i=1}^nf(w,x_i)=\mathbb{E}[f(w,X)]
wminJ(w)=n1i=1∑nf(w,xi)=E[f(w,X)]
采样
必须满足独立同分布
) ;
MBGD与BGD和SGD进行比较:
这些结果是有用的:
我们将在下一章中看到,时差分学习算法可以被看作是随机逼近算法,因此具有类似的表达式。
它们是可以应用于许多其他领域的重要优化技术。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。