all_lessons/数学的逻辑/30第 31 课 / 共 44 课

第九部分 · 概率、统计与信息

多元高斯与协方差:相关性的几何

上一课我们给一个随机变量配上了均值与方差。但现实的量从不孤立——身高牵着体重、像素挨着像素。要描述它们"一起怎么动",方差得长成一整张矩阵,钟形曲线得铺成一座山。而那座山的等高线,是一个会拉伸、会倾斜的椭圆——它的主轴,正是我们早就埋下的特征向量。

线性回顾
上一课:我们用随机变量把随机结果翻译成数,用 pmf / pdf 给它们分配概率,并认识了高斯分布 N(μ, σ²)(读作"均值 mu、方差 sigma 平方的正态分布")——一条由均值定中心、方差定胖瘦的钟形曲线。
留下的问题:那是一个变量的故事。可真实数据动辄是几十、几百个变量同时出现,而且彼此相关:知道一个人很高,你就会预期他偏重——身高和体重不是各掷各的骰子。单变量的方差 σ² 只会说"每个变量自己抖多厉害",完全说不出"两个变量一起怎么抖"。怎么把"相关"写成数学?
本课新增:协方差协方差矩阵 Σ——一次性记下每对变量"同涨同跌还是反着来";相关系数 ρ——把相关强度标准化到 [−1,1];以及多元高斯——把钟形曲线推广到多维。最妙的是,协方差矩阵的几何画像是一个椭圆,它的主轴恰是第 22 课的特征向量、第 23 课的主成分。相关性的几何,和线性代数在此重逢。
本课路线
(1) 从一对变量讲起:协方差怎么量"一起动"。(2) 相关系数 ρ:把协方差洗成无量纲的 −1 到 1。(3) 协方差矩阵 Σ:把所有两两关系塞进一张方阵。(4) 多元高斯:钟形曲线的多维版,以及 Σ 怎么塑造它的形状。(5) 协方差的几何 = 椭圆:主轴 = 特征向量、轴长 = 特征值——回扣 21、22。(6) 相关不是因果:一个必须记住的警告。

协方差:两个变量是否"一起动"

先把问题缩到最小:两个随机变量 XY(比如身高、体重)。方差只问"X 自己偏离它的均值多厉害"。我们现在要问一个新问题:当 X 高于它的均值时,Y 倾向于也高,还是反而低?这就是协方差

Cov(X, Y) = 𝔼[ (X − μₓ)(Y − μᵧ) ]

读作"协方差等于:X 减它的均值 μₓ,乘上 Y 减它的均值 μᵧ,再求期望(平均)"。看这个乘积的符号就懂它的精神:

注意一个特例:当 Y 就是 X 自己时,Cov(X,X) = 𝔼[(X−μₓ)²] = σ²ₓ——协方差退回成方差。所以方差只是协方差的"自己跟自己"那一格。协方差是方差概念的自然推广:一个量"自抖"是方差,两个量"共抖"是协方差。

相关系数:把协方差洗干净

协方差有个恼人的毛病:它带单位、看量纲。身高用米还是厘米算,协方差的数值会差出一万倍,可"身高体重的关联强弱"明明没变。我们想要一个纯粹表示强弱、不受单位影响的数。办法是除掉两个变量各自的标准差,把它标准化,得到相关系数 ρ(希腊字母 rho):

ρ = Cov(X, Y) / (σₓ · σᵧ)

读作"相关系数 = 协方差,除以两个变量标准差的乘积"。这一除,单位被约掉了,ρ 永远落在 [−1, 1](读作"负一到正一之间"):

"洗干净"是关键一步:现在不论变量用什么单位、什么量级,ρ = 0.8 就是 ρ = 0.8,强相关一目了然。机器学习里看特征之间冗不冗余、做特征选择,常常先看一眼这张相关系数。

协方差矩阵:把所有两两关系装进一张方阵

两个变量好办,可数据常有 d 个变量。它们两两之间有 d×d 组关系。线性代数早就给过我们收纳"一大堆数"的容器——第 11 课的矩阵。我们把所有方差与协方差排成一张方阵,叫协方差矩阵 Σ(大写希腊字母 Sigma):

Σ = [ σ²ₓ , Cov(X,Y) ; Cov(X,Y) , σ²ᵧ ]

读作"一个 2×2 矩阵:左上是 X 的方差,右下是 Y 的方差,两个对角外的格子都是 X 与 Y 的协方差"。它有两个一眼可见的特点:对角线是各变量自己的方差(自抖),非对角线是两两协方差(共抖),而且关于对角线对称——因为 Cov(X,Y) = Cov(Y,X)。维度更高时,Σ 就是一张更大的对称方阵,第 i 行第 j 列那一格,记的是第 i 个和第 j 个变量的协方差。一张 Σ,就把一团高维数据"内部怎么一起抖"完整地编码了下来。

