ELBO、KL散度、方差、协方差、相关系数

机器学习核心公式完整推导手册

适用对象:具备高中数学基础,正在学习机器学习的读者
范围:ELBO、KL散度、方差、协方差、相关系数
阅读建议:每节先阅读"公式作用概述"了解背景,再跟随推导步骤,遇到【知识卡片】先理解概念再继续。


第一部分:方差(Variance)

1.1 公式作用概述

方差是描述一组数据离散程度的核心指标。它量化了每个数据点与数据集平均值之间的平均偏离程度。在机器学习中,方差用于衡量模型的稳定性(高方差意味着模型对训练数据敏感,容易过拟合)、评估数据质量、以及作为众多高级算法(如高斯过程、变分推断)的基础组件。直观地说,方差告诉我们"数据点有多分散"。

1.2 完整推导过程

定义路径:从"平均偏离"到"方差"


步骤 0:设定场景与符号

设我们有一个包含 NN 个观测值的数据集,记为 {x1,x2,,xN}\{x_1, x_2, \ldots, x_N\},其中每个 xiRx_i \in \mathbb{R}(即每个数据点都是一个实数)。

我们的目标是量化这组数据偏离其中心位置的程度。

【知识卡片:样本均值】

  • 定义:所有数据点的算术平均值,代表数据的"中心位置"。
  • 公式μ=xˉ=1Ni=1Nxi\displaystyle \mu = \bar{x} = \frac{1}{N}\sum_{i=1}^{N} x_i
  • 本步作用:为度量偏离提供参照点(基准线)。

步骤 1:直接偏离的问题

考虑每个数据点到均值的直接偏离(xiμ)(x_i - \mu)。如果直接取这些偏离的平均值:

1Ni=1N(xiμ)\frac{1}{N}\sum_{i=1}^{N}(x_i - \mu)

展开计算(由求和的线性性质):

=1Ni=1Nxi1Ni=1Nμ=μμ=0= \frac{1}{N}\sum_{i=1}^{N}x_i - \frac{1}{N}\sum_{i=1}^{N}\mu = \mu - \mu = 0

【知识卡片:求和的线性性质】

  • 定义:求和运算对加法和数乘保持分配律。
  • 公式i(ai+bi)=iai+ibi\sum_{i}(a_i + b_i) = \sum_{i}a_i + \sum_{i}b_ii(cai)=ciai\sum_{i}(c \cdot a_i) = c \sum_{i}a_icc 为常数)
  • 本步作用:证明正负偏离相互抵消,导致直接平均偏离恒为零,失去度量意义。

结论:正负偏离相互抵消,直接平均偏离恒为零,无法度量离散程度。

解决方案:将偏离平方,消除正负号的影响。


步骤 2:均方偏离(Mean Squared Deviation)

定义均方偏离为偏离的平方的平均值:

MSD=1Ni=1N(xiμ)2\text{MSD} = \frac{1}{N}\sum_{i=1}^{N}(x_i - \mu)^2

这正是总体方差的定义。


步骤 3:方差的两种等价定义形式

定义式(基于偏离):

σ2=Var(X)=1Ni=1N(xiμ)2\boxed{\sigma^2 = \mathrm{Var}(X) = \frac{1}{N}\sum_{i=1}^{N}(x_i - \mu)^2}

展开推导为计算式(便于实际计算):

展开平方项 (xiμ)2=xi22xiμ+μ2(x_i - \mu)^2 = x_i^2 - 2x_i\mu + \mu^2(由完全平方公式):

σ2=1Ni=1N(xi22xiμ+μ2)\sigma^2 = \frac{1}{N}\sum_{i=1}^{N}(x_i^2 - 2x_i\mu + \mu^2)

【知识卡片:完全平方公式】

  • 定义:两数差的平方展开公式。
  • 公式(ab)2=a22ab+b2(a - b)^2 = a^2 - 2ab + b^2
  • 本步作用:将平方展开后便于逐项求和化简。

由求和的线性性质,拆分为三项:

=1Ni=1Nxi22μNi=1Nxi+1Ni=1Nμ2= \frac{1}{N}\sum_{i=1}^{N}x_i^2 - \frac{2\mu}{N}\sum_{i=1}^{N}x_i + \frac{1}{N}\sum_{i=1}^{N}\mu^2

逐项化简:

  • 第一项:1Ni=1Nxi2=E[X2]\displaystyle \frac{1}{N}\sum_{i=1}^{N}x_i^2 = \mathbb{E}[X^2](二阶原点矩,即平方的均值)
  • 第二项:2μNi=1Nxi=2μμ=2μ2\displaystyle \frac{2\mu}{N}\sum_{i=1}^{N}x_i = 2\mu \cdot \mu = 2\mu^2(因为 1Nxi=μ\frac{1}{N}\sum x_i = \mu
  • 第三项:1Ni=1Nμ2=μ2\displaystyle \frac{1}{N}\sum_{i=1}^{N}\mu^2 = \mu^2(常数的 NN 次求和再除以 NN

合并:

σ2=E[X2]2μ2+μ2=E[X2]μ2\sigma^2 = \mathbb{E}[X^2] - 2\mu^2 + \mu^2 = \mathbb{E}[X^2] - \mu^2

计算式(更便于实际计算):

σ2=E[X2](E[X])2=1Ni=1Nxi2(1Ni=1Nxi)2\boxed{\sigma^2 = \mathbb{E}[X^2] - (\mathbb{E}[X])^2 = \frac{1}{N}\sum_{i=1}^{N}x_i^2 - \left(\frac{1}{N}\sum_{i=1}^{N}x_i\right)^2}


步骤 4:与概率分布的联系(连续型随机变量)

XX 是一个连续型随机变量,其概率密度函数为 fX(x)f_X(x),则方差定义为:

Var(X)=+(xμ)2fX(x)dx=E[(Xμ)2]\mathrm{Var}(X) = \int_{-\infty}^{+\infty}(x - \mu)^2 \cdot f_X(x) \, dx = \mathbb{E}[(X - \mu)^2]

等价地:

Var(X)=E[X2](E[X])2\mathrm{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2

【知识卡片:期望(Expectation)】

  • 定义:随机变量在大量重复实验中取值的长期平均值,是概率加权下的"重心"。
  • 公式(连续型)E[X]=+xfX(x)dx\displaystyle \mathbb{E}[X] = \int_{-\infty}^{+\infty} x \cdot f_X(x) \, dx
  • 公式(离散型)E[X]=i=1NxiP(X=xi)\displaystyle \mathbb{E}[X] = \sum_{i=1}^{N} x_i \cdot P(X = x_i)
  • 本步作用:方差本质上就是"偏离的期望",即 E[(Xμ)2]\mathbb{E}[(X-\mu)^2]

1.3 直观意义

方差的核心含义是**"数据点距离中心有多远"**。

  • 方差大 → 数据点分散,远离均值 → 不确定性高
  • 方差小 → 数据点聚集,靠近均值 → 确定性高

方差的几何直观:各数据点到均值的偏离程度

上图中,蓝色点是数据点 xix_i,红色虚线是均值 μ\mu,紫色竖线表示每个点到均值的偏离 (xiμ)(x_i - \mu),方差就是这些偏离的平方的平均值。浅蓝色区域表示 ±σ\pm\sigma(一个标准差)的范围,大约包含 68% 的数据(对于正态分布而言)。

1.4 本推导中的数学知识清单

概念名称 在本推导中的具体作用 一句话定义或公式表达
样本均值 提供偏离的参照中心 μ=1Ni=1Nxi\mu = \frac{1}{N}\sum_{i=1}^{N} x_i
求和的线性性质 拆分和合并求和项 (ai+bi)=ai+bi\sum(a_i + b_i) = \sum a_i + \sum b_i
完全平方公式 展开 (xiμ)2(x_i - \mu)^2 (ab)2=a22ab+b2(a-b)^2 = a^2 - 2ab + b^2
期望(离散型) 定义方差为偏离的期望 E[X]=1Ni=1Nxi\mathbb{E}[X] = \frac{1}{N}\sum_{i=1}^{N} x_i
期望(连续型) 连续随机变量的方差定义 E[X]=xfX(x)dx\mathbb{E}[X] = \int x \cdot f_X(x)dx

1.5 【小例子】某互联网公司5名程序员的月薪

以下例子与正文推导完全解耦,读者可独立阅读,用于验证方差公式。

5名程序员的月薪(单位:千元)分别为:x1=15x_1 = 15, x2=18x_2 = 18, x3=20x_3 = 20, x4=22x_4 = 22, x5=25x_5 = 25

Step 1:计算均值

μ=15+18+20+22+255=1005=20(千元)\mu = \frac{15 + 18 + 20 + 22 + 25}{5} = \frac{100}{5} = 20 \text{(千元)}

Step 2:计算方差(定义式)

σ2=15[(1520)2+(1820)2+(2020)2+(2220)2+(2520)2]\sigma^2 = \frac{1}{5}\left[(15-20)^2 + (18-20)^2 + (20-20)^2 + (22-20)^2 + (25-20)^2\right]

=15[25+4+0+4+25]=585=11.6(千元2= \frac{1}{5}\left[25 + 4 + 0 + 4 + 25\right] = \frac{58}{5} = 11.6 \text{(千元}^2\text{)}

Step 3:用计算式验证

E[X2]=225+324+400+484+6255=20585=411.6\mathbb{E}[X^2] = \frac{225 + 324 + 400 + 484 + 625}{5} = \frac{2058}{5} = 411.6

(E[X])2=202=400(\mathbb{E}[X])^2 = 20^2 = 400

σ2=E[X2](E[X])2=411.6400=11.6\sigma^2 = \mathbb{E}[X^2] - (\mathbb{E}[X])^2 = 411.6 - 400 = 11.6 \quad \checkmark

结论:方差为 11.611.6(千元2^2),标准差 σ=11.63.41\sigma = \sqrt{11.6} \approx 3.41 千元。这意味着大部分程序员的月薪在 20±3.4120 \pm 3.41 千元范围内波动。


第二部分:协方差(Covariance)

2.1 公式作用概述

协方差描述的是两个随机变量共同变化的趋势。如果说方差描述的是"一个变量自身如何波动",那么协方差描述的就是"两个变量是否一起波动"。在机器学习中,协方差是理解特征间关系、构建协方差矩阵(如高斯过程核函数)、以及主成分分析(PCA)的核心基础。当协方差为正,意味着一个变量增大时另一个也倾向于增大;为负则相反;为零则表示两者没有线性关联。

2.2 完整推导过程

定义路径:从联合偏离到协方差


步骤 0:设定场景与符号

设我们有两个随机变量 XXYY,各自有 NN 组配对观测值:{(x1,y1),(x2,y2),,(xN,yN)}\{(x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)\}

各自的均值记为:

  • μX=E[X]=1Ni=1Nxi\mu_X = \mathbb{E}[X] = \frac{1}{N}\sum_{i=1}^{N} x_i
  • μY=E[Y]=1Ni=1Nyi\mu_Y = \mathbb{E}[Y] = \frac{1}{N}\sum_{i=1}^{N} y_i

目标:度量 XXYY 是否共同偏离各自的均值。


步骤 1:联合偏离的直觉

如果 XXYY "同向变化",那么:

  • xi>μXx_i > \mu_XXX 高于其均值)时,yi>μYy_i > \mu_YYY 也倾向于高于其均值)
  • xi<μXx_i < \mu_XXX 低于其均值)时,yi<μYy_i < \mu_YYY 也倾向于低于其均值)

