学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰


一、通过例子介绍 Iterative mean estimation

首先,先回顾一下 mean estimation problem 是什么。假设有一个随机变量X,目标是要求其期望 E(X)。我们有一些采样数据 x 1 , x 2 , . . . , x N x_1, x_2, ..., x_N x1,x2,...,xN。期望可以用这N个采样值的平均来近似。
在这里插入图片描述
那么,该如何计算这N个采样值的平均呢?有两种方法。

第一种是先收集好所有的sample,再对这些sample求平均值。这种方法的缺陷是:所有的sample需要一段时间才能被采样完,所以需要等待一段时间。

第二种方法采用了增量式的思想。基本思路是:来几个sample,就先算几个sample。这样效率会高一些。

下面具体来看一看如何用增量式的思想来计算均值。对采样到的样本 x 1 , x 2 , . . . , x k x_1, x_2, ..., x_k x1,x2,...,xk,先求一个均值 w k + 1 w_{k+1} wk+1。再对样本 x 1 , x 2 , . . . , x k − 1 x_1, x_2, ..., x_{k-1} x1,x2,...,xk1求均值,得到样本 w k w_{k} wk。通过推导发现 w k + 1 w_{k+1} wk+1 w k w_{k} wk 之间存在一定的关系(如下图蓝色公式所示)。利用这个式子,算均值就变得更加简单了。当得到一个新的采样 x k x_{k} xk 时,不必再对 x 1 , x 2 , . . . , x k x_1, x_2, ..., x_k x1,x2,...,xk 求和从而求其均值,而是直接套蓝色的公式,在 w k w_{k} wk 的基础上就可以得到 w k + 1 w_{k+1} wk+1 了。
在这里插入图片描述

这样我们就得到了如下图所示的,一个求平均数的迭代式/增量式算法。该算法的优点是,在求平均数时,不需要从头开始把数据加起来计算。当x的样本比较少的时候,所得到的结果和期望相差较大,但当x的样本越来越多的时候,所得到的结果越来越接近期望值。

在这里插入图片描述
把上述公式继续进行泛化,把 1 / k 1/k 1/k 改成 α k \alpha_k αk。如果 α k \alpha_k αk 能够满足一定的条件,计算所得到的结果 w k + 1 w_{k+1} wk+1 仍然可以近似为X的期望。此外,该算法也是一种特殊的SA algorithm、一种特殊的SGD算法。
在这里插入图片描述

二、Robbins-Monro 算法介绍与例子

关于SA算法:

(1)SA算法(sochastic approximation algorithm)代表一类随机的、迭代的算法,会涉及到对随机变量的采样,
这类算法被用来进行方程求解,或进行优化问题。
(2)相比于其他方程求解方法、优化算法,SA 算法不需要知道方程/目标函数的表达式。

关于Robbins-Monro 算法:
(1)该算法是随机近似领域中一个非常重要的工作。
(2)随机梯度下降算法(SGD)是 Robbins-Monro 算法的一种特殊情况。
(3)上一节提到的mean estimation实际上也是一种特殊的 Robbins-Monro 算法。

问题陈述:假设我们要求解方程 g ( w ) = 0 g(w)=0 g(w)=0,现在要求解该方程。为什么设计 g ( w ) = 0 g(w)=0 g(w)=0这个例子呢?因为这个例子在不同场景中均能广泛地用到。比如在下面的优化场景中,如果要优化方程 J ( w ) J(w) J(w),则需要计算 J ( w ) J(w) J(w)的梯度等于0的解。再比如要求 g ( w ) = c g(w)=c g(w)=c的解,可以把 g ( w ) = c g(w)=c g(w)=c转换成 g ( w ) − c = 0 g(w)-c=0 g(w)c=0 的形式进行求解。
在这里插入图片描述
我们要解决的核心问题是:如何在不知道 g ( w ) g(w) g(w) 表达式的情况下,求解方程 g ( w ) = 0 g(w)=0 g(w)=0 。 这其实相当于一个神经网络,比如神经网络的输入是w,输出是y,我们要做的就是在不知道函数 g ( w ) g(w) g(w) 表达式的情况下,去求解/拟合这个函数 g ( w ) g(w) g(w)
在这里插入图片描述
这种问题可以用RM算法来求解。我们的目标是求解 g ( w ) = 0 g(w)=0 g(w)=0,最优解是 w ∗ w^* w。在迭代式算法中, w k w_k wk 是对 w ∗ w^* w 的第 k 次估计, a k a_k ak 是一个系数, 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),其中 η k \eta_k ηk是一个噪音。 g ~ ( w k , η k ) \widetilde{g}(w_k, \eta_k) g (wk,ηk) 是g的一个带有噪音的观测。