多元高斯:钟形曲线铺成一座山

上一课的高斯推到多维,就得到机器学习里最重要的多维分布——多元高斯,记作 N(μ, Σ)(读作"均值向量 mu、协方差矩阵 Sigma 的多元正态分布")。它由两样东西完全决定:

在二维里想象它:一座中间最高、四周平滑塌下去的"概率小山",点越密集的地方山越高。我们看它的等高线(俯视,把同样高度连起来)——这是理解 Σ 的钥匙:

于是抽象的协方差矩阵,有了一个看得见摸得着的形状:一个椭圆。下面的小实验让你亲手转动这个椭圆。

协方差的几何:拖动滑块,看椭圆如何拉伸与倾斜
σxσy(两个方向各自的散布)和相关 ρ,看二维高斯的等高椭圆怎么变:ρ=0 时椭圆正摆,ρ→±1 时它越斜越扁。蓝点是从这个分布采的样。两条彩色长轴是椭圆的主轴——它们正是协方差矩阵 Σ特征向量第 22 课),轴的长短由特征值决定,也就是第 23 课主成分方向。相关性的几何,就是特征分解。
相关系数 ρ
主轴1 长度 √λ₁
主轴1 倾角

主轴就是特征向量:埋下的伏笔回收了

盯住上面那个倾斜的椭圆,问一个关键问题:它的"最胖的方向"和"最瘦的方向"指向哪?这两个互相垂直的方向,就是椭圆的主轴。而它们不是别的——正是第 22 课里我们定义的、协方差矩阵 Σ特征向量:被这张矩阵作用时只缩放、不转向的那些特殊方向。对应的特征值 λ(读作"lambda")则给出该方向上的方差大小——轴的半长正是 √λ(读作"根号 lambda")。

三件事其实是同一件事
① 数据沿哪个方向散得最开(最大方差方向)= ② 协方差矩阵 Σ 的最大特征向量第 22 课)= ③ 第一主成分 PC1第 23 课)。"相关性的几何""特征分解""降维",是从三个角度看同一个椭圆。

这就是为什么 PCA 能"找到数据最值得看的方向":它做的,本质上就是把协方差矩阵 Σ 做特征分解,挑出特征值最大的几个方向——也就是这个椭圆最长的几条轴。当年(21、22 课)我们为"哪个方向被变换只拉伸不转向""怎么把高维压扁"埋下的线性代数,到了这里,被概率世界里一个具体到能拖动的椭圆,完完整整地回收了。代数与几何、确定与随机,在协方差矩阵上合流。

一个必须记住的警告:相关 ≠ 因果

协方差和相关系数极其有用,但它们只回答一个很窄的问题:"两个量在数据里是否一起变化。"它们绝不回答"谁导致了谁"。这是统计学里被违反得最多、代价最惨的一条铁律。

夏天里,冰淇淋销量和溺水人数高度正相关——难道吃冰淇淋会淹死人?当然不是。背后藏着一个共同的"幕后推手":气温。天一热,买冰淇淋的多了,下水游泳的也多了,于是两个数同涨。它们之间有强相关 ρ,却没有任何因果。强行把相关读成因果,会得出"禁售冰淇淋以防溺水"这种荒谬结论。机器学习模型整天在数据里捕捉相关性,所以使用者更要时刻清醒:模型学到的是"一起动",不是"谁推动谁"

常见误解

一句话带走
协方差量两个变量"一起动"的方向与强度,相关系数 ρ∈[−1,1] 把它洗成无量纲的强弱;把所有两两关系排成对称的协方差矩阵 Σ,就能定义多元高斯 N(μ,Σ)——它的等高线是一个会拉伸、会倾斜的椭圆,而椭圆的主轴正是 Σ特征向量、即 PCA 的主成分(回扣 21、22)。但切记:相关只说"一起动",绝不等于因果。
下一步
我们手里现在有了一整套描述不确定的语言:随机变量、分布、协方差、多元高斯。可这套语言里,所有的参数——高斯的均值 μ、方差 σ²、协方差矩阵 Σ——都是我们假装已经知道的。真实情形恰恰相反:我们手里只有一堆数据样本,那个生成它们的分布的参数是未知的,得反过来从数据里出来。给定一堆点,最合理的 μΣ 该取多少?这就把我们从"概率"(已知分布、推演数据)翻转到"统计"(已知数据、反推分布),逼出机器学习里最核心的两把估参数的尺子。→ 第 31 课《从数据估参数:最大似然与最大后验》。