这节课主要讲概率相关

概率

可能世界 Possible Worlds

(这个翻译太奇怪了)
每一个可能的样本,即一个可能世界,用 ω 表示
通过 P(ω) ,来表示某个可能事件的概率

概率公理

  • 0 < P(ω) < 1
每个概率都在 0 到 1 之间
  • 概率之和为 1
所有样本事件的概率之和为一
notion image

无条件概率

前后事件的概率没有关联
与条件概率对应,会在后面讲到

条件概率

前后事件的概率相关联的情况

表示

,表示 b 条件下,a 发生的概率

公式

其中 是指 a 和 b

随机变量

大概就是对应的事件? 一个事件具有多种可能的情况,所有可能情况构成的集合对应着事件的所有可能取值?
例如:P(Flight) = <0.6, 0.3, 0.1>

独立性

一个事件的发生不会影响另一个事件的发生

数学定义

当且仅当此公式成立时,a、b 事件相互独立

贝叶斯法则

前提条件:a 和 b 两个事件相互独立

公式

这里的公式是根据 a、b 相互独立得出的两个公式联立得出
notion image
我认为最大的作用是交换 a、b 作为条件的位置,让某未知事件从结果变为条件,方便根据过往数据进行推算,以下是一个例子
For example, we would like to compute the probability of it raining in the afternoon if there are clouds in the morning, or P(rain | clouds). We start with the following information:
  • 80% of rainy afternoons start with cloudy mornings, or P(clouds | rain).
  • 40% of days have cloudy mornings, or P(clouds).
  • 10% of days have rainy afternoons, or P(rain).
Applying Bayes’ rule, we compute (0.1)(0.8)/(0.4) = 0.2. That is, the probability that it rains in the afternoon given that it was cloudy in the morning is 20%.

联合概率

联合概率是多个事件全部发生的可能性

表示

用法

可以使用条件概率相关公式,利用联合概率和单一事件的概率,计算条件概率

概率法则

Negation 反事件

a 与 ¬a 两个事件互补,概率之和为1

Inclusion-Exclusion 包含-排除

大概就是容斥原理

Marginalization 边缘化

通过将联合分布中某些变量“消除”,得到一个涉及较少变量的概率分布
这里是将 y 消除,剩下 x 相关的变量

Conditioning 条件

其实和边缘化有点像,只不过这里把 并下的补集,换成了条件下的补集

Bayesian Networks 贝叶斯网络

贝叶斯网络是一种数据结构,表示随机变量之间的依赖关系,有以下属性:
  1. 有向图
  1. 每个节点都表示随机变量
  1. XY 表示 X 是 Y 的父级,也就是 X 影响 Y 的分布
notion image
在这里,如果想要计算 P(light, no, delayed, miss),需要使用条件概率相关公式,
利用P(light)P(no | light)P(delayed | light, no)P(miss | delayed)进行计算

推理

问题 X:我们要计算其概率分布的变量
证据变量 E:已观察到的事件 e 的一个或多个变量。例如,我们可能观察到有小雨,此观察结果有助于我们计算火车晚点的概率
隐藏变量 Y:不是问题 X,但尚未观察到的变量
目标:计算 PX | e

通过枚举进行推理

列举推理是在给定观测证据 e 和一些隐藏变量 Y 的情况下,找到变量 X 的概率分布的过程

初始化

首先,创建节点,并绑定对应的概率,以及事件对应的条件

创建网络

然后,创建贝叶斯网络,添加节点以及边界。其中边界是用来表示事件之间的条件关系的(父子关系)

计算特定条件的概率

此时的完整条件是:无雨、没有维护、火车准点、参会

计算条件不全时的概率

此时的条件并不完整,仅有:火车晚点
这里可以通过枚举的方法,计算此条件下其他各种事件的概率
 
以上的方法采用的是通过枚举进行精确推理,然而当变量数量增加时,效率很低
因此,我们可以尝试另一种方法,近似推理。以一些精度为代价,提升效率

Sampling 采样

