首页 > 其他分享 >强化学习的数学原理-06随即近似理论和随机梯度下降

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

时间:2024-10-29 14:00:40浏览次数:5  
标签:mathbb 06 梯度 nabla frac 算法 数学原理 alpha SGD

目录

Robbins-Monro algorithm

迭代式求平均数的算法

1730166803753.png

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

\(R0bbin-Monro \; algorithm\)

  • 是\(stochastic \; approximation(SA)\)领域具有开创性的工作
  • 大名鼎鼎的\(stochastic \; gradient \; descent\)是\(RM\)算法的一种特殊情况

下面看一个求解方程问题

\[g(w)=0, where \; w \in \mathbb{R} \; is \; the \; variable \; to \; be \; solved ,g \; is \;\mathbb{R} \rightarrow \mathbb{R} \; function \]

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

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

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

\[w_{k+1}=w_k-a_k\tilde{g}(w_k,\eta),k=1,2,3,... \]

  • \(w_k\)是对方程根的第\(k\)次估计
  • \(\tilde{g}(w_k,\eta)=g(w_k)+\eta_k\),\(\tilde{g}\)是对\(g\)的一个有噪音观测,\(\eta_k\)是一个噪音
  • \(a_k\)是一个正系数

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

  • \(input \;sequence:{w_k}\)
  • \(Noisy \; output \; sequence:{\tilde{g}(w_k,\eta_k)}\)

61d519d464d2601edd51dd1596f79a4.jpg

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

1730170247927.png

1730170201086.png

1730170341222.png

1730170447404.png

1730170491387.png

1730170547247.png

下面看如何把\(RM\)算法应用到\(mean \; estimation\)里面

\[\mathbb{E}_n = \frac{\sum_{i=1}^nx_i}{n}=\frac{\sum_{i=1}^{n-1}x_i+x_n}{n}=\frac{(n-1)\mathbb{E_{n-1}} + x_n}{n}=\mathbb{E}_{n-1}+\frac{x_n-\mathbb{E}_{n-1}}{n} \]

这是最开始介绍的\(mean \; estimation\)

\[w_{k+1} = w_k + \alpha(x_k-w_k) \]

当时\(\alpha=\frac{1}{k}\),最开始当\(\alpha=\frac{1}{k}\)时,可以显示的写出\(w_{k+1}=\frac{1}{k}\sum_{i=1}^{k}x_i\),但当\(\alpha \neq \frac{1}{k}\)时,当时无法分析\(w_{k+1}\)的收敛性,根据\(RM\)算法可以知如果这个\(mean \; estimation\)是一种特殊的\(RM\)算法,那么\(w_{k+1}\)就会收敛

下面就看一下这个\(mean \; estimation\)是不是一个\(RM\)算法

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

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

\(\tilde{g}(w,\eta)=w-x=w-x+\mathbb{E}[X]-\mathbb{E}[X]=(w-\mathbb{E}[X])+(\mathbb{E}[X]-x)=g(w)+\eta\)

相对应的\(RM\)算法

\[w_{k+1}=w_k-\alpha_k\tilde{g}(w_k, \eta_k)=w_k-\alpha_k(w_k-x_k) \]

上面的这个式子就是所给出的\(mean \; estimation\)的算法

Stochastic gradient descent

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

\[\min_w J(w)=\mathbb{E}[f(w,X)] \]

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

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


\(Method \; 1:gradient \; descent(GD) \; 梯度下降\)

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

\[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)] \]

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

\(Method \; 2:batch \;gradient \; descent(BGD) \; 批量梯度下降\)

\[\mathbb{E}[\nabla_wf(w_k,X)] \approx \frac{1}{n}\sum_{i=1}{n}\nabla f(w_k,x_i) \]

\[w_k+1=w_k-\alpha_k \frac{1}{n}\sum_{i=1}{n}\nabla f(w_k,x_i) \]

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


\(Method \; 3:stochastic \;gradient \; descent(SGD) \; 随机梯度下降\)

\[w_{k+1}=w_k-\alpha_k\nabla_wf(w_k,x_k) \]

