RL-赵-(六):随机逼近/Stochastic Approximation(SA)【无需目标函数】、RM算法、随机梯度下降(SGD)【需目标函数】【采样须独立同分布】【BGD->MBGD->SGD】

在这里插入图片描述

一、Motivating example

在这里插入图片描述
首先回顾mean estimation:

  • 考虑一个random variablc X X X
  • 目标是估计 E [ X ] \mathbb{E}[X] E[X]
  • 假设已经有了一系列随机独立同分布的样本 { x i } i = 1 N \{x_i\}_{i=1}^N { xi}i=1N
  • X X X的expection可以被估计为
    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=1Nxi

已经知道这个估计的基本想法是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=1Nxi

我们有两种方式:

  • 第一种方法:简单地,收集所有样本,然后计算平均值。但是该方法的缺点是如果样本是一个接一个的被收集,那么就必须等待所有样本收集完成才能计算
  • 第二种方法: 可以克服第一种方法的缺点,用一种incremental(增量式)和iterative (送代式) 的方式计算average。

在这里插入图片描述
具体地,假设

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=1kxi,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=1kxi,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 ) \begin{aligned}w_{k+1}&=\frac{1}{k}\sum_{i=1}^{k}x_i\:=\frac{1}{k}\left(\sum_{i=1}^{k-1}x_i+x_k\right)=\frac{1}{k}\left((k-1)w_k+x_k\right)=w_k\:-\frac{1}{k}\left(w_k-x_k\right)\end{aligned} wk+1=k1i=1kxi=k1(i=1k1xi+xk)=k1((k1)wk+xk)=wkk1(wkxk)
因此,获得了如下的迭代算法:
w k + 1   =   w k   −   1 k   ( w k   −   x k ) \color{red}{\begin{aligned}w_{k+1}\:=\:w_k\:-\:\frac{1}{k}\:(w_k\:-\:x_k)\end{aligned}} wk+1=wkk1(wkxk)

在这里插入图片描述
我们使用上面的迭代算法 w k + 1   =   w k   −   1 k   ( w k   −   x k ) \color{blue}{\begin{aligned}w_{k+1}\:=\:w_k\:-\:\frac{1}{k}\:(w_k\:-\:x_k)\end{aligned}} wk+1=wkk1(wkxk)增量式地计算 x x x 的 mean:

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 . \begin{aligned} &{w_1} =x_{1}, \\ &w_2 =w_1-\frac11(w_1-x_1)=x_1, \\ &w_3 =w_2-\frac{1}{2}(w_2-x_2)=x_1-\frac{1}{2}(x_1-x_2)=\frac{1}{2}(x_1+x_2), \\ &w_4=w_3-\frac13(w_3-x_3)=\frac13(x_1+x_2+x_3), \\ &\text{:} \\ &w_{k+1} =\frac1k\sum_{i=1}^kx_i. \end{aligned} w1=x1,w2=w111(w1x1)=x1,w3=w221(w2x2)=x121(x1x2)=21(x1+x2),w4=w331(w3x3)=31(x1+x2+x3),:wk+1=k1i=1kxi.

在这里插入图片描述
这样就得到了一个求平均数的迭代式的算法。

  • 算法的优势是在第k步的时候不需要把前面所有的 x i x_i xi 全部加起来再求平均,可以在得到一个样本的时候立即求平均。
  • 另外这个算法也代表了一种增量式的计算思想,在最开始的时候因为 k k k比较小, w k ≠ E [ X ] w_k\neq\mathbb{E}[X] wk=E[X],但是有比没有强。随着获得样本数的增加,估计的准确度会逐渐提高,也就是 w k → E [ X ] w_k\to\mathbb{E}[X] wkE[X] as k → N k\to N kN

在这里插入图片描述
更进一步地,将上述算法 w k + 1   =   w k   −   1 k   ( w k   −   x k ) \color{blue}{\begin{aligned}w_{k+1}\:=\:w_k\:-\:\frac{1}{k}\:(w_k\:-\:x_k)\end{aligned}} wk+1=wkk1(wkxk) 用一个更泛化的形式表示为:

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(wkxk)

