深度强化学习 第 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,一经查实,立即删除!

相关文章

mkdir-创建目录文件

mkdir命令来自英文词组”make directories“的缩写,其功能是用来创建目录文件。使用方法简单,但需要注意若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。 语法格式:mkdir [参数] 目录名 参数说明-m创建目录的同时设置权限-p递归创建多级目录-v显…

课程表系列

相关题目: 207. 课程表 210. 课程表 II 1462. 课程表 IV class CourseSchedule:"""207.课程表https://leetcode.cn/problems/course-schedule/"""def __init__(self):# 记录⼀次递归堆栈中的节点self.onPath []# 记录遍历过的节点&…

LINUX定时解压缩方案

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

Kafka知识补充

如何避免 Rebalance 最简单粗暴的就是 : 减少组成员数量发生变化 每个 Consumer 实例都会定期地向 Coordinator 发送心跳请求,表明它还存活着。如果某个 Consumer 实例不能及时地发送这些心跳请求,Coordinator 就会认为该 Consumer 已经“死…

HarmonyOS 远端状态订阅开发实例

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

Tensorflow2 中对模型进行编译,不同loss函数的选择下输入数据格式需求变化

一、tf2中常用的损失函数介绍 在 TensorFlow 2 中,编译模型时可以选择不同的损失函数来定义模型的目标函数。不同的损失函数适用于不同的问题类型和模型架构。下面是几种常见的损失函数以及它们的作用和适用场景: 1.均方误差(Mean Squared …

C++初阶(1)

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

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

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

标准误与聚类稳健标准误的理解

1 标准误 1.1 定义 标准误(Standard Error)是用来衡量统计样本估计量(如均值、回归系数等)与总体参数之间的差异的一种统计量。标准误衡量了样本估计量的变异程度,提供了对总体参数的估计的不确定性的度量。标准误越…

动网格模型算法基础(二)

本贴主要简述动网格模型算法 FLUENT动网格模型能够根据用户指定的边界运动、网络类型和网格再生方式自动地调节内部体网格节点的位置。 一、动网格使用面临的量大问题: 体网格的再生;边界运动或变形的指定; 二、体网格再生方法&#xff1…

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 对意图识别不准。所…

C++类型推导

这里对C的类型推导方式进行一次全面的总结。 C中有三种类型推导的方式&#xff0c;分别是模板、auto以及decltype()。以下分别介绍这三种方式的同异。 一 模板 假设有这样的函数模板和这样的调用&#xff1a; template<typename T> void f(ParamType param);f(expr);…

【Linux】多线程

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

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

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

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

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

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

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

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

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

让测试人头疼的这几件“小事”

对于测试而言&#xff0c;测试之旅充满了有趣的挑战和宝贵的经验教训&#xff0c;良好的测试人懂得通过项目不断总结经验与汲取教训。而成功的产品离不开PD、开发、测试全体项目伙伴的通力合作。但在实际工作中&#xff0c;大家身处的项目往往不随人意&#xff0c;下面我总结下…

洛谷 P1135 奇怪的电梯 P1135 奇怪的电梯

提供两种思路 第一种DFS 超时第九和第十点 import java.util.*; import java.io.*;public class Main{static BufferedReader br new BufferedReader(new InputStreamReader(System.in));static BufferedWriter out new BufferedWriter(new OutputStreamWriter(System.out)…