强化学习的数学原理-06随即近似理论和随机梯度下降

Robbins-Monro algorithm

迭代式求平均数的算法

1730166803753.png

Stochasticapproximation(SA):是指随机迭代的一类算法,进行求解方程或者优化的问题,SA的优势是不需要知道方程或目标函数的表达式,自然也不知道导数、梯度之类的信息.

R0bbinMonroalgorithm

  • stochasticapproximation(SA)领域具有开创性的工作
  • 大名鼎鼎的stochasticgradientdescentRM算法的一种特殊情况

下面看一个求解方程问题

g(w)=0,wherewRisthevariabletobesolved,gisRRfunction

  • 如果g的表达式已知,那么就有很多种算法可以求解
  • 另一种是表达式未知的情况,就比如神经网络,这样的问题就可以用RM算法求解

下面就看一下RM算法如何解决上面的问题

我们的目标是求解g(w)=0,最优解w

wk+1=wkakg~(wk,η),k=1,2,3,...

  • wk是对方程根的第k次估计
  • g~(wk,η)=g(wk)+ηkg~是对g的一个有噪音观测,ηk是一个噪音
  • ak是一个正系数

函数g(w)就是作为一个黑盒(blackbox),这个算法求解依赖于数据data

  • inputsequence:wk
  • Noisyoutputsequence:g~(wk,ηk)

61d519d464d2601edd51dd1596f79a4.jpg

下面是关于RM算法收敛性的一些数学解释

1730170247927.png

1730170201086.png

1730170341222.png

1730170447404.png

1730170491387.png

1730170547247.png

下面看如何把RM算法应用到meanestimation里面

En=i=1nxin=i=1n1xi+xnn=(n1)En1+xnn=En1+xnEn1n

这是最开始介绍的meanestimation

wk+1=wk+α(xkwk)

当时α=1k,最开始当α=1k时,可以显示的写出wk+1=1ki=1kxi,但当α1k时,当时无法分析wk+1的收敛性,根据RM算法可以知如果这个meanestimation是一种特殊的RM算法,那么wk+1就会收敛

下面就看一下这个meanestimation是不是一个RM算法

考虑这样一个函数g(w)=wE[X],我们的目标是求g(w)=0,如果能解决这个问题,就能得到E[X]

E[X]显示我们是不知道的(也是我们想要去求解的),但是我们可以对X进行采样也就是可以获得g~(w,x)=wx

g~(w,η)=wx=wx+E[X]E[X]=(wE[X])+(E[X]x)=g(w)+η

相对应的RM算法

wk+1=wkαkg~(wk,ηk)=wkαk(wkxk)

上面的这个式子就是所给出的meanestimation的算法

Stochastic gradient descent

SGD算法主要是去解决优化问题

minwJ(w)=E[f(w,X)]

  • w是一个待优化的参数
  • X是一个随机变量,期望(expection)是对X求的

求解这个问题下面给出3种方法,这三种方法是逐渐递进的


Method1:gradientdescent(GD)

如果要最大化一个函数可以用梯度上升

wk+1=wkαkwE[f(wk,X)]=wkαkE[wf(wk,X)]

  • αk被称为步长,是用来控制在梯度方向下降的快还是慢的
  • 这里要对梯度求期望,我们就需要模型或者数据两者其中之一

Method2:batchgradientdescent(BGD)

E[wf(wk,X)]1ni=1nf(wk,xi)

wk+1=wkαk1ni=1nf(wk,xi)

这个其实就是我们之前学习的蒙特卡洛的思想,思想比较简单,但是缺点是在每次更新wk时,都需要采样很多次


Method3:stochasticgradientdescent(SGD)

wk+1=wkαkwf(wk,xk)

注意GD公式中的X变成了对X的一次采样xk

  • GD中用的是truegradientE[wf(wk,X)],但是这个真正的梯度是不知道的,所以就用一个stochasticgradientwf(wk,xk)来代替,,之所以被称为stochastic是因为这里面有一个对X随机的采样
  • BGD相比,SGD就是把BGD中的n变成了1

下面是一个用SGD优化的例子

minwJ(w)=E[f(w,X)]=E[12∣∣∣wX2]

wheref(w,X)=12∣∣∣wX2f(w,X)=wX

这个问题的解w=E[X]

下面是推导:

我们知道J(w)要达到最小值,有一个必要条件,就是对J(w)求梯度应该等于0,也就是

J(w)=E[f(w,X)]=E[f(w,X)]=E[wX]=wE[X]=0

于是

w=E[X]

GD

(1)wk+1=wkαkwJ(wk)(2)=wkαkE[wf(wk,X)](3)=wkαkE[wkX]

SGD

wk+1=wkαkwf(wk,xk)=wkα(wkxk)


GDSGD

wk+1=wkαkE[wf(wk),X]

wk+1=wkαkwf(wk),xk

直接用stochasticgradient去近似truegradient

既然是近似两者之间存在有误差,那么两者之间的关系如下

wf(wk,xk)=E[wf(w,X)]+wf(wk,xk)E[wf(w,X)]

wf(wk,xk)E[wf(w,X)]

那么SGD能否找到最优解呢?也就是SGD能否收敛

可以通过证明SGDRM解决这个问题

1730178996339.png

1730179060410.png

于是我们可以用RM算法的收敛性来分析SGD算法的收敛性

1730179093923.png


1730179355461.png

1730179430999.png

1730179489369.png

结论:当wkw距离比较远时,SGDGD的行为是比较类似的

BGD、MBGD、 and SGD

1730179942185.png

可以认为MBGD包括了SGDBGD

minibatch1的时候就变成了SGD

minibatch比较大的时候就变成了BGD

相比于SGD,MBGD的随机性比较小,因为用了更多的数据去代替一个数据.

相比于BGD,MBGD的随机性会比较大,需要的数据又比较少,效率和性能是比较高的.

1730180194126.png


1730180269427.png

1730180361448.png

Summary

  • meanestimation使用一组数xk计算E[X]wk+1=wk+1k(wkxk)
  • RMsolveg(w)=0usingg~(wk,ηk)wkk+1=wkakg~(wk,ηk)
  • SGDminimizeJ(w)=E[f(wk,X)]usingwf(wk,xk),wk+1=wkαkwf(wk,xk)
posted @   cxy8  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示