跳到主要内容

概率与统计基础

概率论是机器学习的数学骨架。从损失函数(交叉熵)到模型评估(混淆矩阵),从生成模型(VAE、扩散模型)到贝叶斯推断,AI 的核心方法论都建立在概率论之上。理解概率,就是理解 AI 如何在不确定性中做出决策。

概率论基础

基本概念

  • 随机变量(Random Variable):取值不确定的变量,分为离散型(抛硬币结果)和连续型(身高)
  • 概率分布(Probability Distribution):描述随机变量取各值的可能性
    • 离散型:概率质量函数(PMF),P(X=x),所有值的概率之和为 1
    • 连续型:概率密度函数(PDF),p(x),积分为 1
  • 期望(Expectation)E[X] = Σx·P(X=x),分布的"重心"
  • 方差(Variance)Var[X] = E[(X-μ)²],衡量分布的"散布程度"

联合概率与边缘概率

  • 联合概率:两个事件同时发生的概率,P(X=x, Y=y)
  • 边缘概率:对联合概率求和(或积分),P(X=x) = Σᵧ P(X=x, Y=y)
  • 条件概率:在已知 Y=y 的条件下 X=x 的概率:
P(X=x | Y=y) = P(X=x, Y=y) / P(Y=y)

链式法则:联合概率可以展开为条件概率的乘积:

P(A, B, C) = P(A) · P(B|A) · P(C|A, B)

GPT 等自回归语言模型正是对此的应用:逐 token 预测,每次条件概率为 P(token_t | token_1, ..., token_{t-1}),整个序列的概率是所有条件概率的乘积。

贝叶斯定理及其在 AI 中的应用

贝叶斯定理

P(H|E) = P(E|H) · P(H) / P(E)

其中:
- P(H):先验概率(Prior),在观测到证据前对假设的信念
- P(E|H):似然(Likelihood),假设 H 成立时观测到证据 E 的概率
- P(E):证据的边缘概率(归一化常数)
- P(H|E):后验概率(Posterior),观测到证据后对假设的更新信念

直觉示例:垃圾邮件过滤

假设"免费"这个词出现在垃圾邮件中的概率为 80%,先验垃圾邮件概率为 30%:

P(垃圾|含"免费") = P(含"免费"|垃圾) · P(垃圾) / P(含"免费")
= 0.8 × 0.3 / P(含"免费")

朴素贝叶斯分类器通过假设特征条件独立,将贝叶斯定理高效应用于文本分类。

贝叶斯推断在深度学习中的体现

  • 贝叶斯神经网络:将权重视为随机变量,维护权重的概率分布而非点估计,用于不确定性量化
  • 变分自编码器(VAE):用变分推断近似后验分布 P(z|x),其中 z 是隐变量
  • 贝叶斯优化:用高斯过程建模目标函数,高效搜索超参数空间

常见概率分布

正态分布(Gaussian Distribution)

p(x) = (1/√(2πσ²)) · exp(-(x-μ)²/(2σ²))

参数:均值 μ(中心),方差 σ²(宽度)

在 AI 中的角色:

  • 权重初始化Xavier/He 初始化使用正态分布,防止梯度消失/爆炸
  • VAE 潜空间:潜变量 z 被约束为标准正态分布 N(0,I)
  • 噪声建模:扩散模型(DDPM)使用高斯噪声逐步破坏数据
  • 中心极限定理:许多自然现象近似服从正态分布

伯努利分布(Bernoulli Distribution)

P(X=1) = p,  P(X=0) = 1-p

期望:p, 方差:p(1-p)

应用:二分类问题的输出(sigmoid + 伯努利),Dropout 中随机置零神经元

多项式分布(Categorical/Multinomial Distribution)

P(X=k) = pₖ,  Σₖ pₖ = 1

多项式分布是伯努利的多类别推广

应用:语言模型的词表预测(softmax 输出 + 多项式采样)。GPT 生成文本时,对下一个 token 的预测本质上是从词表上的多项式分布中采样。

