第九部分 · 概率、统计与信息
随机变量与分布:给不确定性建模
优化教会了机器"把损失降到最低",但它一直假装数据是确定的。真实数据从骨子里就是随机的。这一课,我们把第 10 课那套讲不确定的道理,升级成机器学习真正用的工具——把每一个随机的量,变成能写公式、能算、能学的对象。
留下的问题:可数据本身充满随机与不确定。它是从某个我们看不见的"分布"里抽出来的样本,带着噪声、偶然、抽样误差。优化的语言只会说"把这个数降到最低",根本没法描述"这个量有一半概率是 3、有一半概率是 5"。第 10 课我们为单次随机讲过道理(样本空间 Ω、期望、贝叶斯),但那还停在"掷骰子"的层面。
本课新增:随机变量——把随机结果翻译成数;概率分布——pmf(离散)与 pdf(连续)两种"概率的画像";以及机器学习离不开的几张常见分布脸谱:伯努利、类别、均匀、高斯。这是给"不确定"本身建模的第一块砖。
从样本空间到随机变量:给随机贴上数字
第 10 课我们把"所有可能结果"摆成样本空间 Ω(读作"Omega",全部可能的清单)。但 Ω 里装的常常不是数——"正面 / 反面""红 / 绿 / 蓝""猫 / 狗"。要想算、想优化、想喂给一台机器,我们得先把这些结果翻译成数。这个翻译器,就是随机变量。
有了这层翻译,所有关于随机的提问都变成关于数的提问:P(X=1)(读作"X 取值为 1 的概率")、P(X ≤ 3)("X 不超过 3 的概率")、𝔼[X]("X 的期望",读作"E X")。机器学习里,一张图片的标签、一次预测的误差、一个像素的亮度——统统被建模成随机变量。把世界的不确定性"数字化",是这一切的起点。
随机变量分两大类,对应两种描述"概率怎么分配"的方式:能一个一个列出取值的叫离散,取值填满一整段连续区间的叫连续。下面分别看它们的"概率画像"。
离散:概率质量函数 pmf
当随机变量只取有限个(或可数个)值——骰子的 1 到 6、类别标签 0/1/2——我们就能给每一个可能取值明明白白地标上一份概率。这张"哪个值分到多少概率"的表,叫概率质量函数(pmf,probability mass function):
p(x) = P(X = x),且 ∑ p(x) = 1
读作"p 在 x 处的值,就是 X 恰好取 x 的概率;把所有取值的概率加起来,必须等于 1"。这里 ∑(读作"求和")那条规矩,正是第 10 课柯尔莫哥洛夫公理"全空间概率为 1"的化身——概率不会凭空多出来,也不会漏掉。每一份概率像一块有重量的"砝码"压在某个取值上,"质量"二字由此而来。公平骰子的 pmf 就是六根等高的柱子,每根 1/6。
连续:概率密度函数 pdf,与一个反直觉
可很多量是连续的:一个人的身高、测量的噪声、神经网络某个输出。它能取 1.70、1.7000001……区间里有无穷多个值,没法给每个值都分一块正概率——真要分,无穷多份正数加起来会爆掉 1。这里冒出一个著名的反直觉:
答案是:连续世界里,概率不属于点,而属于区间,由一条概率密度函数(pdf,probability density function)f(x) 的面积来表示:
P(a ≤ X ≤ b) = ∫ₐᵇ f(x) dx
读作"X 落在 a 到 b 之间的概率,等于密度曲线 f 从 a 到 b 围出的面积"。那个 ∫(读作"积分",求曲线下面积)正是第 08 课积分在这里的兑现——没有积分,连续概率根本写不出来。密度 f(x) 本身不是概率(它可以大于 1),而是"概率的浓度":哪里曲线高,哪里附近就更密集地聚着可能性。整条曲线下的总面积,仍然必须是 1。
这就解释了那个怪事:单点 P(X=1.70) 是一条"宽度为零的竖线",面积当然是 0;但 P(1.69 ≤ X ≤ 1.71) 是一小片有宽度的面积,就有正概率了。pmf 用柱子的高度表示概率,pdf 用曲线下的面积——这是离散与连续最本质的分野。
期望与方差:分布的重心与胖瘦
一张分布图信息很全,但我们常想用一两个数把它的"性格"捏住。第 10 课已经介绍过第一个:期望 𝔼[X](读作"X 的期望"),它是分布的重心——把每个取值按概率加权平均:
𝔼[X] = ∑ x·p(x) (连续时换成 ∫ x·f(x) dx)
读作"每个取值乘上它的概率(密度),再全部加(积)起来"。期望回答"长期平均落在哪"。但只有重心还不够——两堆数据可以重心一样,却一个挤成一团、一个散得满地都是。刻画这个"散不散"的,是方差 σ²(读作"sigma 平方"):
σ² = Var(X) = 𝔼[(X − μ)²]
读作"方差等于:取值与均值 μ(读作'mu',即期望)之差,平方之后再求期望"。平方有两个用意:让正负偏差不互相抵消,并放大大的偏离。方差越大,分布越"胖"、越分散。它的平方根 σ(读作"sigma",标准差)和取值同一个单位,更好读——它就是"典型偏离均值多远"。期望管中心、方差管散布,这两个数是后面统计与机器学习里反复出现的主角。
四张必备脸谱
机器学习不会每次都从零设计分布,而是从一个"常用脸谱库"里挑一张去套数据。认识这四张脸,你就能读懂半数模型的假设。
① 伯努利分布(Bernoulli)——一次是非题。只有两个结果:成功(1)/失败(0)、正/反、点击/不点击。一个参数 p = 成功概率,于是 P(X=1)=p、P(X=0)=1−p。它是二分类的灵魂——逻辑回归输出的就是一个伯努利的 p。
② 类别分布(Categorical)——一次多选题。伯努利的多面版:K 个互斥结果(猫/狗/鸟……),每个分一份概率,加起来为 1。它是多分类的灵魂——神经网络末端的 softmax 输出,就是一个类别分布。
③ 均匀分布(Uniform)——一视同仁。在一段区间内每个值同样可能,pdf 是一条水平线。它表示"我对这个量一无所知,先假设处处等可能"——常用来做随机初始化、随机采样的起点。
④ 高斯分布(Gaussian / 正态)——那条钟形曲线。机器学习里出场率最高的一张脸,由两个参数完全决定:均值 μ(钟的中心位置)和方差 σ²(钟的胖瘦),记作 N(μ, σ²)(读作"均值 mu、方差 sigma 平方的正态分布")。它的密度是那条对称、中间高两边迅速衰减的钟形曲线。噪声、测量误差、初始化权重、扩散模型里的隐变量——到处都假设成高斯。下一课整堂都在讲它的多维版本。
钟形曲线为什么无处不在
你也许会奇怪:凭什么高斯分布的脸出现得那么频繁?身高、误差、噪声、考试分数,怎么都凑成那条同一形状的钟?这不是巧合,背后有一条概率论里最深刻、最有"宇宙感"的定理——中心极限定理(CLT):
一个人的身高,是无数基因与营养的小影响叠加;一次测量误差,是无数微小扰动的总和。凡是"很多独立小因素相加"造出来的量,结果几乎必然呈高斯——这就是钟形曲线统治世界的原因。它也解释了为什么机器学习默认把噪声当成高斯:噪声往往正是无数看不清的小因素之和。中心极限定理把"无数随机的细节"煮成了"一条确定的曲线",是随机世界里少有的、几乎免费的秩序。
常见误解
- "概率密度 f(x) 就是 x 这个点的概率。"不是。连续分布里单点概率永远是 0,f(x) 是概率的密度(浓度),可以大于 1。只有把它在一段区间上积分(求面积),才得到概率。把密度当概率,是连续概率最常见的坑。
- "方差和标准差是一回事。"方差 σ² 是"偏差平方的平均",单位是原量的平方(身高方差的单位是米²,没法直观);标准差 σ 是它的平方根,单位和原量一致(米),才是"典型偏离均值多远"的可读刻度。报数据时几乎都用标准差。
- "高斯分布无处不在,所以什么数据都能当高斯。"危险。中心极限定理只保证"很多独立小因素之和"趋于高斯。收入、词频、城市人口这类长尾 / 重尾数据严重偏斜,硬套高斯会低估极端值、酿成大错。选对脸谱,是建模的第一步、也是最容易偷懒出错的一步。