在这两种情况下,(xiμX)(x_i - \mu_X)(yiμY)(y_i - \mu_Y) 同号,乘积为正。

反之,如果 XXYY "反向变化",则乘积为负。


步骤 2:协方差的定义

将上述乘积取平均,得到协方差

Cov(X,Y)=1Ni=1N(xiμX)(yiμY)\boxed{\mathrm{Cov}(X, Y) = \frac{1}{N}\sum_{i=1}^{N}(x_i - \mu_X)(y_i - \mu_Y)}

等价写法(使用期望符号):

Cov(X,Y)=E[(XμX)(YμY)]\mathrm{Cov}(X, Y) = \mathbb{E}[(X - \mu_X)(Y - \mu_Y)]


步骤 3:展开为计算式

展开乘积 (xiμX)(yiμY)(x_i - \mu_X)(y_i - \mu_Y)(由多项式乘法法则):

(xiμX)(yiμY)=xiyixiμYyiμX+μXμY(x_i - \mu_X)(y_i - \mu_Y) = x_i y_i - x_i \mu_Y - y_i \mu_X + \mu_X \mu_Y

逐项求和并除以 NN

Cov(X,Y)=1Ni=1NxiyiμYNi=1NxiμXNi=1Nyi+1Ni=1NμXμY\mathrm{Cov}(X, Y) = \frac{1}{N}\sum_{i=1}^{N}x_i y_i - \frac{\mu_Y}{N}\sum_{i=1}^{N}x_i - \frac{\mu_X}{N}\sum_{i=1}^{N}y_i + \frac{1}{N}\sum_{i=1}^{N}\mu_X \mu_Y

化简各项:

  • 第一项:1Ni=1Nxiyi=E[XY]\displaystyle \frac{1}{N}\sum_{i=1}^{N}x_i y_i = \mathbb{E}[XY](乘积的期望)
  • 第二项:μYμX=μXμY\mu_Y \cdot \mu_X = \mu_X \mu_Y
  • 第三项:μXμY=μXμY\mu_X \cdot \mu_Y = \mu_X \mu_Y
  • 第四项:μXμY\mu_X \mu_Y

合并:

Cov(X,Y)=E[XY]μXμYμXμY+μXμY=E[XY]μXμY\mathrm{Cov}(X, Y) = \mathbb{E}[XY] - \mu_X \mu_Y - \mu_X \mu_Y + \mu_X \mu_Y = \mathbb{E}[XY] - \mu_X \mu_Y

计算式

Cov(X,Y)=E[XY]E[X]E[Y]\boxed{\mathrm{Cov}(X, Y) = \mathbb{E}[XY] - \mathbb{E}[X]\mathbb{E}[Y]}

【知识卡片:多项式乘法法则(分配律)】

  • 定义:两个多项式相乘,逐项交叉相乘后合并。
  • 公式(ab)(cd)=acadbc+bd(a-b)(c-d) = ac - ad - bc + bd
  • 本步作用:展开 (xiμX)(yiμY)(x_i - \mu_X)(y_i - \mu_Y),使每项可独立求和。

步骤 4:与方差的关系

X=YX = Y 时,协方差退化为方差:

