强化学习:随机近似与随机梯度下降

news2024/11/15 8:45:28

mean estimation

  通过前面的学习,我们知道可以通过很多采样来求期望。而求 x ˉ \bar x xˉ 的方法由两种,一是直接将采样数据相加再除以个数,但这样的方法运行效率较低。
在这里插入图片描述
第二种方法是迭代式的计算,即来几个数据就算几个数据,具体计算如下:
在这里插入图片描述

随机近似法:Robbins-Monro(RM)

  假设我们现在需要求解方程:
g ( w ) = 0 g(w)=0 g(w)=0

那么就有两种情况,一种是函数表达式我们知道,而另一种是表达式我们不知道。表达式不知道,怎么求解呢?实际上,RM 算法可以求解。下面,以求解方程为例,我们来学习 RM 算法,RM 算法是一种迭代算法。
在这里插入图片描述
其中, a k a_k ak 是一个正系数。 { w k } {\{w_k}\} {wk} 是输入序列, g ~ { w k , η k } \widetilde{g}{\{w_k,\eta _k}\} g {wk,ηk} 是输出序列。为了方便理解,我们给出一个具体的例子:
g ( w ) = t a n h ( w − 1 ) g(w)=tanh(w-1) g(w)=tanh(w1)
我们知道 g ( w ) g(w) g(w) 的真实解 w ∗ w^* w=1,给定初始值 w 1 w_1 w1=3, a k = 1 / k a_k=1/k ak=1/k η k = 0 \eta _k=0 ηk=0,计算得到的结果 w ∗ = 1 w^*=1 w=1 如下:
在这里插入图片描述

RM算法:收敛性分析

  上面的分析是直观的,并不严格,现在我们给出下列数学严格的收敛条件。

在这里插入图片描述
  条件一:表明要求函数 g g g 是一个递增函数,其梯度是有界的。

  条件二:关于系数 a k a_k ak
   a k a_k ak 的和应该等于无穷,为什么?我们将 MR 算法分别写出来,在相加可以得到如下式子:
在这里插入图片描述
表明,如果 a k a_k ak 的和小于无穷,那么 a k g ~ ( w k , η k ) a_k\widetilde{g}{(w_k,\eta _k)} akg (wk,ηk) 的和是有界的,则说明 w 1 w_1 w1 不能随便定,而 a k a_k ak 的和等于无穷,使得我们可以放心选用初始值 w 1 w_1 w1

   a k 2 a_k^2 ak2 的和应该小于无穷,表明 a k a_k ak一定会收敛到0,为什么呢?
在这里插入图片描述
可知,如果 a k a_k ak 趋近于0,那么就有 a k g ~ ( w k , η k ) a_k\widetilde{g}{(w_k,\eta _k)} akg (wk,ηk) 趋近于0,即有 w k + 1 − w k w_{k+1}-w_k wk+1wk趋近于0。

  我们会发现在许多强化学习算法中,通常会选择 a k a_k ak 作为一个足够小的常数,因为 1/k 会越来越小导致算法效率较低 。尽管在这种情况下第二个条件没有被满足,但算法仍然可以有效地工作,因为实际迭代的次数是有限。

  条件三:关于系数 η \eta η,表明 η \eta η 的期望为0,方差有界。

随机梯度下降法:SGD

  随机梯度下降(SGD)算法 广泛应用于机器学习领域和RL领域,SGD是一种特殊的RM算法,而均值估计算法是一种特殊的SGD算法。

  假设我们目的是求解优化问题,有方程:
在这里插入图片描述
w w w 是要优化的参数。 X X X 是一个随机变量。期望是关于X的。其中 w w w X X X 既可以是标量,也可以是向量。函数 f ( . ) f(.) f(.) 是标量。

  现在,我们的目标是要找到最优的 w w w 使得目标函数达到最小。求解的方法有三种:

梯度下降(GD)

在这里插入图片描述
GD 算法思路就是沿着梯度的方向去进行下降找到最小值,从而使得到的解逼近真实值 w ∗ w^* w a k a_k ak 为步长,控制下降的速度。其特点是要知道函数梯度,如果不知道梯度函数怎么求解呢?

批量梯度下降(BGD)

  批量梯度下降法是利用数据来避免求解梯度函数。通过大量采样,最后用平均值来近似代替梯度函数的期望,如下:

在这里插入图片描述
但存在的问题是,对于每个 w k w_k wk 都需要采样许多样本。

随机梯度下降法(SGD)