其中 1 k \cfrac{1}{k} k1 被替换为 α k > 0 \alpha_k>0 αk>0

  • 该算法是否会收敛到mean E [ X ] \mathbb{E}[X] E[X]? 答案是Yes,如果 { α k } \{\alpha_k\} { αk}满足某些条件的时候。
  • 该算法也是一种特殊的Stochastic Approximation(SA)算法,也是一种特殊的 stochastic gradient descent 算法。

二、Robbins-Monro algorithm

在这里插入图片描述

随机逼近/Stochastic approximation (SA):

  • SA指的是一类广泛的随机迭代算法,用来求解方程的根或者优化问题。
  • 与其他求根算法(如基于梯度的方法)相比,SA的强大之处在于它不需要知道目标函数的表达式,也不知道它的导数或者梯度表达式。

Robbins-Monro(RM)算法:

  • 这是随机逼近(stochastic approximation)领域的开创性工作。
  • 著名的随机梯度下降算法(stochastic gradient descent algorithm)是RM算法的一种特殊形式。
  • 它可以用于分析在开头介绍的均值估计算法(mean estimation algorithms)。

1、Problem statement

在这里插入图片描述
问题声明: 假设我们要求解下面方程的根

g ( w ) = 0 g(w)=0 g(w)=0

其中 w ∈ R w\in\mathbb{R} wR是要求解的变量, g : R → R g:\mathbb{R}\to\mathbb{R} g:RR是一个函数.

  • 许多问题最终可以转换为这样的求根问题。例如,假设 J ( w ) J(w) J(w)是最小化的一个目标函数,然后,优化问题被转换为
    g ( w ) = ∇ w J ( w ) = 0 g(w)=\nabla_wJ(w)=0 g(w)=wJ(w)=0
  • 另外可能面临 g ( w ) = c g(w)=c g(w)=c,其中 c c c是一个常数,这样也可以将其转换为上述等式,通过将 g ( w ) − c g(w)-c g(w)c写为一个新的函数。
    在这里插入图片描述
    如何计算方程 g ( w ) = 0 g(w) = 0 g(w)=0 的根?
  • 如果已知函数 g g g 或其导数的表达式,那么有许多数值算法可以解决这个问题。
  • 如果函数 g g g 的表达式是未知的呢?例如,该函数是由人工神经网络(artificial neural network)表示的。

这样的问题可以使用Robbins-Monro(RM)算法求解:

w k + 1   =   w k   −   a k   g ~ ( w k , η k   ) , k   =   1 , 2 , 3 , . . . \begin{aligned}w_{k+1}\:=\:w_k\:-\:a_k\:\tilde{g}(w_k,\eta_k\:),k\:=\:1,2,3,...\end{aligned} wk+1=wkakg~(wk,ηk),k=1,2,3,...

2、Robbins-Monro(RM)算法

在这里插入图片描述
Robbins-Monro(RM)算法:
w k + 1   =   w k   −   a k   g ~ ( w k , η k   ) , k   =   1 , 2 , 3 , . . . \begin{aligned}w_{k+1}\:=\:w_k\:-\:a_k\:\tilde{g}(w_k,\eta_k\:),k\:=\:1,2,3,...\end{aligned} wk+1=wkakg~(wk,ηk),k=1,2,3,...

其中

  • w k w_k wk是root的第 k k k 次估计;
  • g ~ ( w k , η k ) = g ( w k ) + η k \tilde{g}\left(w_k,\eta_k\right)=g(w_k)+\eta_k g~(wk,ηk)=g(wk)+ηk 是第 k k k 次带有噪声的观测;
  • a k a_k ak 是一个positive coefficient;