在算法中,把 g ( w ) g(w) g(w) 当做一个黑盒,依赖于数据( w k w_k wk 序列和 g ~ ( w k , η k ) \widetilde{g}(w_k, \eta_k) g (wk,ηk) 序列)来求解。看下图红色手绘部分,每输入一个w就输出一个 g ~ \widetilde{g} g 。一开始输入 w 1 w_1 w1 得到 g ~ 1 \widetilde{g}_1 g 1,然后计算出 w 2 w_2 w2 ,输入 w 2 w_2 w2得到 g ~ 2 \widetilde{g}_2 g 2……不断迭代下去。最后得到了一个序列 { w k w_k wk} 和序列 { g ~ 1 \widetilde{g}_1 g 1}。RM算法就是采用这种思路求解的。
在这里插入图片描述
为什么RM算法能求出方程 g ( w ) = 0 g(w)=0 g(w)=0 的解?

要求解的方程是 g ( w ) = t a n h ( w − 1 ) = 0 g(w)=tanh(w-1)=0 g(w)=tanh(w1)=0,方程的图像如下图所示,最大值和最小值分别逼近 π / 2 \pi /2 π/2 − π / 2 -\pi /2 π/2 ,函数最优解 w ∗ = 1 w^*=1 w=1。初始化假设 w 1 = 3 w_1=3 w1=3 a k = 1 / k a_k = 1/k ak=1/k η k = 0 \eta_k=0 ηk=0
在这里插入图片描述
在这里插入图片描述

下图展示了函数的求解过程和结果。通过这个例子可以直观地看到, w k + 1 w_{k+1} wk+1 总是比 w k w_{k} wk 更接近 w ∗ w^* w
在这里插入图片描述

三、Robbins-Monro 算法收敛性及应用

(1)RM算法的收敛性证明
下图给出了RM算法的收敛性证明,具体证明过程请见赵老师课程视频。这里我就跳过了。
在这里插入图片描述
(2) 把RM算法应用到 mean estimation 问题中
下图给出的是这节课第一节中讲到的 mean estimation 的式子,当时我们令 α k = 1 / k \alpha_k=1/k αk=1/k。当 α k \alpha_k αk不等于 1 / k 1/k 1/k的时候,实际上最后的结果仍然能够收敛到E(X)。现在我们可以通过证明该方法是一个特殊的RM算法,从而证明该方法的收敛性。
在这里插入图片描述
1)考虑要求解一个方程 g ( w ) = w − E [ X ] g(w)=w-E[X] g(w)=wE[X]。我们不知道 E [ X ] E[X] E[X] 具体是多少,但是我们有 E [ X ] E[X] E[X] 的观测值 x x x
2)我们不知道 E [ X ] E[X] E[X] 具体是多少,但是我们有 E [ X ] E[X] E[X] 的观测值 x x x。所以我们测量的是 g ~ ( w , x ) \widetilde{g}(w, x) g (w,x),其中x是对X的一个采样。 g ~ ( w , x ) \widetilde{g}(w, x) g (w,x) 可以进一步写成 g ( w ) + η g(w)+\eta g(w)+η
3)把 g ~ ( w , x ) \widetilde{g}(w, x) g (w,x) 的值代入进去,自然得到了结果。这个结果就是RM算法的形式。所以我们证明了证明该方法是一个特殊的RM算法,从而证明该方法的收敛性。
在这里插入图片描述

