当前位置: 首页 > news >正文

【Reinforcement Learning】蒙特卡洛算法

强化学习相关的蒙特卡洛算法的介绍。此处笔记根据B站课程,王树森老师的强化学习记录而来。6.蒙特卡洛 Monte Carlo(Av374239425,P6)_哔哩哔哩_bilibili

1.Monte Carlo Algorithms蒙特卡洛算法

蒙特卡罗算法是随机算法的一种, 本质是使用随机样本估计真实值。最终的值是错的,但是它靠近真实值,像是难以求解解析解的积分、神经网络等,使用近似解就可以了,蒙特卡洛算法就是常用的近似算法之一。

2.例1——使用几何方式近似Π

正方形的面积是A1=2*2=4,圆的面积是A2=Π*1^2=Π

在正方形内采用均匀随机抽样,抽点(x,y),点在圆上的概率为p=A2/A1=Π/4。抽取n个点,期望为E(x)=Π*n/4。如何判断点是否在圆上,如x^2+y^2<=1时,点在圆上,否则点不在圆上。

已知均匀抽样n个点,其中m个点在圆上,则可以用m近似Π*n/4,则可以用4m/n近似Π。大数定理保证了蒙特卡洛搜索的正确性,n越大,近似越准确。

 

3.例2——投针算法

Buffon's Needle Problem布芬投针实验

 一组平行线,间距为d, 针长为l, 随机投针,计算针与平行线有交点的概率。p=2l/Πd,n个针投针实验期望为E(X)=np=2ln/Πd

l越大,p越大,d越大,p越小。

使用n个针进行投针实验,有m个针与平行线有交点,则有m近似2ln/Πd, 则2ln/dm可以近似Π。

 验证的一种方法:根据概率不等式, 近似精度反比根号n

4.例3——估计阴影布芬面积,近似Π

正方形面积为2*2=4,在正方形内随机均匀采样点(x,y),

若点在圆内,则有(x-1)^2+(y-1)^2<=1

若点在扇外,则有  x^2+y^2>2

 则阴影部分,在圆内扇外,设其面积为A2, 正方形为A1=4,则点在阴影部分的概率为p=A2/4。抽n个点,则期望为E(x)=np=n*A2/4。 其中m个点在阴影内,则可用m近似n*A2/4, 则A2的面积可近似为4*m/n

 

5.例4——近似求积分

复杂积分没有数值解,只能近似,常用蒙特卡罗算法近似。

 一元积分:

 

多元积分,如二元函数近似Π

 

 

 

6.例5——近似期望

 

  

7.Monte Carlo相关

Monte Carlo的名字来自赌场,algorithm that rely on repeated random sampling to obtain numerical results.

结果是错的但是接近真实值。

随机快排:随机性不影响正确性,总是正确的

大西洋算法: 正确率高达75%

 

相关文章:

  • SAP ABAP ADT安装说明 as 20220901
  • 计算机组成原理知识总结(八)输入/输出系统
  • springboot基于java的康泰小区物业管理系统的设计与实现毕业设计源码101926
  • java查看对象真实地址和哈希值的工具类
  • SOLIDWORKS直播课:解锁3DE协同设计平台的“云端结构设计角色”
  • 简单的 手写 服务器
  • 01 RocketMQ - NameServer 源码分析
  • 【CSS】数据面板
  • 记一次盖茨木马应急响应
  • 兔老大的系统设计(二)定时系统(延时队列)
  • STM32cubeMX详细教学及多个小项目合集(包含RTOS)
  • 车联网白皮书(2021.12)中国信息通信研究院
  • 【中秋征文】使用Python中秋节嫦娥投食小游戏《千里婵娟》
  • OSI网络七层模型和TCP/IP模型
  • 猿创征文|Linux环境Redis部署及最佳实践
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • C语言笔记(第一章:C语言编程)
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • docker-consul
  • Effective Java 笔记(一)
  • Python实现BT种子转化为磁力链接【实战】
  • SpriteKit 技巧之添加背景图片
  • STAR法则
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 分布式事物理论与实践
  • 高程读书笔记 第六章 面向对象程序设计
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 记一次删除Git记录中的大文件的过程
  • 聊聊hikari连接池的leakDetectionThreshold
  • 码农张的Bug人生 - 初来乍到
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • (4)logging(日志模块)
  • (8)STL算法之替换
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (MATLAB)第五章-矩阵运算
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(一):@echo off
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .Net CF下精确的计时器
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net 反编译_.net反编译的相关问题
  • .net反编译工具
  • .NET建议使用的大小写命名原则
  • .sh 的运行
  • ::
  • @requestBody写与不写的情况
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [1] 平面(Plane)图形的生成算法
  • [20170713] 无法访问SQL Server
  • [Bugku]密码???[writeup]
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理