函数 g ( w ) g(w) g(w)是一个black box! 也就是说该算法依赖于数据:
在这里插入图片描述

  • 输入序列: { w k } \{w_k\} { wk}
  • 噪声输出序列 : { g ~ ( w k , η k ) } :\{\tilde{g}\left(w_k,\eta_k\right)\} :{ g~(wk,ηk)}

这里边的哲学思想:没有model,就要有data! 这里的model就是指函数的表达式。

3、收敛性分析(Convergence properties)

为什么RM算法可以找到 g ( w ) = 0 g(w)=0 g(w)=0的解?

在这里插入图片描述

3.1 直观的例子

首先给出一个直观的例子:

  • g ( w ) = t a n h ( w − 1 ) g(w)=tanh(w-1) g(w)=tanh(w1)
  • g ( w ) = 0 g(w)=0 g(w)=0的 true root 是 w ∗ = 1 w^*=1 w=1
  • 初始值: w 1 = 2 , a k = 1 / k , η k = 0 w_1=2,a_k=1/k,\eta_k=0 w1=2,ak=1/k,ηk=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=wkakg~(wk,ηk)=wkakg(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

  • w k > w ∗ w_k>w^* wk>w,有 g ( w k ) > 0 g(w_k)>0 g(wk)>0,那么 w k + 1 = w k − a k g ( w k ) < w k w_{k+1}=w_k-a_kg(w_k)<w_k wk+1=wkakg(wk)<wk,因此 w k + 1 w_{k+1} wk+1 w k + 1 w_{k+1} wk+1 w k w_k wk 更接近于 w ∗ w^* w
  • w k < w ∗ w_k<w^* wk<w,有 g ( w k ) < 0 g(w_k)<0 g(wk)<0,那么 w k + 1 = w k − a k g ( w k ) > w k w_{k+1}=w_k-a_kg(w_k)>w_k wk+1=wkakg(wk)>wk,因此 w k + 1 w_{k+1} wk+1 w k w_k wk 更接近于 w ∗ w^* w

3.2 RM算法的3个前提条件

上面的分析是基于直观的,但是不够严格。一个严格收敛的结果如下:

在这里插入图片描述
在RM算法中,如果上面的条件满足,那么 w k w_k wk就会收敛到 w ∗ w^* w, w ∗ w^* w就是 g ( w ) = 0 g(w)=0 g(w)=0的一个解。

  • 第一个条件是关于 g ( w ) g(w) g(w) 的梯度要求;
  • 第二个条件是关于 a k a_k ak系数的要求;
  • 第三个条件是关于这个 η k \eta_k ηk,就是测量误差的要求。

在这里插入图片描述

3.2.1 这三个条件的解释
  • 条件1【关于 g ( w ) g(w) g(w) 的梯度要求】: 对于所有的 w w w,满足: 0 < c 1 ≤ ∇ k g ( w ) ≤ c 2 0<c_1\leq\nabla_kg(w)\leq c_2 0<c1kg(w)c2 ,这个条件表示:
    • g g g 必须单调递增,确保 g ( w ) = 0 g(w) = 0 g(w)=0 的根存在且唯一。
    • 梯度从上方有界。
  • 条件2【关于 a k a_k ak系数的要求】: ∑ k = 1 ∞ a k = ∞ \sum_{k=1}^\infty a_k=\infty k=1ak= ∑ k = 1 ∞ a k 2 < ∞ \sum_{k=1}^\infty a_k^2<\infty k=1ak2<
    • ∑ k = 1 ∞ a k 2 < ∞ \sum_{k=1}^\infty a_k^2<\infty k=1ak2< 确保 随着 k → ∞ k\to\infty k, a k → 0 a_k\to0 ak0
    • ∑ k = 1 ∞ a k = ∞ \sum_{k=1}^\infty a_k=\infty k=1ak=表明 a k a_k ak不应当太快收敛到0;
  • 条件3【关于 η k \eta_k ηk测量误差的要求】 E [ η k ∣ H k ] = 0 \mathbb{E}[\eta_k\mid\mathcal{H}_k]=0 E[ηkHk]=0 并且 E [ η k 2 ∣ H k ] < ∞ \mathbb{E}[\eta_k^2\mid\mathcal{H}_k]<\infty E[ηk2Hk]<
    • 一个特殊但常见的情况是 η k {η_k} ηk 是一个满足 E [ η k ∣ H k ] = 0 \mathbb{E}[\eta_k\mid\mathcal{H}_k]=0 E[ηkHk]=0 并且 E [ η k 2 ∣ H k ] < ∞ \mathbb{E}[\eta_k^2\mid\mathcal{H}_k]<\infty E[ηk2Hk]< 的独立同分布随机序列。观测误差 η k {η_k} ηk 不要求是高斯分布的。

在这里插入图片描述

3.2.2 对第二个条件进行详细讨论

∑ 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=1ak2<,k=1ak=
首先: ∑ k = 1 ∞ a k 2 < ∞ \sum_{k=1}^\infty a_k^2<\infty k=1ak2<表明随着 k → ∞ k\to\infty k, a k → 0 a_k\to0 ak0 为什么这个条件重要呢? 因为:
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+1wk=akg~(wk,ηk)

  • 如果 a k → 0 a_k\to0 ak0,那么 a k g ~ ( w k , η k ) → 0 a_k\tilde{g}(w_k,\eta_k)\to0 akg~(wk,ηk)0,因此 w k + 1 − w k → 0 w_{k+1}-w_k\to0 wk+1wk0
  • we need the fact that w k + 1 − w k → 0 w_{k+1}-w_k\to0 wk+1wk0 如果 w k w_k wk 最终收敛
  • 如果 w k → w ∗ w_k\to w* wkw,那么 g ( w k ) → 0 g(w_k)\to0 g(wk)0 g ~ ( w k , η k ) \tilde{g}(w_k,\eta_k) g~(wk,ηk) η k \eta_k ηk确定。
    在这里插入图片描述

第二, ∑ k = 1 ∞ a k = ∞ \sum_{k=1}^\infty a_k=\infty k=1ak=表明 a k a_k ak不应当太快收敛到0. 为什么这个条件重要呢?

  • 根据 w 2   =   w 1   −   a 1   g ~ ( w 1   , η 1   ) ,   w 3   =   w 2   −   a 2   g ~ ( w 2   , η 2   ) , … ,   w k + 1   =   w k   −   a k   g ~ ( w k   , η k   ) w_{2}\:=\:w_{1}\:-\:a_{1}\:\tilde{g}\left(w_{1}\:,\eta_{1}\:\right),\:w_{3}\:=\:w_{2}\:-\:a_{2}\:\tilde{g}\left(w_{2}\:,\eta_{2}\:\right),\ldots,\:w_{k+1}\:=\:w_{k}\:-\:a_{k}\:\tilde{g}\left(w_{k}\:,\eta_{k}\:\right) w2=w1a1g~(w1,η1),w3=w2a2g~(w2,η2),,wk+1=wkakg~(wk,ηk)得出:
    w ∞ − w 1 = ∑ k = 1 ∞ a k g ~ ( w k , η k ) w_\infty-w_1=\sum_{k=1}^\infty a_k\tilde{g}\left(w_k,\eta_k\right) ww1=k=1akg~(wk,ηk)
  • 假定 w ∞ = w ∗ w_{\infty}=w^* w=w。如果 ∑ k = 1 ∞ a k < ∞ \sum_{k=1}^{\infty}a_k<\infty k=1ak<,那么 ∑ k = 1 ∞ a k g ~ ( w k , η k ) \sum_{k=1}^{\infty}a_k\tilde{g}\left(w_k,\eta_k\right) k=1akg~(wk,ηk)可能是有界的。然后,如果初始猜测 w 1 w_{1} w1任意选择远离 w ∗ w* w,那么上述等式可能是不成立的 (invalid) 。

在这里插入图片描述

那么问题来了,什么样的 a k a_k ak能够满足这样两个条件呢? ∑ k = 1 ∞ a k = ∞ \sum_{k=1}^\infty a_k=\infty k=1ak= ∑ k = 1 ∞ a k 2 < ∞ \sum_{k=1}^\infty a_k^2<\infty k=1ak2< 一个典型的序列是
a k = 1 k a_k=\frac1k ak=k1

  • 在数学上 k k k 满足
    lim ⁡ n → ∞ ( ∑ k = 1 n 1 k − ln ⁡ n ) = κ \begin{aligned}\lim_{n\to\infty}\left(\sum_{k=1}^n\frac{1}{k}-\ln n\right)=\kappa\end{aligned} nlim(k=1nk1lnn)=κ
    其中 κ ≈ 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=1k21=6π2<
    极限 ∑ k = 1 ∞ \sum_{k=1}^\infty k=1在数论中也有一个特定的名字: Basel problem 。

在这里插入图片描述
如果不满足这三个条件,RM算法可能无法正常工作。

  • 例如, g ( w ) = w 3 − 5 g(w) = w^3 − 5 g(w)=w35 不满足梯度有界性的第一个条件。如果初始猜测很好,算法可以收敛(在局部)。否则,它将发散。

我们将看到,在许多强化学习算法中, 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,而是让它趋向于一个特别小的数。

在这里插入图片描述

4、将RM算法用于mean estimation

回顾本文最初的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(wkxk)

我们知道:

  • 如果 α k = 1 / k \alpha_k=1/k αk=1/k,那么 w k + 1 = 1 / k ∑ i = 1 k x i w_{k+1}=1/k\sum_{i=1}^kx_i wk+1=1/ki=1kxi
  • 如果 α k \alpha_k αk不是 1 / k 1/k 1/k, 收敛性没办法分析。

现在我们证明这个算法是一个特殊的RM算法,它的收敛性就能够得到了。

在这里插入图片描述

  1. 考虑–个函数
    g ( w ) ≐ w − E [ X ] g(w)\doteq w-\mathbb{E}[X] g(w)wE[X]
    我们的目标是求解 g ( w ) = 0 g(w)=0 g(w)=0,这样,我们就可以得到 E [ X ] \mathbb{E}[X] E[X]
  2. 我们不知道 X X X,但是可以对 X X X 进行采样,因此我们得到的观察是
    g ~ ( w , x ) ≐ w − x \tilde{g}\left(w,x\right)\doteq w-x g~(w,x)wx
    注意:
    g ~ ( w , η ) = w − x = w − x + E [ X ] − E [ X ] = ( w − E [ X ] ) + ( E [ X ] − x ) ≐ g ( w ) + η , \begin{aligned} \tilde{g}(w,\eta)& =w-x \\ &=w-x+\mathbb{E}[X]-\mathbb{E}[X] \\ &=(w-\mathbb{E}[X])+(\mathbb{E}[X]-x)\doteq g(w)+\eta, \end{aligned} g~(w,η)=wx=wx+E[X]E[X]=(wE[X])+(E[X]x)g(w)+η,
  3. 求解 g ( x ) = 0 g(x)=0 g(x)=0的RM算法是

w k + 1   =   w k   −   α k   g ~ ( w k , η k   )   =   w k   −   α k ( w k   −   x k   ) \begin{aligned}w_{k+1}\:=\:w_k\:-\:\alpha_k\:\tilde{g}\left(w_k,\eta_k\:\right)\:=\:w_k\:-\:\alpha_k\left(w_k\:-\:x_k\:\right)\end{aligned} wk+1=wkαkg~(wk,ηk)=wkαk(wkxk)
这就是之前给出的mean estimation算法。可见,mean estimation algorithm 是 RM算法的一个特殊情况

在这里插入图片描述

三、Stochastic gradient descent【随机梯度下降】

stochastic gradient descent(SGD)算法在机器学习和强化学习的许多领域中广泛应用;

  • SGD算法是RM算法的一个特殊情况。
  • mean estimation algorithm 是 RM算法的一个特殊情况,也是SGD算法的一个特殊情况。

在这里插入图片描述
假设我们的目标是求解下面优化问题
min ⁡ w J ( w ) = E [ f ( w , X ) ] \min_wJ(w)=\mathbb{E}[f(w,X)] wminJ(w)=E[f(w,X)]

  • w w w是被优化的参数
  • X X X 是一个随机变量,The expection 实际上就是针对这个 X X X进行计算的
  • w w w X X X可以是标量或者向量,函数 f ( ⋅ ) f(\cdot) f()是一个标量。

在这里插入图片描述

有三种方法求解:

  • 方法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αkwE[f(wk,X)]=wkαkE[wf(wk,X)]
    问题是整体样本 X X X 的梯度值的期望值 E [ ∇ w f ( w k , X ) \mathbb{E}[\nabla_wf(w_k,X) E[wf(wk,X) 很难获取(the expected value is difficult to obtain)。
  • 方法2: batch gradient descent (BGD)
    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 ) . \begin{aligned} &\mathbb{E}[\nabla_wf(w_k,X)]\approx\frac1n\sum_{i=1}^n\nabla_wf(w_k,x_i)\\[1ex] &w_{k+1}=w_k-\alpha_k\frac1n\sum_{i=1}^n\nabla_wf(w_k,x_i). \end{aligned} E[wf(wk,X)]n1i=1nwf(wk,xi)wk+1=wkαkn1i=1nwf(wk,xi).
    问题是对于每个 w k w_k wk,在每次迭代中需要许多次采样。【批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果样本数目m很大,这种方法的迭代速度很慢!】
  • 方法3: stochastic gradient descent (SGD):
    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αkwf(wk,xk)
    SGD与前面两种算法相比:
    • 与GD算法相比,将 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)
    • 与BGD算法相比,令 n = 1 n=1 n=1

1、SGD算法的示例、应用

在这里插入图片描述
考虑下面的一个优化问题:
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[21wX2],
其中:
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)=wX2/2wf(w,X)=wX

有三个练习:

  • 证明最优解是 w ∗ = E [ X ] w^*=\mathbb{E}[X] w=E[X]
  • 用GD算法求解这个问题
  • 用SGD算法求解这个问题

答案:

  • 练习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[wX]=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} \\ &=w_k-\alpha_k\mathbb{E}[\nabla_wf(w_k,X)] \\ &\begin{aligned}=w_k-\alpha_k\mathbb{E}[w_k-X].\end{aligned} \end{aligned} wk+1=wkαkwJ(wk)=wkαkE[wf(wk,X)]=wkαkE[wkX].

  • 练习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αkwf(wk,xk)=wkαk(wkxk)
    在这里插入图片描述