四、 随机梯度下降算法介绍

SGD要解决的问题是一个优化问题,优化目标函数 J ( w ) J(w) J(w)使其达到最小。目标函数是关于函数 f f f的expectation, f f f又是关于w和X的一个函数。w是参数,X是随机变量,所以我们的目标是求出一个w使得 J ( w ) J(w) J(w)最小。
在这里插入图片描述
方法一:gradient descent (GD)
假设最优解是 w ∗ w^* w w k w_k wk是在第k次对 w ∗ w^* w的估计,在第k+1次对 w ∗ w^* w进行改进。 w k + 1 = w k − α k ∇ w E [ f ( w k , X ) ] = w k − α k ∇ w J ( w ) w_{k+1}=w_{k}-\alpha_k \nabla_w E[f(w_k, X)]=w_{k}-\alpha_k \nabla_wJ(w) wk+1=wkαkwE[f(wk,X)]=wkαkwJ(w)。相当于对目标函数求梯度,沿着梯度的方向下降,来优化当前的解。但该方法也存在问题,即:期望值很难准确获取。

方法二:batch gradient descent (BGD)
因为期望很难求得,所以通过多次采样,用多次采样的结果来近似期望。但这种方法也存在问题,即:更新 w k w_k wk时需要采样很多次,实际效率很低。
在这里插入图片描述
方法三:stochastic gradient descent (SGD)
在下式中,在梯度的计算过程中,使用了一个X的采样x来代替X。和BGD相比,BGD是采样n次,而SGD只采样1次。
在这里插入图片描述

五、随机梯度下降例子与收敛性

考虑对下面的式子进行优化,求其最小值。
在这里插入图片描述
使用梯度下降算法(GD)和随机梯度下降算法(SGD)解决上述问题的过程如下所示。在SGD中,用一个随机的采样来代替期望。
在这里插入图片描述
下面讨论SGD算法的收敛性。
从GD到SGD的过程,其实就是用 stochastic gradient 去近似 true gradient 的过程。但这两者之间肯定是存在一个误差的,用下图中的 η \eta η来表示两者之间的误差(stochastic gradient = true gradient + error)。在这种情况下,用SGD是否能找到最优解呢?
在这里插入图片描述
分析的基本思想是,证明SGD是一个特殊的RM算法。如果得证,因为RM算法具有收敛性,所以SGD就自然收敛。可以把SGD的最小化问题转换成方程求解问题(如下图所示),因为 J ( w ) J(w) J(w)达到最优的时候,一定是梯度等于0。所以,最小化问题被转换成求解梯度=0的问题。
在这里插入图片描述
根据前面所讲的,该方程可以用RM算法求解。目前我不知道 g ( w ) g(w) g(w)的准确表达式,但我可以通过观测求得 g ~ ( w , η ) \widetilde{g}(w, \eta) g (w,η)。这里的 g ~ ( w , η ) \widetilde{g}(w, \eta) g (w,η)就是stochastic gradient,等于 g ( w ) g(w) g(w)加上噪音 η \eta η。经过一些推导,发现使用RM算法可以把这个问题推导成推成SGD的形式。所以,SGD是一个特殊的RM算法,SGD具有收敛性。
在这里插入图片描述

六、随机梯度下降的有趣性质

Question:既然stochastic gradient是随机的,因此它的估计是不准确的。那么这会不会导致SGD的收敛也是比较慢且随机的呢?(直白点说,就是我知道它能收敛到最优值,但是会不会绕了一大圈、或者走过完全相反的方向,最终才达到了最优)