在这里插入图片描述
  随机梯度下降法与梯度下降法相比:用 ▽ k f ( w k , x k ) ▽_kf(w_k,x_k) kf(wk,xk)取代真实梯度 E [ ▽ k f ( w k , x k ) ] E[▽_kf(w_k,x_k)] E[kf(wk,xk)],与批处理梯度下降法相比,n=1,即只采样一次。

.
  我们考虑这样一个优化例子:
在这里插入图片描述
   我们知道 优化的解 w ∗ = E [ X ] w^*=E[X] w=E[X],我们知道 J ( m ) J(m) J(m) 要达到最小值,它的一个必要条件是 ▽ J ( w ) = 0 ▽J(w)=0 J(w)=0 ,可以得到 w ∗ = E [ X ] w^*=E[X] w=E[X]

   用梯度下降(GD)求解:
在这里插入图片描述

   用梯度下降(GD)求解:
在这里插入图片描述

SGD算法:收敛性分析

  SGD的一个基本思路就是从 GD 到 SGD ,因为 E 是不知道的,所以干脆就把 E 给去掉,然后用一个采样来近似代替这个 E,用随机梯度代替真实梯度,这就是SGD。我们很容易知道,它们之间肯定是存在误差,如下:
在这里插入图片描述

存在误差的种情况下,用SGD是否能够找到最优的那个解呢?答案是肯定的,那么为什么呢?实际上,SG是一个特殊的RM算法。证明如下:

  SGD要解决问题是去优化求解这样一个方程,我们可以将这个优化问题转换成一个求解方程 g ( w ) g(w) g(w) 的问题,然后就用 RM 算法求解。所以说SGD算法实际上是求解解方程 g ( w ) g(w) g(w) 根的特殊问题的一个RM算法。

在这里插入图片描述

  因为SGD是一个特殊的RM算法,那么前面RM算法的收敛性就可以应用到SGD的收敛性分析当中。
在这里插入图片描述

SGD算法的性质

  SGD是用随机梯度代替真实梯度,而随机梯度具有随机性,那会不会造成 SGD 收敛的随机性也比较大?为回答这个问题,用相对误差来分析随机和批处理梯度两者之间,利用拉格朗日中值定理得到如下式子:

在这里插入图片描述
我们假设 f f f 的二阶梯度是一个正数
在这里插入图片描述
得到以下推式:
在这里插入图片描述
根据上述方程,我们可以得到 SGD 的一个有趣的收敛性质。 相对误差 δ k δ_k δk ∣ w k − w ∗ ∣ |w_k - w^*| wkw成反比;当 ∣ w k − w ∗ ∣ |w_k - w^*| wkw 较大时,得到的相对误差 δ k δ_k δk 较小,SGD 类似于 GD 。当 w k w_k wk 接近 w ∗ w^* w时,相对误差 δ k δ_k δk 可能较大,并且在 w ∗ w^* w 附近的收敛表现出更多的随机性。
.
  现在,我们以一个例子来理解这个性质。 X ∈ R 2 X∈R^2 XR2 表示平面上的一个随机位置。其分布在以原点为中心、边长为20的正方形区域内均匀分布,现在随机采样100个样本 { x i } i = 0 100 {\{x_i}\}_{i=0}^{100} {xi}i=0100,其真实均值为 E[X] = 0,现在我们用上述算法进行均值估计计算,结果如下:

在这里插入图片描述
可以发现,当均值的初始猜测与真实值相差较远,SGD估计可以快速接近真实值的邻域,尽管当估计接近真实值时,它表现出一定的随机性,但仍然逐渐接近真实值。
.
  我们可能会经常会遇到一种确定性的SGD公式,没有涉及任何随机变量,这样的问题怎么求解呢?如下图:
在这里插入图片描述
f ( w , x i ) f(w, x_i) f(w,xi) 是一个参数化函数, w w w 是要优化的参数。
{ x i } i = 0 n {\{x_i}\}_{i=0}^{n} {xi}i=0n 是一组实数,其中 x i x_i xi 不是任何随机变量的样本。

.
  那么,我们能不能用 SGD 算法进行求解呢?我们用其平均值 x k x_k xk 来代替求平均的过程,得到的式子与 SGD 非常相似,但不同的是其中没有涉及随机变量。为了可以使用 SGD 算法,我们手动引入随机变量,我们就引入一个随机变量 X X X , X X X 是定义在集合 { x i } i = 0 n {\{x_i}\}_{i=0}^{n} {xi}i=0n 上的, x i x_i xi 服从均匀分布,每个被取到的概率都是 1 / n 1/n 1/n 。这样我们就转换成了 E [ f ( w , X ) ] E[f(w,X)] E[f(w,X)],求解这个问题自然也就是 SGD 算法。如下:
在这里插入图片描述