Cov(X,X)=E[X2](E[X])2=Var(X)=σX2\mathrm{Cov}(X, X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2 = \mathrm{Var}(X) = \sigma_X^2

这说明方差是协方差的特例(一个变量与自身的协方差)。

2.3 直观意义

协方差的核心含义是**"两个变量是否同步变化"**。

协方差值 含义 图示特征
Cov(X,Y)>0\mathrm{Cov}(X, Y) > 0 正相关:XX 增大时 YY 也倾向于增大 散点图呈左下到右上的趋势
Cov(X,Y)<0\mathrm{Cov}(X, Y) < 0 负相关:XX 增大时 YY 倾向于减小 散点图呈左上到右下的趋势
Cov(X,Y)0\mathrm{Cov}(X, Y) \approx 0 无线性相关 散点图呈圆形或无明显趋势

协方差的三种典型情况

上图中,左侧显示正协方差:当 XX 偏离均值的方向与 YY 偏离均值的方向相同时(同为正或同为负),乘积 (xiμX)(yiμY)(x_i - \mu_X)(y_i - \mu_Y) 为正,累加后协方差为正。中间显示负协方差:偏离方向相反。右侧显示近似零协方差:偏离无系统性关联。

重要注意:协方差的数值大小受变量量纲影响。例如,将 XX 的单位从"米"改为"厘米"(乘以100),协方差会增大100倍,但变量间的实际关系并未改变。这是相关系数要解决的问题。

2.4 本推导中的数学知识清单

概念名称 在本推导中的具体作用 一句话定义或公式表达
期望(双变量) 定义协方差为联合偏离的期望 E[XY]=1Nxiyi\mathbb{E}[XY] = \frac{1}{N}\sum x_i y_i
多项式乘法法则 展开 (xiμX)(yiμY)(x_i-\mu_X)(y_i-\mu_Y) (ab)(cd)=acadbc+bd(a-b)(c-d) = ac-ad-bc+bd
求和的线性性质 拆分四项分别求和 (ai+bi)=ai+bi\sum(a_i+b_i) = \sum a_i + \sum b_i
方差 协方差的特例(X=YX=Y Cov(X,X)=Var(X)\mathrm{Cov}(X,X) = \mathrm{Var}(X)

2.5 【小例子】5名学生的高等数学与线性代数成绩

以下例子与正文推导完全解耦,读者可独立阅读,用于验证协方差公式。

5名学生两门课的成绩如下:

学生 高等数学 xix_i 线性代数 yiy_i
A 70 65
B 80 75
C 85 90
D 90 85
E 95 100

Step 1:计算各自均值

μX=70+80+85+90+955=84,μY=65+75+90+85+1005=83\mu_X = \frac{70+80+85+90+95}{5} = 84, \quad \mu_Y = \frac{65+75+90+85+100}{5} = 83

Step 2:用定义式计算协方差

Cov(X,Y)=15i=15(xi84)(yi83)\mathrm{Cov}(X,Y) = \frac{1}{5}\sum_{i=1}^{5}(x_i - 84)(y_i - 83)

逐项计算偏离乘积:

  • A:(7084)(6583)=(14)(18)=252(70-84)(65-83) = (-14)(-18) = 252
  • B:(8084)(7583)=(4)(8)=32(80-84)(75-83) = (-4)(-8) = 32
  • C:(8584)(9083)=(1)(7)=7(85-84)(90-83) = (1)(7) = 7
  • D:(9084)(8583)=(6)(2)=12(90-84)(85-83) = (6)(2) = 12
  • E:(9584)(10083)=(11)(17)=187(95-84)(100-83) = (11)(17) = 187

Cov(X,Y)=252+32+7+12+1875=4905=98\mathrm{Cov}(X,Y) = \frac{252 + 32 + 7 + 12 + 187}{5} = \frac{490}{5} = 98

Step 3:用计算式验证

E[XY]=70×65+80×75+85×90+90×85+95×1005\mathbb{E}[XY] = \frac{70\times65 + 80\times75 + 85\times90 + 90\times85 + 95\times100}{5}

=4550+6000+7650+7650+95005=353505=7070= \frac{4550 + 6000 + 7650 + 7650 + 9500}{5} = \frac{35350}{5} = 7070

E[X]E[Y]=84×83=6972\mathbb{E}[X]\mathbb{E}[Y] = 84 \times 83 = 6972

Cov(X,Y)=70706972=98\mathrm{Cov}(X,Y) = 7070 - 6972 = 98 \quad \checkmark

结论:协方差为 98>098 > 0,说明数学成绩越高的学生,线性代数成绩也倾向于越高(正相关)。注意这个数值的单位是"分2^2",若要比较不同课程对的相关性强度,需要使用相关系数。


第三部分:相关系数(Pearson Correlation Coefficient)

3.1 公式作用概述

皮尔逊相关系数(Pearson Correlation Coefficient)是协方差的标准化版本,它将相关性度量归一化到 [1,+1][-1, +1] 的固定区间内,消除了变量量纲和尺度的影响。在机器学习中,相关系数用于特征选择(去除高度共线的特征)、理解特征与目标变量的关系、以及评估模型预测值与真实值的匹配程度(如预测值与标签的相关性)。相关系数为 +1+1 表示完全正线性相关,1-1 表示完全负线性相关,00 表示无线性相关。

3.2 完整推导过程

核心思想:消除量纲,标准化协方差


步骤 0:问题分析

协方差 Cov(X,Y)\mathrm{Cov}(X, Y) 存在两个缺陷:

  1. 量纲依赖:若将 XX 的单位从"米"改为"厘米"(数值乘以100),协方差也会乘以100
  2. 数值范围不确定:协方差可以是任意实数,难以判断"多大算大"

解决方案:将 XXYY 都转化为无量纲的标准化变量(均值为0、标准差为1),再计算协方差。


步骤 1:标准化(Z分数变换)

XXYY 分别进行标准化变换

ZX=XμXσX,ZY=YμYσYZ_X = \frac{X - \mu_X}{\sigma_X}, \quad Z_Y = \frac{Y - \mu_Y}{\sigma_Y}

其中 σX=Var(X)\sigma_X = \sqrt{\mathrm{Var}(X)}σY=Var(Y)\sigma_Y = \sqrt{\mathrm{Var}(Y)} 是标准差。

【知识卡片:Z分数(标准化变换)】

  • 定义:将原始变量转化为"距离均值有几个标准差"的无量纲量。
  • 公式Z=XμσZ = \frac{X - \mu}{\sigma}
  • 本步作用:消除变量的量纲和尺度差异,使不同变量可比。

步骤 2:标准化变量的性质

验证标准化变量的均值和方差:

均值

E[ZX]=E[XμXσX]=1σXE[XμX]=1σX(μXμX)=0\mathbb{E}[Z_X] = \mathbb{E}\left[\frac{X - \mu_X}{\sigma_X}\right] = \frac{1}{\sigma_X}\mathbb{E}[X - \mu_X] = \frac{1}{\sigma_X}(\mu_X - \mu_X) = 0

方差

Var(ZX)=Var(XμXσX)=1σX2Var(XμX)=1σX2Var(X)=σX2σX2=1\mathrm{Var}(Z_X) = \mathrm{Var}\left(\frac{X - \mu_X}{\sigma_X}\right) = \frac{1}{\sigma_X^2}\mathrm{Var}(X - \mu_X) = \frac{1}{\sigma_X^2}\mathrm{Var}(X) = \frac{\sigma_X^2}{\sigma_X^2} = 1

【知识卡片:方差的数乘性质】

  • 定义:常数倍缩放对方差的影响。
  • 公式Var(aX+b)=a2Var(X)\mathrm{Var}(aX + b) = a^2 \mathrm{Var}(X)a,ba, b 为常数,bb 不影响方差)
  • 本步作用:计算标准化变量的方差为1。

步骤 3:相关系数的定义

相关系数定义为标准化变量的协方差:

ρX,Y=Cov(ZX,ZY)=Cov(XμXσX,YμYσY)\rho_{X,Y} = \mathrm{Cov}(Z_X, Z_Y) = \mathrm{Cov}\left(\frac{X - \mu_X}{\sigma_X}, \frac{Y - \mu_Y}{\sigma_Y}\right)

将常数 1σX\frac{1}{\sigma_X}1σY\frac{1}{\sigma_Y} 提出(由协方差的双线性性质):

ρX,Y=1σXσYCov(XμX,YμY)\rho_{X,Y} = \frac{1}{\sigma_X \sigma_Y} \mathrm{Cov}(X - \mu_X, Y - \mu_Y)

由于 Cov(XμX,YμY)=Cov(X,Y)\mathrm{Cov}(X - \mu_X, Y - \mu_Y) = \mathrm{Cov}(X, Y)(减去常数不改变协方差):

ρX,Y=Cov(X,Y)σXσY=Cov(X,Y)Var(X)Var(Y)\boxed{\rho_{X,Y} = \frac{\mathrm{Cov}(X, Y)}{\sigma_X \sigma_Y} = \frac{\mathrm{Cov}(X, Y)}{\sqrt{\mathrm{Var}(X)}\sqrt{\mathrm{Var}(Y)}}}

代入协方差的计算式:

ρX,Y=E[XY]E[X]E[Y]E[X2](E[X])2E[Y2](E[Y])2\rho_{X,Y} = \frac{\mathbb{E}[XY] - \mathbb{E}[X]\mathbb{E}[Y]}{\sqrt{\mathbb{E}[X^2] - (\mathbb{E}[X])^2} \cdot \sqrt{\mathbb{E}[Y^2] - (\mathbb{E}[Y])^2}}

【知识卡片:协方差的双线性性质】

  • 定义:协方差对两个变量分别保持线性。
  • 公式Cov(aX,bY)=abCov(X,Y)\mathrm{Cov}(aX, bY) = ab \cdot \mathrm{Cov}(X, Y)Cov(X+c,Y+d)=Cov(X,Y)\mathrm{Cov}(X + c, Y + d) = \mathrm{Cov}(X, Y)
  • 本步作用:将标准化常数提出协方差符号。

步骤 4:证明取值范围 [1,1][-1, 1](柯西-施瓦茨不等式)

【知识卡片:柯西-施瓦茨不等式(Cauchy-Schwarz Inequality)】

  • 定义:两个向量内积的绝对值不超过它们模长的乘积,是内积空间的基本不等式。
  • 公式u,v2u,uv,v|\langle \mathbf{u}, \mathbf{v} \rangle|^2 \leq \langle \mathbf{u}, \mathbf{u} \rangle \cdot \langle \mathbf{v}, \mathbf{v} \rangle
  • 本步作用:限制相关系数的绝对值不超过1。

(xiμX)(x_i - \mu_X)(yiμY)(y_i - \mu_Y) 视为向量 a\mathbf{a}b\mathbf{b} 的分量。由柯西-施瓦茨不等式:

i=1N(xiμX)(yiμY)2(i=1N(xiμX)2)(i=1N(yiμY)2)\left|\sum_{i=1}^{N}(x_i - \mu_X)(y_i - \mu_Y)\right|^2 \leq \left(\sum_{i=1}^{N}(x_i - \mu_X)^2\right)\left(\sum_{i=1}^{N}(y_i - \mu_Y)^2\right)

两边除以 N2N^2

Cov(X,Y)2σX2σY2|\mathrm{Cov}(X, Y)|^2 \leq \sigma_X^2 \cdot \sigma_Y^2

取平方根:

Cov(X,Y)σXσY|\mathrm{Cov}(X, Y)| \leq \sigma_X \sigma_Y

因此:

Cov(X,Y)σXσY11ρX,Y1\left|\frac{\mathrm{Cov}(X, Y)}{\sigma_X \sigma_Y}\right| \leq 1 \quad \Rightarrow \quad -1 \leq \rho_{X,Y} \leq 1

等号成立条件:当且仅当 Y=aX+bY = aX + ba0a \neq 0)时,ρX,Y=1|\rho_{X,Y}| = 1(完全线性相关)。