采样的结果是受其概率分布影响的,而不是均匀随机的
通过进行不断的采样,来计算某个事件在采样得到的样本中的概率,以模拟真实概率

采样的特点

采样的每个结果都是随机的,但长期来看,它们的频率会接近理论概率
采样次数越多,统计出来的频率会越来越接近真实概率(这就是大数定律的作用)。
采样本身不会改变概率分布,只是用来近似模拟概率分布。

代码实现

首先,创建 sample 和 parents,用于存储和绑定采样的值
然后,判断是否为根节点,分情况进行采样
采样后,把采样结果和分布情况进行绑定,存到 parents 中
这里进行采样,并统计对应样例中的数量,用于计算概率

Likelihood Weighting 似然加权

上面的采样中有一个问题,就是会丢弃不符合条件的样本,只选取符合的样本
这样一来会导致采样样本的浪费,降低效率,有可能导致一些误差
因此,我们希望有效的利用这些不符合条件的样本,因此采用似然加权

实现方法

首先修复证据变量的值
使用贝叶斯网络中的条件概率对非证据变量进行采样(对于证据变量,直接跳过,其采样值设置为已知条件对应的值)
可能性对每个样本进行加权:所有证据出现的概率
notion image
大概就是这样,右边得到了采样的结果
接着,往回倒,找到已知条件(这里是 on time)的父节点,找到采样结果中父节点的情况对应的概率,将这个概率作为这里样本的权重(0.6)

Markov Models 马尔科夫模型

这个模型把“时间”这个因素考虑了进来

The Markov Assumption 马尔科夫假设

马尔可夫假设是当前状态仅取决于有限、固定数量的先前状态的假设(比如,今天的天气情况受前几天情况的影响)

Markov Chain 马尔科夫链

马尔可夫链是一系列随机变量,其中每个变量的分布都遵循马尔可夫假设。也就是说,链中的每个事件都基于其之前事件的概率发生。

Transition Model 转换模型

构建马尔可夫链需要一个转换模型,根据当前事件的可能计算下一个事件的概率分布
notion image
notion image

代码实现

这里给出了起始的概率
转换模型,其中包含了前后事件情况对应的概率
最后进行采样,用于计算可能概率

Hidden Markov Models 隐马尔可夫模型

这个模型相较于普通的马尔科夫模型,考虑到了隐藏状态(hidden state),大概就是无法观察到的一些信息
notion image
这里建立一个 sensor model 或者叫 emission model,用来访问示例中的“摄像头”,得到是否带伞与天气的关联情况

Sensor Markov Assumption 传感器马尔科夫假设

这里的假设是:事实变量(evidence variable)仅仅取决于相应的状态
在这个例子中:是否带雨伞仅仅取决于天气

表示

隐马尔可夫模型可以用两层马尔可夫链表示:顶层(变量 X)代表隐藏状态。底层,变量 E,代表证据,即我们所拥有的观察结果
notion image

任务

  • 过滤:给定从开始到现在的观察值,计算当前状态的概率分布。
例如,给定人们何时从时间开始到今天带伞的信息,我们生成今天是否下雨的概率分布。
  • 预测:给定从开始到现在的观测值,计算未来状态的概率分布。
  • 平滑:给定从开始到现在的观测值,计算过去状态的概率分布。
例如,假设今天人们带了雨伞,计算昨天下雨的概率。
  • 最可能的解释:给定从开始到现在的观察,计算最可能的事件序列。

代码实现

首先,sun 和 rain 是传感器模型,构建天气与是否带伞的联系
transition 是状态转移模型,用于表示前一天天气对后一天的的影响
这里给出观测数据,利用 predict 进行预测
Loading...
昊卿
昊卿
一个普通的干饭人🍚
最新发布
大一上学期总结
2025-3-9
4.1 多层感知机
2025-3-7
3.4 softmax 回归
2025-3-5
3.3 线性回归的简洁实现
2025-3-5
3.2 线性回归的从零开始实现
2025-3-5
3.1 线性回归
2025-3-5