对比:BGD、MBGD、SGD

  假设我们想要最小化 J ( w ) = E [ f ( w , X ) ] J(w) = E[f(w,X)] J(w)=E[f(w,X)],给定一组随机样本 { x i } i = 0 n {\{x_i\}_{i=0}^n} {xi}i=0n。分别用批量梯度下降(BGD)、随机梯度下降(SGD)和小批量梯度下降(MBGD)解决这个问题。

在这里插入图片描述

  在BGD算法中,所有样本在每次迭代中都被使用。当 n n n 很大时, ( 1 / n ) ∗ Σ i = 1 n ▽ w f ( w k , x i ) (1/n) * Σ_{i=1}^n▽wf(w_k,x_i) (1/n)Σi=1nwf(wk,xi) 接近真实梯度 E [ ▽ w f ( w k , x i ) ] E[▽wf(w_k,x_i)] E[wf(wk,xi)]

  在MBGD算法中, I k I_k Ik 1 , . . , n {1,..,n} 1,..,n 的一个子集,其大小为 ∣ I k ∣ = m |I_k| = m Ik=m,集合 I k I_k Ik通过 m m m 次独立采样得到。

  在SGD算法中, x k x_k xk 是从 { x i } i = 0 n {\{x_i\}_{i=0}^n} {xi}i=0n中随机采样得到的。

总结:
  一定程度上,MGBD 包括了 BGD 与 SGD 。当 m = 1 m=1 m=1 时就变成了SGD ,当 m m m 较大时不完全变成 BGD 因为MBGD使用的是随机获取的n个样本,而BGD使用所有n个样本,其中MBGD可能多次使用同一个值,而BGD只使用每个数字一次。相比与SGD,MBGD具有较少的随机性,因为它使用更多的样本,而不仅仅是SGD中的一个样本;与BGD相比,MBGD不需要在每次迭代中使用所有样本,使其更加灵活和高效。

案例
   在给定的 x i {x_i} xi,我们的目标是计算均值 ( 1 / n ) ∗ Σ i = 1 n ∣ ∣ w − x i ∣ ∣ (1/n) * Σ_{i=1}^n||w-x_i|| (1/n)Σi=1n∣∣wxi∣∣。这个问题可以等价地表述为以下优化问题:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/672289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++----析构函数,拷贝构造函数(6)

析构函数 概念 析构函数是一个特殊的函数,函数名和类名相同,但是要在前面加~,既没有参数,也没有返回值。析构函数在对象被销毁自动调用一次 如果类中没有析构函数,编译器会生成一个什么也不做的析构函数 如果类中有…

磁盘调度算法(期末复习版)

文章目录 一. FCFS 调度(先来先服务)二.SSTF调度(最短寻道时间优先)三. SCAN 调度(电梯算法)四. C-SCAN 调度(循环扫描)五. LOOK 调度 一. FCFS 调度(先来先服务) 磁盘调度的最简单形式当然是先来先服务(FCFS)算法。虽然这种算法比较公平,但…

MySQL千亿级数据生产环境扩容

MySQL千亿级数据生产环境扩容 数据库平滑扩容1. 扩容方案剖析1.1 扩容问题1.2 停机方案1.3 停写方案1.4 日志方案1.5 双写方案(中小型数据)1.6 平滑2N方案(大数据量) 2. 平滑2N扩容方案实践2.1 实现应用服务级别的动态扩容2.1.1 M…

时间序列表征之SAX(Symbolic Aggregate approXimation)算法

前言 对于研究时间序列表征、时间序列分类,时间序列状态转换等方向,常用的简单粗暴的一个方法是SAX (Symbolic Aggregate approXimation), 由Jessica Lin等在2003年发表的论文中提出的,该论文的题目为《A Symbolic Representation of Time Se…

敏捷方法中测试人员的价值?

敏捷方法在软件开发中受到青睐,特别是在互联网应用服务系统的开发中,越来越多的公司采用敏捷方法,包括XP、Scrum、Lean、Crystal、FDD等。具体的敏捷方法在操作时有一些区别,但基本思想是一致的,如客户至上、拥抱变化、…

yolov8 源码解读 (part1: backbone, head)

yolov8 除了目标检测之外,还有实例分割功能, 这里解读检测和分割代码。 先上一张结构图,这个图里没有分割模块,后面会在代码里说明分割模块。 本篇解读红色框内的部分。 可以看到每个模块右边都有一个数字:0,1,… 这个数字是模块的顺序编号,按0,1,…,21的顺序进行,而…

澎湃新闻对话腾讯丁珂:从“治已病”到“治未病”,企业需快速构建“安全免疫力”