注意\(GD\)公式中的\(X\)变成了对\(X\)的一次采样\(x_k\)

  • 在\(GD\)中用的是\(true \; gradient \; \mathbb{E}[\nabla_wf(w_k,X)]\),但是这个真正的梯度是不知道的,所以就用一个\(stochastic \; gradient \; \nabla_w f(w_k, x_k)\)来代替,,之所以被称为\(stochastic\)是因为这里面有一个对\(X\)随机的采样
  • 和\(BGD\)相比,\(SGD\)就是把\(BGD\)中的\(n\)变成了\(1\)

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

\[\min_w J(w)=\mathbb{E}[f(w,X)]=E\left[ \frac{1}{2}\mid\mid \mid w - X \mid \mid^2 \right] \]

\[where \; f(w,X)=\frac{1}{2}\mid\mid \mid w - X \mid \mid^2 \quad \nabla f(w,X)=w-X \]

这个问题的解\(w^* =\mathbb{E}[X]\)

下面是推导:

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

\[\nabla J(w) = \nabla \mathbb{E}[f(w,X)]= \mathbb{E}[\nabla f(w,X)]=\mathbb{E}[w-X]=w-\mathbb{E}[X]=0 \]

于是

\[w^*=\mathbb{E}[X] \]

\(GD算法:\)

\[\begin{align} w_{k+1} &= w_k - \alpha_k \nabla_w J(w_k) \\ &= w_k - \alpha_k \mathbb{E}[\nabla_wf(w_k,X)] \\ &= w_k - \alpha_k\mathbb{E}[w_k-X] \end{align} \]

\(SGD算法:\)

\[w_{k+1}=w_k-\alpha_k \nabla_wf(w_k,x_k)=w_k-\alpha (w_k - x_k) \]


从\(GD\)到\(SGD\)

\[w_{k+1}=w_k-\alpha_k \mathbb{E}[\nabla_wf(w_k),X] \]

\[w_{k+1}=w_k-\alpha_k \nabla_wf(w_k),x_k \]

直接用\(stochastic \; gradient\)去近似\(true \; gradient\)

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

\[\nabla_w f(w_k,x_k) = \mathbb{E}[\nabla_w f(w,X)] +\nabla_w f(w_k,x_k) - \mathbb{E}[\nabla_wf(w,X)] \]

\[\nabla_w f(w_k,x_k) \neq \mathbb{E}[\nabla_w f(w,X)] \]

那么\(SGD\)能否找到最优解呢?也就是\(SGD算法\)能否收敛

可以通过证明\(SGD算法\)是\(RM算法\)解决这个问题

1730178996339.png

1730179060410.png

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

1730179093923.png


1730179355461.png

1730179430999.png

1730179489369.png

结论:当\(w_k\)和\(w^*\)距离比较远时,\(SGD\)和\(GD\)的行为是比较类似的

BGD、MBGD、 and SGD

1730179942185.png

可以认为\(MBGD\)包括了\(SGD\)和\(BGD\)

当\(mini-batch\)为\(1\)的时候就变成了\(SGD\)

当\(mini-batch\)比较大的时候就变成了\(BGD\)

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

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

1730180194126.png


1730180269427.png

1730180361448.png

Summary

  • \(mean \; estimation:\)使用一组数\({x_k}\)计算\(\mathbb{E}[X]\),\(w_{k+1} = w_k + \frac{1}{k}(w_k-x_k)\)
  • \(RM算法\):\(solve \; g(w)=0 \; using \; {\tilde{g}(w_k,\eta_k)}\),\(w_k{k+1}=w_k-a_k{\tilde{g}(w_k,\eta_k)}\)
  • \(SGD算法:minimize \; J(w)=\mathbb{E}[f(w_k, X)],using \; {\nabla_wf(w_k,x_k)}, \; w_{k+1}=w_k-\alpha_k \nabla_w f(w_k, x_k)\)

标签:mathbb,06,梯度,nabla,frac,算法,数学原理,alpha,SGD
From: https://www.cnblogs.com/cxy8/p/18512936