2、收敛性分析(Convergence)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用SGD时,采样必须满足 iid(独立同分布/independent and identically distributed)。

3、收敛模式(Convergence pattern)

在这里插入图片描述

注: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)]|} δkE[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)(wkw)]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 w2fc>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}& \begin{aligned}=\left|\mathbb{E}[\nabla_w^2f(\tilde{w}_k,X)](w_k-w^*)\right|\end{aligned} \\ &=\left|\mathbb{E}[\nabla_w^2f(\tilde{w}_k,X)]\right|\big|(w_k-w^*)\big|\geq c|w_k-w^*| \end{aligned} E[w2f(w~k,X)(wkw)]= E[w2f(w~k,X)](wkw) = E[w2f(w~k,X)] (wkw) cwkw
然后把这个分母的性质带入刚才的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^*|} δkcwkwwf(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}}}. δkdistance to the optimal solution cwkw wf(wk,xk) stochastic gradientE[wf(wk,X)] true gradient .
这个公式也表明了SGD的一个有趣的收敛模式:

  • relative error δ k \delta_k δk ∣ w k − w ∗ ∣ |w_k-w^*| wkw成反比
  • w k w_k wk w ∗ w^* w比较远, ∣ w k − w ∗ ∣ |w_k-w^*| wkw比较大,分母会比较大,所以SGD方法与GD方法的相对误差 δ k \delta_k δk 会比较小,也就是说stochastic gradient的行为与true gradient是比较接近的;这时SGD与GD的行为比较类似(behaves like),都会朝着最终目标迭代;
  • w k w_k wk接近 w ∗ w^* w,分母会比较小,这时SGD方法与GD方法的相对误差 δ k \delta_k δk 会比较大,这时 w k w_k wk会跑到 w ∗ w^* w的附近,有一定的随机性(收敛性在 w ∗ w* w的周边存在较多的随机性);

