深度强化学习 第 2 章 蒙特卡洛

2.1随机变量

强化学习中会经常用到两个概念: 随机变量、 观测值。
本书用大写字母表示随机变量,小写字母表示观测值,避免造成混淆。
在这里插入图片描述
下面我们定义概率质量函数(probability mass function,缩写 PMF)和概率密度函数(probability density function,缩写 PDF)

  • 概率质量函数(PMF)描述一个离散概率分布——即变量的取值范围 X 是个离散
    集合。

在这里插入图片描述

  • 概率密度函数(PDF)描述一个连续概率分布——即变量的取值范围 X 是个连续集合。
    在这里插入图片描述
    注意,跟离散分布不同,连续分布的 p(x)不等于 P(X = x)。概率密度函数有这样的性质:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.2蒙特卡洛估计

蒙特卡洛(Monte Carlo)是一大类随机算法(randomized algorithms)的总称,它们通过随机样本来估算真实值。本节用几个例子讲解蒙特卡洛算法。

2.2.1 例一:近似 π \pi π

在这里插入图片描述

在这里插入图片描述

2.2.2 例二:估算阴影部分面积

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

2.2.3 例三:近似定积分

在这里插入图片描述

一元函数的定积分

在这里插入图片描述

多元函数的定积分

在这里插入图片描述

举例讲解多元函数的蒙特卡洛积分

在这里插入图片描述

2.2.4 例四:近似期望

蒙特卡洛还可以用来近似期望,这在整本书中会反复应用。

在这里插入图片描述
下面介绍一种更好的算法。既然我们知道概率密度函数 p(x),我们最好是按照 p(x)
做非均匀抽样,而不是均匀抽样。按照 p(x) 做非均匀抽样,可以比均匀抽样有更快的收敛。具体步骤如下:

在这里插入图片描述

注 如果按照上述方式做编程实现,需要储存函数值 f(x1), · · · , f(xn)。但用如下的方式做编程实现,可以减小内存开销。
q n = 1 n ∑ i = 1 n f ( x i ) q_n=\frac{1}{n}\sum\limits_{i=1}^nf(x_i) qn=n1i=1nf(xi)
初始化 q 0 = 0 q_0=0 q0=0 从 t = 1 到 n 从t=1到n t=1n
q n = ( 1 − 1 t ) ⋅ q t − 1 + 1 t ⋅ f ( x t ) q_n=(1-\frac{1}{t})\cdot q_{t-1}+ \frac{1}{t} \cdot f(x_t) qn=(1t1)qt1+t1f(xt)

2.2.5 例五:随机梯度

我们可以用蒙特卡洛近似期望来理解随机梯度算法
在这里插入图片描述
在这里插入图片描述

在这个描述中,作者提到了经验风险最小化(empirical risk minimization)问题以及在神经网络训练中使用的随机梯度下降(SGD)方法。这些方法常用于机器学习中的模型训练,特别是在深度学习中。
让我对这个描述进行进一步解释:

  1. 经验风险最小化问题:在机器学习中,我们通常试图训练一个模型(例如,神经网络),以便它在未见的数据上表现良好。为了实现这一目标,我们定义一个损失函数(例如,交叉熵损失),该损失函数度量模型的预测与真实标签之间的误差。经验风险最小化问题的目标是找到能够最小化在训练数据集上的损失函数的模型参数。
  2. 训练数据集 X:在描述中,训练数据集 X 包含 n 个样本数据点,其中每个数据点 x_i 是一个输入样本。
  3. 替代概率密度函数 p(x):在实际应用中,样本的真实概率密度函数 p(x) 通常是未知的,难以精确建模。因此,通常会使用一个离散的概率质量函数来代替真实的概率密度函数。在这种情况下,作者使用了一个均匀概率分布,即假设每个样本数据点被选中的概率都相等,这是一种常用的假设。
  4. 最小批 SGD:为了训练神经网络,通常使用随机梯度下降(SGD)的变种,例如最小批随机梯度下降。在每一轮迭代中,最小批 SGD 从训练数据集 X 中均匀随机抽取 B 个样本,其中 B 是所谓的批量大小。然后,对这些样本计算损失函数的梯度,并使用该梯度来更新神经网络的参数 w。这个过程迭代进行多次,直到满足停止条件(通常是达到一定的迭代次数或达到损失函数的收敛)。

总之,这段描述强调了在深度学习中的模型训练过程,其中采用经验风险最小化来优化模型参数,而代替真实的概率密度函数使用均匀概率分布,同时使用最小批 SGD 来提高训练效率。这是深度学习中常见的训练方法之一。

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

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

相关文章

LINUX定时解压缩方案

需求背景 对接客户中某个上游为外包系统,外包系统每日推送压缩文件至指定文件夹下,文件格式为YYYYMMDD_RegReport.zip。由于每日采集文件,无法对接压缩包内文件,需要将推送的压缩文件每日解压为文件夹 需求分析 与客户沟通后&a…

HarmonyOS 远端状态订阅开发实例

IPC/RPC 提供对远端 Stub 对象状态的订阅机制, 在远端 Stub 对象消亡时,可触发消亡通知告诉本地 Proxy 对象。这种状态通知订阅需要调用特定接口完成,当不再需要订阅时也需要调用特定接口取消。使用这种订阅机制的用户,需要实现消…

C++初阶(1)

W...Y的主页😊 代码仓库分享💕 ​ 🍔前言: 今天我们正式进入C篇章,作为学过C语言的同志,继续学习C肯定就不会进行那些与C语言相同的学习,因为C语言的内容在C中也可以正常使用,所…