相关文章

  • 强化学习的数学原理-05蒙特卡洛方法
    目录MCBasicMCExploringStartsMCEpsilon-GreedyMCBasic从\(model\:base\:\)的\(Reinforcement\:learning\:\)过渡到\(model\:free\:\)的\(\:Reinforcement\:learning\:\)最难以理解的是怎么在没有模型的情况下去估计一些量。这里面就有一个重要的\(\:idea......
  • 06 寄存器与内存
    alu计算出来的结果需要存储起来随机存取存储器randomaccessmemory,只在有电源情况下存储,断电则损失数据;另一种叫持久存储,可长期存储;首先设计能存储1个字节的电路,让它能记住一位数字(无论输入0,1,都能稳定输出原来的数字),然后一根输入线,能更改输入数字。之后无论输入0或1,都......
  • Python实现图像(边缘)锐化:梯度锐化、Roberts 算子、Laplace算子、Sobel算子的详细方法
    目录Python实现图像(边缘)锐化:梯度锐化、Roberts算子、Laplace算子、Sobel算子的详细方法引言一、图像锐化的基本原理1.1什么是图像锐化?1.2边缘检测的基本概念二、常用的图像锐化算法2.1梯度锐化2.1.1实现步骤2.2Roberts算子2.2.1实现步骤2.3Laplace算子2.3.1实......
  • 强化学习的数学原理-04值迭代与策略迭代
    目录ValueiterationalgorithmPolicyiterationalgorithmTruncatedpolicyiterationalgorithmValueiterationalgorithm\[v_{k+1}=f(v_k)=\max_{\pi}\left(r_{\pi}+\gammaP_{\pi}v_k\right)\:,\:k\:=\:1,2,3,...\]算法可以被分为两步去做:\(Step1......
  • WPF入门_06资源和样式
    目录1、资源基础介绍2、静态资源和动态资源区别3、资源字典4、共享资源的方法5、在CustomControlLibrary中定义和使用共享资源6、样式7、样式触发器1、资源基础介绍尽管每个元素都提供了Resources属性,但通常在窗口级别上定义资源,如下定义一个字符串资源  <Wi......
  • 学期2024-2025-1 学号20241306《计算机基础与程序设计》第5周学习总结
    学期2024-2025-1学号20241306《计算机基础与程序设计》第5周学习总结作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))这个作业要求在哪里[2024-2025-1计算机基础与程序设计第5周作业(https......
  • SpringCloud Alibaba 06 (配置中心 Nacos Config)
    目录了解微服务常用的概念了解项目架构演变掌握微服务环境搭建掌握微服务治理组件-NacosDiscovery掌握微服务负载均衡调度组件-Ribbon掌握微服务远程调度组件-Feign掌握微服务流控容错组件-Sentinel掌握微服务网关组件-Gateway掌握微服务链路追踪组件-Sleuth&Zipkin掌握......
  • c#基于ASP.NET网上订餐系统的设计与实现,计算机毕业设计源码 006,计算机程序开发定制
    摘 要自从计算机发展开始,计算机软硬件相关技术的发展速度越来越快,在信息化高速发展的今天,计算机应用技术似乎已经应用到了各个领域。在餐饮行业,除了外卖以外就是到店里就餐,在店里就餐如果需要等待点餐的话,用户的体验度就会急剧下降,很多餐饮店也开始开发网上订餐的系统,这样......
  • 【代码随想录Day54】图论Part06
    冗余连接题目链接/文章讲解:代码随想录importjava.util.Scanner;publicclassMain{privateintnumberOfNodes;//节点数量privateint[]parent;//存储每个节点的父节点//构造函数初始化并查集publicMain(intsize){numberOfNod......
  • 什么是随机梯度下降
    随机梯度下降(StochasticGradientDescent,SGD)是一种优化算法,用于寻找函数的局部最小值。与传统的梯度下降方法不同,SGD在每一步中仅使用单个训练样本来计算梯度。它有助于减小计算成本,并可能逃离局部优异解。主要应用领域包括机器学习中的线性回归、逻辑回归和神经网络训练等。......