在这里插入图片描述
在这里插入图片描述
尽管均值的初始猜测离真实值很远,随机梯度下降(SGD)的估计可以迅速接近真实值的邻近区域。
当估计接近真实值时,它表现出一定的随机性,但仍然逐渐接近真实值。

4、一个确定性公式(A deterministic formulation)

在这里插入图片描述
在之前介绍的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=1nf(w,xi)

  • f ( w , x i ) f(w,x_i) f(w,xi)是一个参数化的函数;
  • w w w是需要被优化的参数
  • 一组实数 { x i } i = 1 n \{x_i\}_{i=1}^n { xi}i=1n,其中 x i x_i xi不必是任意random variable的一个采样,反正就是一组实数。

在这里插入图片描述
求解这个问题的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αkwJ(wk)=wkαkn1i=1nwf(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αkwf(wk,xk)

那么问题来了:

  • 这个算法是随机梯度下降(SGD)吗?它不涉及任何随机变量(random variable)或期望值(expected values)。
  • 我们应该如何使用有限的数集 { x i } i = 1 n {\{x_i\}}^{n}_{i=1} { xi}i=1n?是应该将它们按照某种顺序一个接一个地取出?还是随机地从这个集合中取出?

在这里插入图片描述
对上述问题的一个快速回答是,我们可以手动引入一个随机变量(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=1nf(w,xi)=E[f(w,X)]

  • 上面等式的后面是strict,而不是approximate。因此,这个算法是SGD。
  • The estimate converges if x k x_k xk is uniformly and independently sampled from { x i } i = 1 n \{x_i\}_{i=1}^n { xi}i=1n采样必须满足独立同分布) ;
  • x k x_k xk may repreatedly take the same number in { x i } i = 1 n \{x_i\}_{i=1}^n { xi}i=1n since it is sampled randomly。

四、BGD, MBGD, and SGD

在这里插入图片描述

  • BGD:批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,它的目的是得到一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果样本数目很大,这种方法的迭代速度很慢!
  • SGD:随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。
    • 优点:训练速度快;
    • 缺点:准确度下降,并不是全局最优;不易于并行实现。
  • MBGD:小批量梯度下降,是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是:每次迭代 使用 batch_size 个样本来对参数进行更新。

在这里插入图片描述
MBGD与BGD和SGD进行比较:

  • 与SGD相比,MBGD具有更少的随机性,因为它使用更多的采样数据,而不是像SGD中那样仅仅使用一个。·与BGD相比,MBGD在每次迭代中不要求使用全部的samples,这使其更加灵活和高效
  • if m=1, MBGD变为SGD
  • if m=n, MBGD does NOT become BGD strictly speaking, 因为MBGD使用 n n n 个样本的随机采样,而BGD使用所有n个样本。特别
    地,MBGD可能使用 { x i } i = 1 n \{x_i\}_{i=1}^n { xi}i=1n中的一个值很多次,而BGD使用每个数值一次。

1、Illustrative examples

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、Summary

在这里插入图片描述
这些结果是有用的:

我们将在下一章中看到,时差分学习算法可以被看作是随机逼近算法,因此具有类似的表达式。
它们是可以应用于许多其他领域的重要优化技术。




参考资料:
【强化学习】强化学习数学基础:随机近似理论与随机梯度下降

猜你喜欢

转载自blog.csdn.net/u013250861/article/details/134914764