均匀分布(Uniform Distribution)

p(x) = 1/(b-a),  x ∈ [a, b]

应用:随机数种子初始化、部分参数初始化策略(torch.nn.init.uniform_

信息熵与交叉熵

信息熵(Shannon Entropy)

信息熵衡量概率分布的不确定性(或"信息量"):

H(P) = -Σₓ P(x) · log P(x)

- P(x) 越均匀,熵越大(不确定性高)
- P(x) 越集中在某一点,熵越小(确定性高)

示例

  • 抛公平硬币:H = -2×(0.5 log 0.5) = 1 bit(最大不确定性)
  • 确定性事件(概率1):H = 0(无不确定性)

交叉熵(Cross-Entropy)——分类任务的标准损失函数

交叉熵衡量用估计分布 Q 来描述真实分布 P 的编码代价:

H(P, Q) = -Σₓ P(x) · log Q(x)

在分类任务中,P 是真实标签的 one-hot 分布,Q 是模型的 softmax 输出:

import torch
import torch.nn.functional as F

logits = torch.tensor([[2.0, 1.0, 0.5]]) # 模型输出(未归一化)
labels = torch.tensor([0]) # 真实类别索引

loss = F.cross_entropy(logits, labels)
# 等价于:-log(softmax(logits)[0])
# softmax([2.0, 1.0, 0.5]) ≈ [0.627, 0.231, 0.142]
# loss = -log(0.627) ≈ 0.467

为什么用交叉熵而不是 MSE?

  • MSE 对概率输出的梯度在 sigmoid/softmax 饱和区会接近零(梯度消失)
  • 交叉熵与 softmax/sigmoid 组合后,梯度简洁为 预测概率 - 真实概率,避免梯度消失

二元交叉熵(Binary Cross-Entropy)

用于二分类问题(sigmoid 输出):

BCE = -[y·log(ŷ) + (1-y)·log(1-ŷ)]

- y=1, ŷ→1:loss → 0(预测正确)
- y=1, ŷ→0:loss → +∞(预测严重错误)

KL 散度——衡量分布差异

KL 散度(Kullback-Leibler Divergence)衡量分布 Q 相对于分布 P 的"额外代价":

KL(P || Q) = Σₓ P(x) · log(P(x)/Q(x))
= H(P, Q) - H(P)

特性:
- KL(P||Q) ≥ 0(非负性)
- KL(P||Q) = 0 当且仅当 P = Q
- 非对称:KL(P||Q) ≠ KL(Q||P)

在 VAE 中的应用

变分自编码器的损失函数由两部分组成:

L = 重建损失 + β · KL(q(z|x) || p(z))

- 重建损失:确保解码器能从潜变量重建输入
- KL 项:将编码器的输出分布约束接近标准正态先验 p(z) = N(0,I)
- β 控制两项的权衡(β-VAE)

在语言模型对齐中的应用

RLHF(基于人类反馈的强化学习)训练中,PPO 目标函数包含 KL 惩罚项:

目标 = E[r(x,y)] - β · KL(π_θ(y|x) || π_ref(y|x))

限制训练后的策略不偏离参考模型太远,防止奖励欺骗(Reward Hacking)。

最大似然估计(MLE)

最大似然估计是监督学习模型训练的统计基础:给定训练数据 {x₁, ..., xₙ},找到参数 θ 使数据的出现概率最大化:

θ* = argmax_θ ∏ᵢ P(xᵢ; θ)
= argmax_θ Σᵢ log P(xᵢ; θ) ← 取对数,乘积变求和,数值稳定

MLE 与损失函数的关系

  • 最小化负对数似然(NLL)= 最大化对数似然(MLL)
  • 高斯假设下,NLL 等价于 MSE(均方误差)
  • 伯努利假设下,NLL 等价于二元交叉熵(BCE)

因此,神经网络最小化交叉熵损失,本质上是在做最大似然估计——这就是为什么交叉熵是分类任务的"正确"损失函数的统计理由。