作者:澎湃新闻记者 周頔 随着数字化进程加快,企业数字化体系的边界在不断拓展,安全风险和挑战不断增加,传统被动防御的安全应对常显疲态,数字安全时代亟待建立全新的安全范式。 6月13日,腾讯安全联合IDC等…

华为某正式员工哀叹:自己被劝退了,同期入职的OD还好好的,正式员工还没外包稳定!...

在打工人心中,正式员工的含金量远远高于外包,但最近却有人爆料:华为正式员工还没外包稳定! 一位硕士毕业、工作两年的华为正式员工说,自己被劝退了,但隔壁组同期入职的OD还好好的,正式员工竟然还…

Instant-NGP稿子

Instant-NGP是英伟达2022年发表的一篇论文,全称是使用哈希编码的多分辨率的即时神经图形原语 那这篇文章呢 这篇文章提出了一种对输入做哈希encoding的方式,来让很小的网络也能学到很高的质量。 这个图片是文中的一个图片,表现了可以在训练…

大数据Doris(四十六):Stream Load基本原理和语法介绍

文章目录 Stream Load基本原理和语法介绍 一、基本原理 二、语法与结果 1、语法 2、返回结果 Stream Load基本原理和语法介绍 Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。Stream load 同步执行导入…

简要介绍 | 图像聚类:概念、原理与方法

注1:本文系“简要介绍”系列之一,仅从概念上对图像聚类进行非常简要的介绍,不适合用于深入和详细的了解。 图像聚类:概念、原理与方法 Cluster Analysis | NVIDIA Developer 1. 背景介绍 图像聚类(Image Clustering&a…

波浪理论与伦敦金价走势分析

艾略特波浪理论(Elliott Wave Theory)是一套能应用于伦敦金走势分析的理论,它认为市场的走势会不断重复一种模式,每一周期由5个上升浪和3个下跌浪组成。波浪理论将不同规模的趋势分成了九大类,最长的超大循环波(Grand supercycle) 是横跨200年…

Git版本管理实用指南

特别声明,本博文仅作个人日常使用Git参考之用。主要内容总结来源于:廖雪峰官网的Git教程🌻 🔎 什么是Git Git是目前世界上最先进的分布式版本控制系统,是Linux的创建者用C开发的。GitHub网站2008上线,它为…

ELKB架构安装

文章目录 安装JAVA JDK安装ES手动安装Problem: 无法访问localhost:9200Problem: 用户名密码验证 docker安装ES文件夹内容 安装node.js安装grunt 安装kibanaLogstashBeat 安装JAVA JDK https://www.java.com/en/ 添加环境变量C:\Program Files\Java\jdk-11.0.1\bin Elasticse…

在线广告系统工程架构

一、广告系统概览 广告投放系统:供广告主使用,核心功能包括会员续费、广告库管理、设定推广条件、设置广告出价、查看投放效果等。广告运营后台:供平台的产品运营使用,核心功能包括广告位管理、广告策略管理、以及各种运营工具。广…

HarmonyOS学习路之开发篇—多媒体开发(相机开发 一)

HarmonyOS相机模块支持相机业务的开发,开发者可以通过已开放的接口实现相机硬件的访问、操作和新功能开发,最常见的操作如:预览、拍照、连拍和录像等。 基本概念 相机静态能力 用于描述相机的固有能力的一系列参数,比如朝向、支持…

华为OD机试之按单词下标区间翻转文章内容(Java源码)

文章目录 按单词下标区间翻转文章内容题目描述输入描述输出描述示例代码 按单词下标区间翻转文章内容 题目描述 给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。 请翻转片段中指定区间的单词顺序并返回翻转后的内…

芯片工程师求职题目之设计基础篇(1)

1. 进制转换 会算数值在二进制、八进制、十进制以及十六进制之间的任意转换。 会算数值的正码、反码、补码、BCD码。 2. 什么是格雷码(Gray code),它有什么优点。 在一组二进制编码中,若任意两个相邻的数值还有1位二进制数不同,则称这种编…

算法程序设计 之 最长公共子序列(4/8)

一、实验目的: 理解并掌握动态规划算法的基本思想和设计步骤。 实验内容若给定序列X{x1,x2,...,xm},Z{z1,z2,...,zk},若Z是X的子序列,当且仅当存在一个严格递增下标序列{i1,...,ik},使得对于所有j1,2,...,k有:zjxij。例如&#x…

智能家居APP软件开发有何优势?

传统家居行业营销模式已经无法满足现代人多样化个性化的需求,也跟不上互联网时代的发展步伐了,很多传统家居行业都陷入了营销困境。通过智能家居APP软件开发,可以利用互联网改造传统模式,探索新的发展模式,可以说智能家…