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

文章详细介绍了强化学习中涉及到的随机近似理论,包括随机梯度下降(SGD)和Robbins-Monro算法。这些算法在处理如均值估计和优化问题时,通过迭代和增量计算逐步逼近目标。文中还探讨了算法的收敛性和不同步长(学习率)的选择对收敛速度的影响,以及批量梯度下降(BGD)、小批量梯度下降(MBGD)与SGD的区别。

Stochastic Approximation and Stochastic Gradient Descent

举个例子

首先回顾mean estimation:

  • 考虑一个random variable X。
  • 目标是估计 E [ X ] \mathbb{E}[X] E[X]
  • 假设已经有了一系列随机独立同分布的样本 { x i } i = 1 N \{x_i\}_{i=1}^N { xi}i=1N
  • X的expection可以被估计为 E [ X ] ≈ x ˉ : = 1 N ∑ i = 1 N x i \mathbb{E}[X]\approx \bar{x}:=\frac{1}{N}\sum_{i=1}^N x_i E[X]xˉ:=N1i=1Nxi

已经知道这个估计的基本想法是Monte Carlo estimation,以及 x ˉ → E \bar{x}\rightarrow \mathbb{E} xˉE,随着 N → ∞ N\rightarrow \infty N。这里为什么又要关注mean estimation,那是因为在强化学习中许多value被定义为means,例如state/action value。

新的问题:如何计算mean b a r x bar{x} barx E [ X ] ≈ x ˉ : = 1 N ∑ i = 1 N x i \mathbb{E}[X]\approx \bar{x}:=\frac{1}{N}\sum_{i=1}^N x_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 k − 1 ∑ i = 1 k − 1 x i , k = 2 , 3 , . . . w_k=\frac{1}{k-1}\sum_{i=1}^{k-1} x_i, k=2,3,... wk=k11i=1k1xi,k=2,3,...,我们要建立 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 ) w_{k+1}=\frac{1}{k}\sum_{i=1}^k x_i=\frac{1}{k}(\sum_{i=1}^{k-1}x_i+x_k)=\frac{1}{k}((k-1)w_k+x_k)=w_k-\frac{1}{k}(w_k-x_k) 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 ) w_{k+1}=w_k-\frac{1}{k}(w_k-x_k) wk+1=wkk1(wkxk)
我们使用上面的迭代算法增量式地计算x的mean:
增量式求和
这样就得到了一个求平均数的迭代式的算法。算法的优势是在第k步的时候不需要把前面所有的 x i x_i xi全部加起来再求平均,可以在得到一个样本的时候立即求平均。另外这个算法也代表了一种增量式的计算思想,在最开始的时候因为 k k k比较小, w k ≠ E [ X ] w_k\ne \mathbb{E}[X] wk=E[X],但是随着获得样本数的增加,估计的准确度会逐渐提高,也就是 w k → E [ X ]  as  k → N w_k\rightarrow \mathbb{E}[X] \text{ as } k\rightarrow N wkE[X] as kN

更进一步地,将上述算法用一个更泛化的形式表示为: 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),其中 1 / k 1/k 1/k被替换为 α k > 0 \alpha_k >0 αk>0

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

Robbins-Monro algorithm

算法描述

Stochastic approximation (SA):

  • SA代表了一大类的stochastic iterative algorithm,用来求解方程的根或者优化问题。
  • 与其他求根相比,例如gradient-based method, SA的强大之处在于:它不需要知道目标函数的表达式,也不知道它的导数或者梯度表达式。

Robbins-Monro (RM) algorithm:

  • This is a pioneering work in the field of stochastic approximation.
  • 著名的stochastic gradient descent algorithm是RM算法的一个特殊形式。
  • It can be used to analyze the mean estimation algorithms introduced in the beginning。

举个例子

问题声明:假设我们要求解下面方程的根 g ( w ) = 0 g(w)=0 g(w)=0,其中 w ∈ R w\in \mathbb{R} wR是要求解的变量, g : R → R g:\mathbb{R}\rightarrow \mathbb{R} g:RR是一个函数.

  • 许多问题最终可以转换为这样的求根问题。例如,假设 J ( w ) J(w) J(w)是最小化的一个目标函数,然后,优化问题被转换为 g ( w ) = ∇ w J ( w ) = 0 g(w)=\nabla_w J(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的表达式是未知的?例如the function由一个artificial neural network表示

这样的问题可以使用Robbins-Monro(RM)算法求解: w k + 1 = w k − a k g ~ ( w k , η k ) , k = 1 , 2 , 3 , . . . w_{k+1}=w_k-a_k\tilde{g}(w_k, \eta_k), k=1,2,3,... wk+1=wkakg~(wk,ηk),k=1,2,3,...其中

  • w k w_k wk是root的第k次估计
  • g ~ ( w k , η k ) = g ( w k ) + η k \tilde{g}(w_k,\eta_k)=g(w_k)+\eta_k
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值