概率统计基础:从数据波动到贝叶斯网络
从均值和方差开始,逐步引出样本估计、二项分布、最大似然估计、条件概率、贝叶斯公式和贝叶斯网络。
- AI
- 机器学习
概率统计基础:从数据波动到贝叶斯网络
机器学习不是一上来就训练模型。模型学习之前,我们要先问一个更朴素的问题:
这批数据本身是什么样的?
如果连数据的中心、波动、不确定性和变量关系都说不清,后面讨论线性回归、逻辑回归、神经网络和大模型,其实都会悬空。
这篇文章从最基础的统计量讲起,然后慢慢引出概率分布、最大似然估计、条件概率和贝叶斯网络。它是后续 机器学习基础 和 机器学习建模 的前置知识。
第一步:先描述一组数据的位置
假设有三名同学的成绩:
60, 70, 80
我们想用一个数表示这组成绩的大概水平,最自然的方法是求平均数:
代入上面的数据:
平均数回答的是:
这组数据大概集中在哪里?
但是平均数并不是唯一的中心指标。
- 中位数:把数据排序后位于中间的值。
- 众数:出现次数最多的值。
- 平均数:所有值加起来再平均分。
如果数据里有极端值,中位数往往比平均数更稳。例如:
10, 70, 130
平均数还是 70,但这组数据显然和 60, 70, 80 不一样。这说明只看中心位置还不够。
第二步:再描述数据有多分散
两组数据:
A: 60, 70, 80
B: 10, 70, 130
平均数都是 70,但 B 的波动更大。我们需要一个量描述“数据离中心有多远”,这就是方差。
方差的计算思路是三步:
- 每个点减去均值。
- 把偏差平方,避免正负抵消。
- 对平方后的偏差求平均。
如果这组数据就是完整总体,总体方差是:
以 A 组为例:
60 - 70 = -10
70 - 70 = 0
80 - 70 = 10
平方后:
100, 0, 100
总体方差:
所以均值和方差的关系可以这样记:
均值描述数据中心,方差描述数据围绕中心散得多开。
第三步:从总体走向样本
现实里我们经常拿不到完整总体,只能拿到一部分样本。
比如我们想知道一个学校所有学生的平均身高,但只抽了 50 个学生。这个时候,样本均值 只是总体均值 的估计。
样本方差通常写作:
这里分母是 ,不是 。
为什么?因为 是用样本自己算出来的,它会天然靠近这批样本,导致偏差平方和偏小。除以 是一种修正,让样本方差更适合估计总体方差。
初学时可以先这样理解:
样本均值已经从样本里“用掉”了一个自由度,所以估计方差时分母用 。
这个点后面会影响模型评估。训练集只是样本,不是完整世界;模型在训练集上表现好,不等于它在真实分布上表现好。
第四步:从数据波动走向概率分布
均值和方差描述的是已经看到的数据。但机器学习还关心没看到的数据会怎样出现。
比如抛硬币:
正面 / 反面
这是一个只有两种结果的试验。如果我们抛 次,想知道正面出现 次的概率,就会遇到二项分布。
二项分布成立需要四个条件:
- 试验次数固定为 。
- 每次只有成功和失败两种结果。
- 每次成功概率相同,记为 。
- 每次试验相互独立。
如果 表示 次试验中成功的次数:
那么:
这个公式不用死记。以抛 3 次硬币,正好 2 次正面为例。
某一种顺序:
正 正 反
概率是:
但正好 2 次正面的顺序有 3 种:
正 正 反
正 反 正
反 正 正
所以总概率是:
二项分布其实就是:
一种排列的概率 × 这种排列的数量。
第五步:从概率分布走向参数估计
现在反过来问:如果我们不知道硬币正面概率 ,只观察到抛了 10 次,其中 8 次正面,应该怎么估计 ?
这就是最大似然估计(Maximum Likelihood Estimation, MLE)。
它的思想是:
找到一组参数,让我们已经观察到的数据最可能出现。
对于二项分布,似然函数是:
因为 和 无关,所以最大化它等价于最大化:
取对数更方便求导:
对 求导:
令导数等于 0:
解得:
也就是说,在二项分布假设下,最大似然估计得到的成功概率就是观察到的成功频率。
抛 10 次,8 次正面:
这里要注意:MLE 不是说硬币真实概率一定是 0.8,而是说在当前模型假设下, 最能解释这次观察。
后面学习逻辑回归、交叉熵和语言模型训练时,也会反复看到这个思想:让模型给真实数据更高概率。
第六步:看到新信息后如何更新判断
前面的概率分布讨论的是“数据如何出现”。现在我们考虑另一类问题:
已经知道一个新信息后,原来的判断怎么更新?
这就是条件概率。
条件概率写作:
意思是:在 已经发生的条件下, 发生的概率。
定义为:
它的直觉是缩小样本空间。
例如班里有 100 人:
- 60 个男生。
- 40 个女生。
- 30 人戴眼镜。
- 其中 18 个男生戴眼镜。
问:已知一个人戴眼镜,他是男生的概率是多少?
设:
A = 是男生
B = 戴眼镜
那么:
原来我们在全班里判断,现在只在“戴眼镜的人”这个小世界里判断。
第七步:贝叶斯公式
由条件概率定义:
也可以写成:
所以:
这就是贝叶斯公式。
可以把它读成:
后验 = 似然 × 先验 / 证据
| 项 | 含义 |
|---|---|
| 先验:看到证据前对 A 的判断 | |
| 似然:如果 A 成立,B 出现的概率 | |
| 证据:B 本身出现的概率 | |
| 后验:看到 B 后对 A 的新判断 |
这个公式的意义不只是做概率题。机器学习里的很多推断,本质上都是根据证据更新判断。
第八步:多个变量之间如何表达关系
如果只有两个事件,条件概率够用。但真实问题里变量很多。
例如:
下雨 -> 地面湿
洒水器打开 -> 地面湿
地面湿 -> 鞋子变湿
这种关系用一堆公式写会很乱。贝叶斯网络用有向无环图表达变量之间的概率依赖。
- 节点表示随机变量。
- 箭头表示概率依赖方向。
- 整张图把联合概率拆成局部条件概率。
通用分解规则是:
其中 表示 的父节点集合。
三种最重要的小结构
初学贝叶斯网络,先掌握三种结构就够了。
链式结构
flowchart LR
A([A]) --> B([B]) --> C([C])
影响 , 影响 。如果已经知道 ,那么 对 的额外信息被截断:
分支结构
flowchart TB
A([A]) --> B([B])
A --> C([C])
同时影响 和 。如果已经知道 ,那么 和 之间的相关性被解释掉:
V 结构
flowchart TB
A([A]) --> C([C])
B([B]) --> C
V 结构最容易错。默认情况下, 和 可以独立;但如果观测到了共同结果 ,它们反而可能相关。
例子:
A = 下雨
B = 洒水器打开
C = 地面湿
如果知道地面湿了,又知道没有下雨,那么“洒水器打开”的可能性会上升。两个原因之间出现了解释竞争。
一个小练习
假设某产品质检中,次品率为 。你抽查 20 件,发现 3 件次品。
- 如果用二项分布建模, 和 分别是多少?
- 用最大似然估计, 是多少?
- 如果后面发现抽样批次来自一个新供应商,这个信息会不会改变你对次品率的判断?
前两个问题对应二项分布和 MLE,第三个问题已经开始进入条件概率和贝叶斯更新。
总结
这篇文章从数据本身出发,走了一条自然路线:
均值 -> 方差 -> 样本估计 -> 二项分布 -> 最大似然估计 -> 条件概率 -> 贝叶斯网络
后面学习 机器学习建模 时,逻辑回归的概率输出、交叉熵损失和模型泛化都会用到这些基础。再往后看 Attention 机制 时,softmax 也可以理解成一种把分数转换成概率分布的操作。
尺素
0 封尺素
正在取尺素...