前言

这是一些碎片化知识的集合,我将它们归类为碎片化知识。它们琐碎,且应用层面相对较大,还会涉及到一些其他的知识。

这部分内容将会涉及:概率统计,贝叶斯网络相关内容。

蒙特卡罗法

蒙特卡洛方法一般指蒙特卡罗法,蒙特卡罗法也称统计模拟法、统计试验法。是把概率现象作为研究对象的数值模拟方法。是按抽样调查法求取统计值来推定未知特性量的计算方法。蒙特卡罗是摩纳哥的著名赌城,该法为表明其随机抽样的本质而命名。故适用于对离散系统进行计算仿真试验。在计算仿真中,通过构造一个和系统性能相近似的概率模型,并在数字计算机上进行随机试验,可以模拟系统的随机特性。*

内容来源:百度百科

简单来说,蒙特卡洛方法是一种基于随机抽样来解决各种计算问题的算法框架。现在我们来举一个例子来说明它:

使用蒙特卡洛方法计算 π

背景

圆周率 π 是圆的周长与直径的比率,是一个无理数,大约等于 3.14159。尽管有很多方式可以计算 π,但使用蒙特卡洛方法来估算 π 是一个非常有趣且直观的方式。

步骤

  1. 准备一个正方形和一个内切圆:假设有一个边长为 2 的正方形(因此半径为 1 )。在这个正方形内部有一个内切圆。

  2. 随机投点:在这个正方形内随机投点,即在 x 和 y 坐标都位于[-1,1]范围内随机选择点。

  3. 判断点是否在圆内:对于每一个随机点,计算它到原点(正方形中心)的距离。如果这个距离小于或等于 1(圆的半径),则该点在圆内。

  4. 计算 π 的近似值:记录总投点数(正方形内的点)和圆内的点数。π 的近似值可以通过比较圆内点的数量与总点数的比率来估算。具体来说,因为圆的面积是 $\pi r^2$(在这里 $r =1$ ),正方形的面积是边长的平方(在这里是 4),所以 $\Large \frac{\pi}{4}$ 大约等于圆内点的比例。

公式

如果圆内点的数量是 $\Large N_{circle}$,总投点数是 $\Large N_{total}$ ,那么 π 的估计值是: $\Large π≈4 \times \frac{N_{circle}}{N_{total}}$ 。

结果

随着投点数量的增加,估算的 π 值将会越来越接近真实值。这个方法展示了蒙特卡洛方法的基本思想:通过随机采样来估计一个不确定的数值

这个例子只是蒙特卡洛方法的众多应用之一,展示了其在数值估计中的直观应用。在更复杂的场景中,如金融模型、物理仿真或机器学习算法中,蒙特卡洛方法也被广泛应用。

贝叶斯网络的蒙特卡洛推断

贝叶斯网络是一种用于表示变量间概率依赖关系的图模型在这种网络中,每个节点代表一个随机变量,而边表示变量之间的概率依赖关系。贝叶斯网络的推断涉及计算给定一些变量值时其他变量的概率分布。

现在假设我们有一个非常简单的贝叶斯网络,它只包含两个二元变量(即每个变量只有两种状态,我们可以称之为“是”和“否”)。如下表:

变量 说明
变量 A (是否下雨)是 / 否
变量 B (草地是否湿润)是 / 否

概率如下:

  • $\Large P(A = 是) = 0.2$ (20%的概率下雨)
  • $\Large P(B =是 |A = 是) = 0.9$ (如果下雨的情况下,草地湿润的概率是 90%)
  • $\Large P(B =是 |A = 否) = 0.1$ (如果不下雨的情况下,草地湿润的概率是 10%)

问题:假设我们观察到草地是湿润的(B = 是),我们想要估算此时下雨的概率(即求 $\large P(A = 是 | B = 是)$)。

蒙特卡洛方法应用,

  • 随机抽样:我们随机生成一系列 A 和 B 的值。例如,我们可以随机抽取 1000 次。每次抽取中,A 的值根据其先验概率(20%的概率是“是”)决定。对于 A 的每个值,B 的值根据条件概率表决定(如果 A 是“是”,则 B 有 90% 的概率是“是”,否则 B 有 10% 的概率是“是”)。
  • 统计分析:在所有生成的样本中,计算满足条件 $\large B = 是$ 的样本数量。在这些样本中,统计 $\large A = 是$ 的比例。
  • 计算示例:假设在 1000 次抽样中,有 250 次观察到 B = 是。在这 250 次中,有 50 次同时观察到 A = 是。则 P(A = 是 | B = 是) 的估计值为 $\large \frac{50}{250} = 0.2$(或者20%)。

这个简化的例子展示了如何使用蒙特卡洛方法在机器学习中进行基本的概率推断。

End

做简单了解即可,后面用得到的话,可以再详细深入学习和使用,祝大家每天开心 :)

参考文章