📗
deeplearning
  • 机器学习
    • LR & SVM
    • 树模型
    • 评测指标
    • 数据不平衡
  • CV基础
    • 基础模型
    • 初始化
    • 激活函数
    • 注意力机制
    • 损失函数
    • 优化器
    • 可视化
    • 轻量级网络
    • 多任务学习
  • deepfake
    • 数据集
  • 人脸
    • 数据集
    • 人脸对齐
    • 人脸检测
    • 人脸识别
  • 语义分割
    • 语义分割
  • 无监督
    • 无监督
  • 推荐系统
    • 推荐系统模型
    • 推荐系统中的偏差
    • 王喆:深度学习推荐系统
    • 特征处理
    • 重排序
    • 互联网商业化变现
  • 数学
    • bayes最大似然
    • 蒙特卡洛
  • 网站
    • css
    • html
    • js
    • jquery
    • flask
  • 基础工具
    • anaconda
    • docker
    • git
    • linux install
    • vpn
    • latex
  • python
    • numpy
    • matplotlib
    • pandas
    • multi process
    • pytorch
  • 设计模式
    • 设计模式之美
    • 图说设计模式
  • 其他
    • how to ask
    • python style
Powered by GitBook
On this page
  • 蒙特卡洛模拟(Monte Carlo Simulation)
  • 蒙特卡洛方法(Monte Carlo Method)
  • 蒙特卡洛搜索树(Monte Carlo Tree Search)

Was this helpful?

  1. 数学

蒙特卡洛

Previousbayes最大似然Nextcss

Last updated 3 years ago

Was this helpful?

蒙特卡洛模拟(Monte Carlo Simulation)

蒙特卡洛模拟是一种统计学的方法,用来模拟大量数据,使其符合某种分布。

蒙特卡洛模拟是在二战期间,当时在原子弹研制的项目中,为了模拟裂变物质的中子随机扩散现象,由美国数学家冯·诺伊曼(学计算机的同学都知道这位冯同志的大名,人称“计算机之父”)和乌拉姆等发明的一种统计方法。之所以起名叫蒙特卡洛模拟,是因为蒙特卡洛在是欧洲袖珍国家摩纳哥一个城市,这个城市在当时是非常著名的一个赌城。因为赌博的本质是算概率,而蒙特卡洛模拟正是以概率为基础的一种方法,所以用赌城的名字为这种方法命名。

蒙特卡洛方法(Monte Carlo Method)

一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。

蒙特卡罗算法:采样越多,越近似最优解; 拉斯维加斯算法:采样越多,越有机会找到最优解;

两个步骤:

  • 不断的抽样

  • 逐渐逼近

举例1:用蒙特卡洛算法估算圆周率π

前提:需要一个产生均匀分布的随机数。

import random
total = 1e8
in_cnt = 0
for _ in range(total):
    x = random.random()
    y = random.random()
    dis = (x**2+y**2)**0.5
    if dis <= 1:
        in_cnt += 1
print("pi is:",in_cnt/total)

举例2:计算积分面积

  • 随机打点

  • 计算打点是否在积分区域

  • 即可得到积分区域的面积占总面积的比例,乘以总面积即得积分面积

蒙特卡洛搜索树(Monte Carlo Tree Search)

机器下棋的算法本质都是搜索树,围棋难在它的树宽可以达到好几百(国际象棋只有几十)。在有限时间内要遍历这么宽的树,就只能牺牲深度(俗称“往后看几步”),但围棋又是依赖远见的游戏,甚至不仅是看“几步”的问题。所以,要想保证搜索深度,就只能放弃遍历,改为随机采样——这就是为什么在没有MCTS(蒙特卡罗搜树)类的方法之前,机器围棋的水平几乎是笑话。而采用了MCTS方法后,搜索深度就大大增加了。

link
link