用stochastic和batch gradient的relative error(相对误差)来分析问题。假设 w ∗ w^* w是最优解, w ∗ w^* w代入到式子中的值就是0。因此可以把 w ∗ w^* w代入到式子中,加入到relative error中。利用中值定理对式子进行转换。
在这里插入图片描述

假设f的二阶梯度一定是大于0的。在这个假设基础上,继续推导。
在这里插入图片描述
下面对求得的结果进一步分析。可得到下面的结论:
w k w_k wk距离 w ∗ w^* w比较远时,分母比较大,在分子大小有限的情况下,relative error比较小,SGD所呈现出来的行为和GD是非常类似的。
w k w_k wk距离 w ∗ w^* w比较近时,分母比较小,在分子大小有限的情况下,relative error比较大,此时SGD才会呈现出比较大的随机性。

在这里插入图片描述
另一个例子。
在二维平面上有一个以原点为中心,边长为20的正方形。在正方形中随机采样(取点),在采样的过程中运行之前讲的mean estimation 算法。观察算法的收敛过程是什么样的。
在这里插入图片描述
下面呈现了算法的收敛过程。左图里面那根红色的线是SGD的轨迹。可以发现:
(1)最开始的时候 w k w_k wk距离 w ∗ w^* w比较远,但SGD没有呈现出朝着随机方向收敛的样子,而是朝着目标的方向快速收敛,
(2) w k w_k wk距离 w ∗ w^* w比较近,快要接近目标的时候,呈现出一些随机性。
在这里插入图片描述
A deterministic formulation.
下面针对一个新的目标函数来求解优化问题。其中 f 是关于 w 和 x 的参数。有很多x,需要对n个这样的值求平均。这个目标函数和之前的区别在于,这个目标函数中没有随机变量,x是一些给定的实数。所以,这是一个 deterministic formulation。

在这里插入图片描述
下图中的第一个公式使用了GD算法来解决这个问题。但是在实际情况中,有可能{ x i x_i xi}集合非常大,所以每次从集合里取一个数来进行求解(如下图中第二个式子所示)。这种求解方法算是SGD吗?不算是,因为它不包含任何 random variables 或者 expected values。
在这里插入图片描述
下面就想一个办法,把随机变量引入到该问题的求解中,使其成为一个SGD。引入一个随机变量X,令 p ( X = x i ) = 1 / n p(X=x_i)=1/n p(X=xi)=1/n,取任何一个随机变量的概率都是 1/n 。所以目标函数可以被转换成一个求期望的函数。
在这里插入图片描述

七、随机梯度下降对比BGD、MBGD、SGD

1. 回顾一下BGD、MBGD、SGD
BGD 每次用到 n 个采样,然后在此基础上求平均。
MBGD (mini batch gradient descent) 不使用所有的采样,仅从 n 个采样中取 m 个样本进行计算。比如从一万个数中,选取一百个样本。
SGD 每次只用到1个采样。
在这里插入图片描述
2. 简单比较
比较:
(1)相比于SGD,MBGD的随机性更小,因为它用到的样本更多。
(2)相比于GD,MBGD的随机性更大,因为它用到的样本更少。但它的优势就在于高效、灵活。
(3)当m=1时,MBGD就变成了SGD。
(4)当m=n时,严格意义上来说,MBGD不完全是BGD。 因为虽然两者都用了n个采样,但BGD用了所有的n个样本,MBGD是在n个采样中随机抽取的,有可能某些样本被抽中了好几次,某些样本却一次也没被抽到。

3. 一个例子
下图呈现了要求解的目标问题。先对目标函数求梯度,令梯度等于0。
在这里插入图片描述
在这里插入图片描述
下图中,BGD直接求出了平均数;MBGD每次先在m个数中求平均,然后再求一次平均(k);SGD每次只对一个数求平均。
在这里插入图片描述
下图是仿真的结果。发现mini batch=50时,MBGD能很快地接近目标;而mini batch=5时,MBGD接近目标的速度要慢一些。
在这里插入图片描述

八、本节课summary

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