回顾
在MC 算法中最重要的就是利用Mean Estimation 对 q(s,a) 进行估计。
其本质上是一个利用独立且同分布(i.i.d.){xi}i=1n的sample来对随机变量X 的期望估计
E(X)≈xˉ=n1i=1∑nxi
如果我们不想等到全部n个到之后再估计,而是来k个就更新一次估计,将该方法转化为 incremental update的方式,应该怎么办呢?这就引入随机近似的思想
随机近似
假设
wk=k−11i=1∑k−1xi
则
wk+1=k1i=1∑kxi=k1[(k−1)wk+xk]=wk−k1(wk−xk)
随机近似将其写为更一般的形式
wk+1=wk−αk(wk−xk)
RM算法 | Robbins-Monro algorithm
Robbins-Monro algorithm可以帮助我们解决形如
g(w)=0
其中 w 是未知量, g 是一个未知表达式的black box函数
RM算法流程:
g(wk,ηk)=g(wk)+ηk
g(wk,ηk)是对g(wk)的一个观测,其中 ηk 是观测误差
wk+1=wk−akg(wk,ηk),k=1,2,3,…(6.5)
RM算法的收敛性依赖于以下条件:
(a) 0<c1≤∇wg(w)≤c2对所有 w 都成立
- 假设g(w)=∇wJ(w), 则∇wg(w)实际上对应J(w)的Hessian 矩阵。Hessian 矩阵为正符合 J(w) 的凸函数性质
(b) ∑k=1∞ak=∞且 ∑k=1∞ak2<∞
-
∑k=1∞ak2<∞ 表明 ak 最终收敛到 0 当 k→∞ , 避免发散
-
∑k=1∞ak=∞意味着 ak 最终收敛到 0 的速度不能太快,确保随着迭代次数增加,算法能够不断更新。
-
实践中 ak=k1 符合上述两个条件
© E[ηk∣Hk]=0 且 E[ηk2∣Hk]<∞;
其中 Hk={wk,wk−1,…},则 wk 几乎肯定收敛到满足 g(w∗)=0 的根 w∗ 。
将RM算法应用到Mean Estimation
令g(w)为:
g(w)=w−E[X]
给定一个wk, 我们可以得到一个噪声观察
g~(wk,x)=wk−x=(wk−E[x])+(E[x]−x)=g(wk)+ηk
则RM算法求解:
w0=0(随机初始化)
wk+1=wk−akg(wk,ηk)=wk−αk(wk−xk)
随机梯度下降
SGD在机器学习中可谓是广泛使用,其问题定义如下:
minwJ(w)=E[f(w,x)]
一个直接的想法就是使用梯度下降法
wk+1=wk−αk(ΔwJ(w))=wk−αk(E[Δf(w,x)])
然而通常来讲x的概率分布我们无法得知,所以依靠大数定律来进行平均估计
E[Δf(w,x)]≈n1i=1∑nΔf(w,xi)
公式进一步转化为:
wk+1=wk−nαki=1∑nΔf(w,xi)
然而上述公式每迭代一次需要遍历所有的samples,事实上我们可以每有一个sample就迭代一次,将原始E[Δf(w,x)]变为一个随机的Δf(w,xk), 这就是随机梯度下降SGD的核心思想
wk+1=wk−αkΔf(w,xk)