通过示例详细了解ES6导入导出模块

通过示例详细了解ES6导入导出模块 似乎许多开发人员认为 ES6 模块只不过是export、import关键字。事实上,它更加多样化。它拥有强大的功能和鲜为人知的问题。在本文中,我们将使用一些示例来了解这些内容。 示例一 // index.mjs import { default } fr…

flask vue跨域问题

问题: 调试时候跨域访问报: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response. 解决办法: 安装flask_cros from flask_cors import CORS CORS(app) app.after_request def a…

如何避免大语言模型绕过知识库乱答的情况?LlamaIndex 原理与应用简介

本文首发于博客 LLM 应用开发实践 随着 LangChain LLM 方案快速普及,知识问答类应用的开发变得容易,但是面对回答准确度要求较高的场景,则暴露出一些局限性,比如向量查询方式得到的内容不匹配,LLM 对意图识别不准。所…

【Linux】多线程

文章目录 一.Linux线程概念1.什么是线程2.二级页表3.线程的优点4.线程的缺点5.线程异常6.线程用途 二.Linux进程VS线程1.进程和线程2.进程的多个线程共享3.进程和线程的关系 三.Linux线程控制1.POSIX线程库2.线程创建3.线程等待4.线程终止5.分离线程6.线程ID及进程地址空间布局…

手机拍摄的视频噪点很多怎么办,视频怎么做降噪处理?

现如今,智能手机已经成为了我们生活中必不可少的存在。而随着智能手机越来越强大,很多人已经开始使用手机来拍摄各种类型的视频。但是由于手机的限制,很多人会发现自己拍摄的视频存在着很多的噪点。那么,我们该怎样来解决拍摄视频…

N点复序列求2个N点实序列的快速傅里叶变换

一、方法简介 通过一个点复数序列求出两个点实数序列的离散傅里叶变换,进一步提升快速傅里叶变换的效率。 二、方法详解 和是实数序列,且长度都为,定义复数序列: , 则序列和可表示为: 的离散傅…

端到端的机器学习项目(Machine Learning 研习之六)

使用真实数据 当你在研习机器学习时,最好是使用真实世界中的数据,而不是采用人工数据。巧的是,数以千计的数据集可供选择,涵盖了各种领域。 流行的开放数据存储库: OpenML.orgKaggle.compaperswithcode.com UC Irvin…

MAYA教程之模型的UV拆分与材质介绍

什么是UV 模型制作完成后,需要给模型进行贴图,就需要用到UV功能 UV编译器介绍 打开UI编译器 主菜单有一个 UV->UV编译器,可以点击打开 创建一个模型,可以看到模型默认的UV UV编译器功能使用 UV模式的选择 在UV编译器中…

fastjson 1.2.47 远程命令执行漏洞

fastjson 1.2.47 远程命令执行漏洞 文章目录 fastjson 1.2.47 远程命令执行漏洞1 在线漏洞解读:2 环境搭建3 影响版本:4 漏洞复现4.1 访问页面4.2 bp抓包,修改参数 5 使用插件检测漏洞【FastjsonScan】5.1使用説明5.2 使用方法5.2.1 右键菜单中&#xff…

pycharm中快速对比两个.py文件

在学习一个算法的时候,就想着自己再敲一遍代码,结果最后出现了一个莫名其妙的错误,想跟源文件对比一下到底是在哪除了错,之前我都是大致定位一个一个对比,想起来matlab可以快速查找出两个脚本文件(.m文件)的区别&#…

Anylogic 读取和写入Excel文件

1、选择面板-连接-Excel文件,拖入到视图中 然后在excel文件的属性中进行绑定外部excel文件。 绑定完之后,在你需要读取的地方进行写代码, //定义开始读取的行数 //这里设为2,是因为第一行是数据名称 int row12; //读取excel文件信…

23面向对象案例1

目录 1、计算连续表达式的一个过程 2、优化后的代码 为什么不能return resultn? 3、用面向对象的方法可以解决冗余的问题,但是还是不能解决result的值可以被随意修改的问题 4、解决不能被随意修改的问题,可以将类属性改成私有变量吗&…

C++位图,布隆过滤器

本期我们来学习位图,布隆过滤器等相关知识,以及模拟实现,需求前置知识 C-哈希Hash-CSDN博客 C-封装unordered_KLZUQ的博客-CSDN博客 目录 位图 布隆过滤器 海量数据面试题 全部代码 位图 我们先来看一道面试题 给 40 亿个不重复的无符号…

STM32成熟变频逆变器方案

该方案是一款成熟的变频逆变器的方案,主要是把电源从直流到3相交流的转换,包含变频控制板,逆变主板,IO板,变频控制板主控是STM32F103VET6,配套软件。每一块板子都是原理图和PCB一一对应,并且配套…

基于springboot实现音乐网站与分享平台项目【项目源码+论文说明】计算机毕业设计

摘要 本论文主要论述了如何使用JAVA语言开发一个音乐网站与分享平台 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述音乐网站与分享平台的当前背景以及系统开…

Android Studio git 取消本地 commit(未Push)

操作比较简单 1.选中项目然后依次选择:Git->Repository->Reset HEAD 2.然后再to Commit中输入HEAD^,表示退回到上一个版本。

Js高级技巧—拖放

拖放基本功能实现 拖放是一种非常流行的用户界面模式。它的概念很简单:点击某个对象,并按住鼠标按钮不放,将 鼠标移动到另一个区域,然后释放鼠标按钮将对象“放”在这里。拖放功能也流行到了 Web 上,成为 了一些更传统…