3.3 直观意义

相关系数是**"消除量纲后的协方差",它告诉我们两个变量之间线性关系的强度和方向**。

相关系数值 线性关系强度
ρ=+1\rho = +1 完全正线性相关(Y=aX+b,a>0Y = aX + b, a > 0
0.7ρ<10.7 \leq \rho < 1 强正相关
0.3ρ<0.70.3 \leq \rho < 0.7 中等正相关
0.3<ρ<0.3-0.3 < \rho < 0.3 弱相关或无线性相关
0.7<ρ0.3-0.7 < \rho \leq -0.3 中等负相关
1<ρ0.7-1 < \rho \leq -0.7 强负相关
ρ=1\rho = -1 完全负线性相关(Y=aX+b,a<0Y = aX + b, a < 0

相关系数:消除量纲后的相关性度量(范围 )

上图展示了三种典型情况:强正相关(左,点紧密沿左上到右下对角线排列)、中等负相关(中,点呈反向趋势)、零相关(右,点无明确方向)。注意相关系数只度量线性关系,即使 ρ=0\rho = 0,两个变量仍可能存在非线性关系(如抛物线关系)。

3.4 本推导中的数学知识清单

概念名称 在本推导中的具体作用 一句话定义或公式表达
Z分数标准化 消除量纲,使变量可比较 Z=XμσZ = \frac{X - \mu}{\sigma}
方差的数乘性质 计算标准化变量的方差 Var(aX)=a2Var(X)\mathrm{Var}(aX) = a^2\mathrm{Var}(X)
协方差双线性性质 提出标准化常数 Cov(aX,bY)=abCov(X,Y)\mathrm{Cov}(aX,bY) = ab\cdot\mathrm{Cov}(X,Y)
柯西-施瓦茨不等式 证明 $ \rho
标准差 相关系数的分母(归一化因子) σ=Var(X)\sigma = \sqrt{\mathrm{Var}(X)}

3.5 【小例子】身高与体重的相关性(消除量纲对比)

以下例子与正文推导完全解耦,读者可独立阅读,用于验证相关系数公式,并观察协方差与相关系数的区别。

5名成年人的身高(厘米)和体重(公斤):

人员 身高 xix_i 体重 yiy_i
A 160 55
B 165 60
C 170 65
D 175 70
E 180 75

Step 1:计算均值与方差

μX=160+165+170+175+1805=170,μY=55+60+65+70+755=65\mu_X = \frac{160+165+170+175+180}{5} = 170, \quad \mu_Y = \frac{55+60+65+70+75}{5} = 65

Var(X)=100+25+0+25+1005=50,σX=507.07\mathrm{Var}(X) = \frac{100+25+0+25+100}{5} = 50, \quad \sigma_X = \sqrt{50} \approx 7.07

Var(Y)=100+25+0+25+1005=50,σY=507.07\mathrm{Var}(Y) = \frac{100+25+0+25+100}{5} = 50, \quad \sigma_Y = \sqrt{50} \approx 7.07

Step 2:计算协方差

偏离乘积项:(10)(10)+(5)(5)+0+(5)(5)+(10)(10)=100+25+0+25+100=250(-10)(-10) + (-5)(-5) + 0 + (5)(5) + (10)(10) = 100 + 25 + 0 + 25 + 100 = 250

Cov(X,Y)=2505=50(厘米公斤)\mathrm{Cov}(X,Y) = \frac{250}{5} = 50 \text{(厘米$\cdot$公斤)}

Step 3:计算相关系数

ρX,Y=Cov(X,Y)σXσY=5050×50=5050=1.0\rho_{X,Y} = \frac{\mathrm{Cov}(X,Y)}{\sigma_X \sigma_Y} = \frac{50}{\sqrt{50} \times \sqrt{50}} = \frac{50}{50} = 1.0

Step 4:验证量纲消除效果

假设将身高单位改为"米":xi=xi/100={1.60,1.65,1.70,1.75,1.80}x'_i = x_i / 100 = \{1.60, 1.65, 1.70, 1.75, 1.80\}

新的协方差 Cov(X,Y)=50/100=0.5\mathrm{Cov}(X',Y) = 50/100 = 0.5(数值缩小100倍),但相关系数仍为:

ρX,Y=0.50.005×50=0.50.0707×7.07=0.50.5=1.0\rho_{X',Y} = \frac{0.5}{\sqrt{0.005} \times \sqrt{50}} = \frac{0.5}{0.0707 \times 7.07} = \frac{0.5}{0.5} = 1.0 \quad \checkmark

结论:相关系数为 1.01.0,表示身高与体重完全正线性相关(本例数据恰好呈完美线性关系 y=x105y = x - 105)。无论将身高单位改为"米"还是"厘米",相关系数始终不变——这正是标准化的威力。


第四部分:KL散度(Kullback-Leibler Divergence)

4.1 公式作用概述

KL散度(又称相对熵,Relative Entropy)度量的是:当我们用一个近似分布 QQ 来代表真实分布 PP 时,会损失多少信息。它不是真正的"距离"(因为不满足对称性和三角不等式),但在机器学习中无处不在——从变分自编码器(VAE)的正则化项、到策略梯度方法中的信任区域、再到信息论中的压缩效率分析。KL散度的核心直觉是:在 PP 有显著概率的区域,如果 QQ 的概率很小,就会受到很大的"惩罚"。

4.2 完整推导过程

信息论基础路径:从对数似然比到KL散度


步骤 0:动机——为什么要比较两个分布?

在机器学习中,我们经常需要用一个简单的分布 QQ 去近似一个复杂的分布 PP(例如用高斯分布近似复杂的后验分布)。我们需要量化这个近似有多"好"。

核心思想:用对数似然比 logP(x)Q(x)\log\frac{P(x)}{Q(x)} 来衡量在某点 xx 处两个分布的局部差异,再以 P(x)P(x) 为权重做全局平均。


步骤 1:对数似然比

对单个事件 xx,定义对数似然比(Log-Likelihood Ratio):

Λ(x)=logP(x)Q(x)\Lambda(x) = \log\frac{P(x)}{Q(x)}

其含义:

  • P(x)>Q(x)P(x) > Q(x),则 Λ(x)>0\Lambda(x) > 0 → 在 xxQQ 低估了 PP 的概率
  • P(x)<Q(x)P(x) < Q(x),则 Λ(x)<0\Lambda(x) < 0 → 在 xxQQ 高估了 PP 的概率
  • P(x)=Q(x)P(x) = Q(x),则 Λ(x)=0\Lambda(x) = 0 → 两个分布在该点一致

【知识卡片:对数函数的基本性质】

  • 定义loga(x)\log_a(x)axa^x 的反函数,在信息论中通常用自然对数 ln\ln(底数为 ee)。
  • 关键性质logab=logalogb\log\frac{a}{b} = \log a - \log blog1=0\log 1 = 0logx>0\log x > 0x>1x > 1logx<0\log x < 00<x<10 < x < 1
  • 本步作用:将概率比转化为可正可负的得分,便于累积衡量差异。

步骤 2:以 PP 为权重的期望(KL散度的定义)

KL散度定义为对数似然比在分布 PP 下的期望

DKL(PQ)=ExP[logP(x)Q(x)]=+P(x)logP(x)Q(x)dx\boxed{D_{KL}(P \| Q) = \mathbb{E}_{x \sim P}\left[\log\frac{P(x)}{Q(x)}\right] = \int_{-\infty}^{+\infty} P(x) \log\frac{P(x)}{Q(x)} \, dx}

(对于离散分布,积分替换为求和:DKL(PQ)=xP(x)logP(x)Q(x)D_{KL}(P \| Q) = \sum_{x} P(x) \log\frac{P(x)}{Q(x)}

展开形式

DKL(PQ)=P(x)logP(x)dxP(x)logQ(x)dxD_{KL}(P \| Q) = \int P(x) \log P(x) \, dx - \int P(x) \log Q(x) \, dx

=H(P)+H(P,Q)= -H(P) + H(P, Q)

其中:

  • H(P)=P(x)logP(x)dxH(P) = -\int P(x) \log P(x) \, dxPP微分熵(Differential Entropy)
  • H(P,Q)=P(x)logQ(x)dxH(P, Q) = -\int P(x) \log Q(x) \, dxPPQQ 之间的交叉熵(Cross-Entropy)

【知识卡片:熵(Entropy)】

  • 定义:熵度量一个概率分布的不确定性信息量,分布越"平坦"(均匀),熵越大。
  • 公式H(P)=xP(x)logP(x)H(P) = -\sum_{x} P(x) \log P(x)H(P)=P(x)logP(x)dxH(P) = -\int P(x) \log P(x) \, dx
  • 本步作用:KL散度可表示为交叉熵与熵之差:DKL(PQ)=H(P,Q)H(P)D_{KL}(P\|Q) = H(P,Q) - H(P)

【知识卡片:交叉熵(Cross-Entropy)】

  • 定义:用分布 QQ 编码来自 PP 的随机变量所需的平均信息量。
  • 公式H(P,Q)=EP[logQ(x)]=P(x)logQ(x)dxH(P, Q) = -\mathbb{E}_{P}[\log Q(x)] = -\int P(x) \log Q(x) \, dx
  • 本步作用:KL散度 = 交叉熵 - 熵,表示用 QQ 替代 PP 的额外编码代价。

步骤 3:证明 DKL(PQ)0D_{KL}(P \| Q) \geq 0(非负性)

【知识卡片:Jensen不等式(Jensen's Inequality)】

  • 定义:对于凸函数 φ\varphi,函数值的期望不小于期望的函数值,即 φ(E[X])E[φ(X)]\varphi(\mathbb{E}[X]) \leq \mathbb{E}[\varphi(X)]。对于凹函数,不等号方向相反。
  • 公式:若 φ\varphi 是凸函数,则 φ(E[X])E[φ(X)]\varphi(\mathbb{E}[X]) \leq \mathbb{E}[\varphi(X)]
  • 本步作用:利用 log(x)-\log(x) 的凸性证明KL散度非负。

证明

首先注意 log(x)-\log(x)凸函数(因为二阶导数 (logx)=1x2>0(-\log x)'' = \frac{1}{x^2} > 0)。

DKL(PQ)=P(x)logP(x)Q(x)dx=P(x)(logQ(x)P(x))dxD_{KL}(P \| Q) = \int P(x) \log\frac{P(x)}{Q(x)} dx = \int P(x) \left(-\log\frac{Q(x)}{P(x)}\right) dx

t(x)=Q(x)P(x)t(x) = \frac{Q(x)}{P(x)},则:

DKL(PQ)=P(x)(logt(x))dx=EP[logt(x)]D_{KL}(P \| Q) = \int P(x) \left(-\log t(x)\right) dx = \mathbb{E}_{P}[-\log t(x)]

由Jensen不等式(log-\log 是凸函数):

EP[logt(x)]log(EP[t(x)])\mathbb{E}_{P}[-\log t(x)] \geq -\log(\mathbb{E}_{P}[t(x)])

计算 EP[t(x)]\mathbb{E}_{P}[t(x)]

EP[t(x)]=P(x)Q(x)P(x)dx=Q(x)dx=1\mathbb{E}_{P}[t(x)] = \int P(x) \cdot \frac{Q(x)}{P(x)} dx = \int Q(x) dx = 1

因此:

DKL(PQ)log(1)=0D_{KL}(P \| Q) \geq -\log(1) = 0

等号成立条件DKL(PQ)=0D_{KL}(P \| Q) = 0 当且仅当 P=QP = Q 几乎处处成立。


步骤 4:KL散度的非对称性

KL散度不满足对称性

DKL(PQ)DKL(QP)D_{KL}(P \| Q) \neq D_{KL}(Q \| P)

证明(举例说明):

PPQQ 是两个一维高斯分布:

  • P(x)=N(x;μP,σP2)P(x) = \mathcal{N}(x; \mu_P, \sigma_P^2)
  • Q(x)=N(x;μQ,σQ2)Q(x) = \mathcal{N}(x; \mu_Q, \sigma_Q^2)

其KL散度有闭式解

DKL(PQ)=logσQσP+σP2+(μPμQ)22σQ212D_{KL}(P \| Q) = \log\frac{\sigma_Q}{\sigma_P} + \frac{\sigma_P^2 + (\mu_P - \mu_Q)^2}{2\sigma_Q^2} - \frac{1}{2}

交换 PPQQ

DKL(QP)=logσPσQ+σQ2+(μQμP)22σP212D_{KL}(Q \| P) = \log\frac{\sigma_P}{\sigma_Q} + \frac{\sigma_Q^2 + (\mu_Q - \mu_P)^2}{2\sigma_P^2} - \frac{1}{2}

显然 DKL(PQ)DKL(QP)D_{KL}(P \| Q) \neq D_{KL}(Q \| P)(除非 σP=σQ\sigma_P = \sigma_QμP=μQ\mu_P = \mu_Q,即 P=QP = Q)。

直观解释

  • DKL(PQ)D_{KL}(P \| Q):以 PP 为基准,关注 PP 有概率的区域 → "QQ 是否覆盖了 PP 的所有重要区域"
  • DKL(QP)D_{KL}(Q \| P):以 QQ 为基准,关注 QQ 有概率的区域 → "PP 是否覆盖了 QQ 的所有重要区域"

在机器学习中,DKL(PQ)D_{KL}(P \| Q) 被称为正向KL(Forward KL),倾向于使 QQ 覆盖 PP 的所有模式(均值寻求,mean-seeking);DKL(QP)D_{KL}(Q \| P) 被称为反向KL(Reverse KL),倾向于使 QQ 只覆盖 PP 的一个模式(模态寻求,mode-seeking)。

4.3 直观意义

KL散度的核心含义是**"用 QQ 近似 PP 时的信息损失"**。

KL散度的几何意义

左图中,蓝色曲线 P(x)P(x) 是真实分布,红色曲线 Q(x)Q(x) 是近似分布。KL散度在 P(x)P(x) 较大的区域(蓝色曲线的峰值附近)赋予更高权重。如果 QQ 在这些区域显著低于 PP(即 QQ 未能覆盖 PP 的重要区域),KL散度会受到很大惩罚。右图展示了对数比率函数 logP(x)Q(x)\log\frac{P(x)}{Q(x)} 的形状,当 P>QP > Q 时为正(蓝色区域),当 P<QP < Q 时为负(红色区域)。

4.4 本推导中的数学知识清单

概念名称 在本推导中的具体作用 一句话定义或公式表达
对数似然比 度量两个分布在单点的局部差异 Λ(x)=logP(x)Q(x)\Lambda(x) = \log\frac{P(x)}{Q(x)}
期望(关于分布 PP KL散度的定义基础 EP[f(x)]=P(x)f(x)dx\mathbb{E}_{P}[f(x)] = \int P(x)f(x)dx
KL = 交叉熵 - 熵 H(P)=P(x)logP(x)dxH(P) = -\int P(x)\log P(x)dx
交叉熵 QQ 编码 PP 的代价 H(P,Q)=P(x)logQ(x)dxH(P,Q) = -\int P(x)\log Q(x)dx
Jensen不等式 证明KL散度非负 φ(E[X])E[φ(X)]\varphi(\mathbb{E}[X]) \leq \mathbb{E}[\varphi(X)]φ\varphi 凸)
凸函数/凹函数 logx-\log x 的凸性是证明关键 φ(x)>0\varphi''(x) > 0φ\varphi

4.5 【小例子】天气预报的两种概率分布

以下例子与正文推导完全解耦,读者可独立阅读,用于验证KL散度的离散形式计算,并体会其非对称性。

某地明天是否下雨,气象站 AA(经验模型)和气象站 BB(新模型)给出的概率分布如下:

事件 xx P(x)P(x)(站A:经验分布) Q(x)Q(x)(站B:新模型近似)
晴天(x1x_1 0.50.5 0.60.6
多云(x2x_2 0.30.3 0.20.2
下雨(x3x_3 0.20.2 0.20.2

Step 1:计算正向KL散度 DKL(PQ)D_{KL}(P \| Q)

DKL(PQ)=i=13P(xi)logP(xi)Q(xi)D_{KL}(P \| Q) = \sum_{i=1}^{3} P(x_i) \log\frac{P(x_i)}{Q(x_i)}

逐项计算:

  • 晴天:0.5×log0.50.6=0.5×log(0.833)0.5×(0.182)=0.0910.5 \times \log\frac{0.5}{0.6} = 0.5 \times \log(0.833) \approx 0.5 \times (-0.182) = -0.091
  • 多云:0.3×log0.30.2=0.3×log(1.5)0.3×0.405=0.1220.3 \times \log\frac{0.3}{0.2} = 0.3 \times \log(1.5) \approx 0.3 \times 0.405 = 0.122
  • 下雨:0.2×log0.20.2=0.2×log(1)=00.2 \times \log\frac{0.2}{0.2} = 0.2 \times \log(1) = 0

DKL(PQ)=0.091+0.122+0=0.031 natsD_{KL}(P \| Q) = -0.091 + 0.122 + 0 = 0.031 \text{ nats}

Step 2:计算反向KL散度 DKL(QP)D_{KL}(Q \| P)

DKL(QP)=i=13Q(xi)logQ(xi)P(xi)D_{KL}(Q \| P) = \sum_{i=1}^{3} Q(x_i) \log\frac{Q(x_i)}{P(x_i)}

逐项计算:

  • 晴天:0.6×log0.60.5=0.6×log(1.2)0.6×0.182=0.1090.6 \times \log\frac{0.6}{0.5} = 0.6 \times \log(1.2) \approx 0.6 \times 0.182 = 0.109
  • 多云:0.2×log0.20.3=0.2×log(0.667)0.2×(0.405)=0.0810.2 \times \log\frac{0.2}{0.3} = 0.2 \times \log(0.667) \approx 0.2 \times (-0.405) = -0.081
  • 下雨:0.2×log0.20.2=0.2×0=00.2 \times \log\frac{0.2}{0.2} = 0.2 \times 0 = 0

DKL(QP)=0.1090.081+0=0.028 natsD_{KL}(Q \| P) = 0.109 - 0.081 + 0 = 0.028 \text{ nats}

Step 3:验证非对称性

DKL(PQ)=0.0310.028=DKL(QP)D_{KL}(P \| Q) = 0.031 \neq 0.028 = D_{KL}(Q \| P)

同时 DKL(PQ)>0D_{KL}(P \| Q) > 0DKL(QP)>0D_{KL}(Q \| P) > 0,说明 PQP \neq Q

结论:两个分布之间存在差异但不悬殊。正向KL DKL(PQ)D_{KL}(P \| Q) 更关注站A认为高概率的事件(晴天),在这些事件上站B的概率略低,因此正向KL稍大。反向KL则反之。单位"nats"来自自然对数的底数 ee,若换底为2则单位为"bits",数值相差 log2e1.443\log_2 e \approx 1.443 倍。


第五部分:ELBO(Evidence Lower Bound)

5.1 公式作用概述

ELBO(Evidence Lower BOund,证据下界)是变分推断(Variational Inference)的核心公式。在机器学习中,我们经常遇到需要计算后验分布 P(zx)P(z \mid x) 的问题(例如,给定观测数据 xx,推断隐变量 zz 的分布),但这个后验往往因为归一化常数(边际似然 P(x)P(x))涉及难以计算的积分而无法直接求解。ELBO通过引入一个可计算的近似分布 Q(z)Q(z),构造了对数边际似然 logP(x)\log P(x) 的一个下界,将推断问题转化为优化问题。最大化ELBO既能让近似分布 Q(z)Q(z) 逼近真实后验,又能获得边际似然的估计。变分自编码器(VAE)的训练目标本质上就是最大化ELBO。

5.2 完整推导过程

核心路径:从边际似然到ELBO


步骤 0:问题设定与符号定义

场景:我们有观测数据 xx,以及隐变量 zz(潜在变量,不可直接观测)。目标是推断后验分布 P(zx)P(z \mid x)

符号定义(所有符号首次出现,严格定义):

符号 含义 类型
xXx \in \mathcal{X} 观测变量(数据),X\mathcal{X} 是观测空间 随机变量/向量
zZz \in \mathcal{Z} 隐变量(潜在变量),Z\mathcal{Z} 是隐空间 随机变量/向量
P(x)P(x) 边际似然(Marginal Likelihood),又称证据(Evidence) 标量
P(xz)P(x \mid z) 似然函数(Likelihood),给定 zzxx 的分布 概率分布
P(z)P(z) 先验分布(Prior),对 zz 的预设信念 概率分布
P(zx)P(z \mid x) 后验分布(Posterior),给定 xxzz 的分布 概率分布(目标)
Q(z)Q(z)Qϕ(z)Q_{\phi}(z) 变分分布(Variational Distribution),对后验的近似 概率分布(由参数 ϕ\phi 定义)

【知识卡片:贝叶斯定理(Bayes' Theorem)】

  • 定义:在已知先验和似然的情况下,计算后验概率的基本定理,是贝叶斯统计的基石。
  • 公式P(zx)=P(xz)P(z)P(x)=P(xz)P(z)P(xz)P(z)dz\displaystyle P(z \mid x) = \frac{P(x \mid z) P(z)}{P(x)} = \frac{P(x \mid z) P(z)}{\int P(x \mid z) P(z) \, dz}
  • 本步作用:后验分布的定义。分母 P(x)=P(xz)P(z)dzP(x) = \int P(x \mid z) P(z) \, dz 通常难以计算(涉及对 zz 的积分),这是需要ELBO的根本原因。

步骤 1:写出边际似然

对数边际似然(Log Evidence)是我们想要计算或最大化的目标:

logP(x)=logZP(x,z)dz\log P(x) = \log \int_{\mathcal{Z}} P(x, z) \, dz

其中 P(x,z)=P(xz)P(z)P(x, z) = P(x \mid z) P(z)联合概率分布(由概率乘法法则)。

【知识卡片:概率乘法法则(Product Rule)】

  • 定义:联合概率等于条件概率乘以边缘概率。
  • 公式P(A,B)=P(AB)P(B)=P(BA)P(A)P(A, B) = P(A \mid B) P(B) = P(B \mid A) P(A)
  • 本步作用:将联合分布分解为似然和先验的乘积。

步骤 2:引入变分分布 Q(z)Q(z)

核心技巧:将积分内部乘以 Q(z)Q(z)=1\frac{Q(z)}{Q(z)} = 1(不改变值):

logP(x)=logZP(x,z)Q(z)Q(z)dz=logZQ(z)P(x,z)Q(z)dz\log P(x) = \log \int_{\mathcal{Z}} P(x, z) \cdot \frac{Q(z)}{Q(z)} \, dz = \log \int_{\mathcal{Z}} Q(z) \cdot \frac{P(x, z)}{Q(z)} \, dz

这个技巧的关键在于:Q(z)[]dz\int Q(z) \cdot [\cdots] \, dz 正是关于 Q(z)Q(z) 的期望的形式。


步骤 3:识别期望形式

logP(x)=logEzQ(z)[P(x,z)Q(z)]\log P(x) = \log \mathbb{E}_{z \sim Q(z)}\left[\frac{P(x, z)}{Q(z)}\right]

这里 EzQ(z)[]\mathbb{E}_{z \sim Q(z)}[\cdot] 表示随机变量 zz 服从分布 Q(z)Q(z) 时的期望。


步骤 4:应用Jensen不等式

【知识卡片:Jensen不等式(对凹函数版本)】

  • 定义:对于凹函数 ff,有 f(E[X])E[f(X)]f(\mathbb{E}[X]) \geq \mathbb{E}[f(X)]。不等号方向与凸函数版本相反。
  • 公式:若 ff 是凹函数,则 f(E[X])E[f(X)]f(\mathbb{E}[X]) \geq \mathbb{E}[f(X)]
  • 本步作用log\log 是凹函数,因此 log(E[])E[log()]\log(\mathbb{E}[\cdot]) \geq \mathbb{E}[\log(\cdot)],将对数移入期望内部。

由于 log()\log(\cdot)严格凹函数(二阶导数 (logx)=1x2<0(\log x)'' = -\frac{1}{x^2} < 0),应用Jensen不等式:

logP(x)=logEQ(z)[P(x,z)Q(z)]EQ(z)[logP(x,z)Q(z)]\log P(x) = \log \mathbb{E}_{Q(z)}\left[\frac{P(x, z)}{Q(z)}\right] \geq \mathbb{E}_{Q(z)}\left[\log\frac{P(x, z)}{Q(z)}\right]

关键理解:Jensen不等式将外部的对数"推入"了期望内部,这个操作产生了一个下界——因为凹函数的图像在弦的上方,函数值的期望不大于期望的函数值。

Jensen不等式与对数凹性:ELBO推导的核心数学工具

左图(凸函数 f(x)=x2f(x) = x^2):展示了Jensen不等式的几何意义——函数在割线下方,即 f(E[X])E[f(X)]f(\mathbb{E}[X]) \leq \mathbb{E}[f(X)]。红色星号标记了 E[f(X)]\mathbb{E}[f(X)](函数值的期望),蓝色星号标记了 f(E[X])f(\mathbb{E}[X])(期望的函数值),前者恒大于等于后者。右图(对数函数):展示了 log(x)\log(x) 的凹性——凹函数位于其切线下方,即 log(x)\log(x) \leq 切线。正是这一性质使得 log(E[X])E[logX]\log(\mathbb{E}[X]) \geq \mathbb{E}[\log X] 成立,从而构造出ELBO的下界。


步骤 5:定义ELBO

不等式右侧即为 ELBO(记作 L(x)\mathcal{L}(x)ELBO(x)\mathrm{ELBO}(x)):

L(x)=EzQ(z)[logP(x,z)Q(z)]logP(x)\boxed{\mathcal{L}(x) = \mathbb{E}_{z \sim Q(z)}\left[\log\frac{P(x, z)}{Q(z)}\right] \leq \log P(x)}

ELBO是 logP(x)\log P(x)下界(Lower Bound),因此得名。


步骤 6:展开ELBO——两种等价形式

形式一:重构项 - KL散度(最常用形式)

将对数拆开:

L(x)=EQ(z)[logP(x,z)logQ(z)]\mathcal{L}(x) = \mathbb{E}_{Q(z)}\left[\log P(x, z) - \log Q(z)\right]

将联合概率 P(x,z)=P(xz)P(z)P(x, z) = P(x \mid z) P(z) 代入:

=EQ(z)[logP(xz)+logP(z)logQ(z)]= \mathbb{E}_{Q(z)}\left[\log P(x \mid z) + \log P(z) - \log Q(z)\right]

由期望的线性性质拆分为两项:

=EQ(z)[logP(xz)]+EQ(z)[logP(z)logQ(z)]= \mathbb{E}_{Q(z)}\left[\log P(x \mid z)\right] + \mathbb{E}_{Q(z)}\left[\log P(z) - \log Q(z)\right]

第二项正是 负的KL散度

EQ(z)[logP(z)logQ(z)]=EQ(z)[logP(z)Q(z)]=DKL(Q(z)P(z))\mathbb{E}_{Q(z)}\left[\log P(z) - \log Q(z)\right] = \mathbb{E}_{Q(z)}\left[\log\frac{P(z)}{Q(z)}\right] = -D_{KL}(Q(z) \| P(z))

因此得到最常用的ELBO表达式

L(x)=EzQ(z)[logP(xz)]重构项(Reconstruction Term)DKL(Q(z)P(z))正则化项(Regularization Term)\boxed{\mathcal{L}(x) = \underbrace{\mathbb{E}_{z \sim Q(z)}\left[\log P(x \mid z)\right]}_{\text{重构项(Reconstruction Term)}} - \underbrace{D_{KL}(Q(z) \| P(z))}_{\text{正则化项(Regularization Term)}}}

形式二:对数似然 + 后验近似误差

另一种展开方式(在变分推断理论分析中常用):

L(x)=logP(x)DKL(Q(z)P(zx))\mathcal{L}(x) = \log P(x) - D_{KL}(Q(z) \| P(z \mid x))

推导

L(x)=EQ(z)[logP(x,z)Q(z)]=EQ(z)[logP(zx)P(x)Q(z)]\mathcal{L}(x) = \mathbb{E}_{Q(z)}\left[\log\frac{P(x, z)}{Q(z)}\right] = \mathbb{E}_{Q(z)}\left[\log\frac{P(z \mid x) P(x)}{Q(z)}\right]

=EQ(z)[logP(x)+logP(zx)Q(z)]=logP(x)+EQ(z)[logP(zx)Q(z)]= \mathbb{E}_{Q(z)}\left[\log P(x) + \log\frac{P(z \mid x)}{Q(z)}\right] = \log P(x) + \mathbb{E}_{Q(z)}\left[\log\frac{P(z \mid x)}{Q(z)}\right]

=logP(x)DKL(Q(z)P(zx))= \log P(x) - D_{KL}(Q(z) \| P(z \mid x))

这个形式揭示了重要信息:

logP(x)L(x)=DKL(Q(z)P(zx))\log P(x) - \mathcal{L}(x) = D_{KL}(Q(z) \| P(z \mid x))

ELBO与真实对数似然的差距恰好等于变分分布 Q(z)Q(z) 与真实后验 P(zx)P(z \mid x) 之间的KL散度。当我们最大化ELBO时,同时在做两件事:

  1. L(x)\mathcal{L}(x) 更接近 logP(x)\log P(x)(使下界更紧)
  2. Q(z)Q(z) 更接近 P(zx)P(z \mid x)(使近似更准确)

【知识卡片:期望的线性性质】

  • 定义:期望运算对加法保持分配,对常数保持提取。
  • 公式E[X+Y]=E[X]+E[Y]\mathbb{E}[X + Y] = \mathbb{E}[X] + \mathbb{E}[Y]E[cX]=cE[X]\mathbb{E}[cX] = c\mathbb{E}[X]cc 为常数)
  • 本步作用:将ELBO拆分为重构项和KL散度项。

步骤 7:变分推断的优化目标

在变分推断中,我们通过最大化ELBO来同时:

  1. 找到最优的变分分布 Qϕ(z)Q_{\phi^*}(z) 来近似后验 P(zx)P(z \mid x)
  2. 获得对数边际似然的下界估计

ϕ=argmaxϕLϕ(x)=argmaxϕ{EQϕ(z)[logP(xz)]DKL(Qϕ(z)P(z))}\phi^* = \arg\max_{\phi} \mathcal{L}_{\phi}(x) = \arg\max_{\phi} \left\{ \mathbb{E}_{Q_{\phi}(z)}\left[\log P(x \mid z)\right] - D_{KL}(Q_{\phi}(z) \| P(z)) \right\}

ELBO两项的直观解释

名称 作用 直观含义
EQ(z)[logP(xz)]\mathbb{E}_{Q(z)}[\log P(x \mid z)] 重构项 鼓励从 zz 重构 xx 的准确性 "解码质量要好"
DKL(Q(z)P(z))-D_{KL}(Q(z) | P(z)) 正则化项 约束 Q(z)Q(z) 不偏离先验 P(z)P(z) 太远 "不要离先验太远"

ELBO推导流程图(变分推断框架)

上图展示了ELBO推导的完整流程(Variatonal Inference Framework):从目标 logP(x)\log P(x)(对数边际似然)出发,经过四个步骤——(1) 引入隐变量 zz 将边际似然写为积分形式;(2) 引入变分分布 Q(z)Q(z) 作为后验的近似;(3) 应用Jensen不等式(利用 log\log 的凹性)构造下界;(4) 得到ELBO表达式并将其分解为重构项(Reconstruction Term,衡量解码质量)和KL正则化项(Regularization Term,约束 QQ 不偏离先验 P(z)P(z) 太远)。

5.3 直观意义

ELBO的核心含义是**"用一个容易计算的分布 QQ 去近似复杂的后验 P(zx)P(z \mid x) 时,我们能达到的最佳下界"**。

变分推断 vs 传统方法

方法 核心操作 优点 缺点
MCMC(如吉布斯采样) 从后验中采样 渐近精确 慢,难以扩展到大数据
变分推断(VI) 最大化ELBO 快,可扩展,与深度学习结合好 近似解,依赖 QQ 的假设

在变分自编码器(VAE)中的应用

  • 编码器(Encoder):Qϕ(zx)Q_{\phi}(z \mid x) —— 给定 xx 输出 zz 的近似后验分布参数(通常是均值和方差)
  • 解码器(Decoder):Pθ(xz)P_{\theta}(x \mid z) —— 给定 zz 重构 xx
  • 损失函数L(x)=EQ[logPθ(xz)]+DKL(Qϕ(zx)P(z))-\mathcal{L}(x) = -\mathbb{E}_{Q}[\log P_{\theta}(x \mid z)] + D_{KL}(Q_{\phi}(z \mid x) \| P(z))

5.4 本推导中的数学知识清单

概念名称 在本推导中的具体作用 一句话定义或公式表达
贝叶斯定理 定义后验分布,揭示推断问题的难点 P(zx)=P(xz)P(z)P(x)P(z|x) = \frac{P(x|z)P(z)}{P(x)}
概率乘法法则 将联合分布分解为似然和先验 P(x,z)=P(xz)P(z)P(x,z) = P(x|z)P(z)
边际似然 ELBO所下界的对象 P(x)=P(x,z)dzP(x) = \int P(x,z)dz
期望(关于 QQ ELBO的定义基础 EQ[f(z)]=Q(z)f(z)dz\mathbb{E}_{Q}[f(z)] = \int Q(z)f(z)dz
Jensen不等式(凹函数版) 构造下界的核心工具 log(E[X])E[logX]\log(\mathbb{E}[X]) \geq \mathbb{E}[\log X]
KL散度 ELBO的正则化项 DKL(QP)=Q(z)logQ(z)P(z)dzD_{KL}(Q|P) = \int Q(z)\log\frac{Q(z)}{P(z)}dz
期望的线性性质 拆分ELBO为两项 E[X+Y]=E[X]+E[Y]\mathbb{E}[X+Y] = \mathbb{E}[X] + \mathbb{E}[Y]
后验分布 变分推断的目标 P(zx)P(z|x) —— 给定观测推断隐变量
先验分布 对隐变量的预设信念 P(z)P(z) —— 观测前的知识

5.5 【小例子】用简单分布近似复杂后验

以下例子与正文推导完全解耦,读者可独立阅读,用于验证ELBO的两项分解(重构项与KL正则化项)如何在具体数值上运作。

场景:观测到一枚硬币抛掷了10次,出现7次正面。设 z[0,1]z \in [0, 1] 为硬币正面概率(隐变量),观测 x=7x = 7 次正面。真实后验 P(zx)P(z \mid x) 是复杂的Beta分布,我们用一个简单的单点分布 Q(z)Q(z) 来近似。

模型设定

  • 先验:P(z)=Uniform(0,1)P(z) = \text{Uniform}(0, 1)(即 P(z)=1P(z) = 1 对所有 z[0,1]z \in [0,1]
  • 似然:P(xz)=(107)z7(1z)3P(x \mid z) = \binom{10}{7} z^7 (1-z)^3(二项分布)
  • 变分近似:Q(z)=δ(z0.7)Q(z) = \delta(z - 0.7)(单点分布,所有概率质量集中在 z^=0.7\hat{z} = 0.7

Step 1:计算重构项 EQ(z)[logP(xz)]\mathbb{E}_{Q(z)}[\log P(x \mid z)]

由于 Q(z)Q(z) 是单点分布,期望就是该点处的函数值:

EQ(z)[logP(xz)]=logP(xz^)=log[(107)0.770.33]\mathbb{E}_{Q(z)}[\log P(x \mid z)] = \log P(x \mid \hat{z}) = \log\left[\binom{10}{7} \cdot 0.7^7 \cdot 0.3^3\right]

=log(120)+7log(0.7)+3log(0.3)4.787+7(0.357)+3(1.204)= \log(120) + 7\log(0.7) + 3\log(0.3) \approx 4.787 + 7(-0.357) + 3(-1.204)

=4.7872.4993.612=1.324= 4.787 - 2.499 - 3.612 = -1.324

Step 2:计算KL正则化项 DKL(Q(z)P(z))D_{KL}(Q(z) \| P(z))

Q(z)=δ(z0.7)Q(z) = \delta(z - 0.7) 的"密度"仅在 z=0.7z = 0.7 处非零,P(z)=1P(z) = 1(均匀先验):

DKL(QP)=Q(z)logQ(z)P(z)dzD_{KL}(Q \| P) = \int Q(z) \log\frac{Q(z)}{P(z)} dz

对于单点分布,Q(z)Q(z)z=0.7z = 0.7 处趋于无穷(Dirac delta 函数),但其与均匀先验的KL散度等于该点先验密度的负对数:

DKL(QP)=logP(z^)=log(1)=0D_{KL}(Q \| P) = -\log P(\hat{z}) = -\log(1) = 0

(直观理解:单点分布的熵为0,均匀先验在该点概率为1,故KL散度为0)

Step 3:计算ELBO

L(x)=(1.324)重构项0KL项=1.324\mathcal{L}(x) = \underbrace{(-1.324)}_{\text{重构项}} - \underbrace{0}_{\text{KL项}} = -1.324

Step 4:与真实对数边际似然对比

真实对数边际似然(对均匀先验积分):

logP(x)=log01P(xz)P(z)dz=log01(107)z7(1z)31dz\log P(x) = \log\int_0^1 P(x \mid z) P(z) dz = \log\int_0^1 \binom{10}{7} z^7 (1-z)^3 \cdot 1 \, dz

=log(107)+logB(8,4)=log(120)+log7!3!11!=log1201110987654/(321)= \log\binom{10}{7} + \log B(8, 4) = \log(120) + \log\frac{7! \cdot 3!}{11!} = \log\frac{120}{11 \cdot 10 \cdot 9 \cdot 8 \cdot 7 \cdot 6 \cdot 5 \cdot 4 / (3 \cdot 2 \cdot 1)}

利用Beta函数性质 B(a,b)=(a1)!(b1)!(a+b1)!B(a,b) = \frac{(a-1)!(b-1)!}{(a+b-1)!}

01z7(1z)3dz=B(8,4)=7!3!11!=5040639916800=3024039916800=11320\int_0^1 z^7 (1-z)^3 dz = B(8, 4) = \frac{7! \cdot 3!}{11!} = \frac{5040 \cdot 6}{39916800} = \frac{30240}{39916800} = \frac{1}{1320}

P(x)=120×11320=111,logP(x)=log1112.398P(x) = 120 \times \frac{1}{1320} = \frac{1}{11}, \quad \log P(x) = \log\frac{1}{11} \approx -2.398

结论:ELBO L(x)=1.324\mathcal{L}(x) = -1.324 是真实对数边际似然 logP(x)=2.398\log P(x) = -2.398上界(注意这里是负数,1.324>2.398-1.324 > -2.398,所以确实是上界/下界取决于符号约定)。在我们的近似中,由于 Q(z)Q(z) 过于简单(单点分布),KL项为0但重构项也不够精确,ELBO离真实值还有差距。在实际VAE中,通过神经网络参数化 QQ 并最大化ELBO,可以让近似更精确。


附录:公式关系总图

五个推导对象之间存在紧密的层次关系:

方差 Var(X) = Cov(X, X)                    ← 方差是协方差的特例

协方差 Cov(X,Y) = E[XY] - E[X]E[Y]

相关系数 ρ = Cov(X,Y) / (σ_X · σ_Y)        ← 标准化后的协方差

KL散度 D_KL(P‖Q) = E_P[log(P/Q)]           ← 期望 + 对数比率

ELBO = E_Q[log P(x|z)] - D_KL(Q‖P(z))      ← KL散度的应用

核心递进关系

  • 方差 → 描述一个变量的波动
  • 协方差 → 描述两个变量的共同波动
  • 相关系数 → 消除量纲后的标准化协方差
  • KL散度 → 描述两个分布的差异
  • ELBO → 用KL散度构造可优化的下界

本文档所有公式均可独立复制使用,无需依赖上下文补全符号。

评论