机器学习基础(二):推断

在现代机器学习应用中,我们经常需要从已知输入变量预测未知的目标变量。本篇博客将深入探讨当数据模型完全已知时的理想 推断(Inference) 场景,介绍贝叶斯推断(Bayesian Inference)损失函数(Loss Function)交叉熵(Cross-Entropy) 等核心概念,以及如何从概率模型推导出最优预测器(Predictor)。通过理论推导和实际例子,我们将展示 硬预测(Hard Prediction)软预测(Soft Prediction) 的区别与联系,以及如何在不同问题中选择合适的预测策略。

推断

推断的定义与分类

推断(Inference) 问题涉及两种类型的变量:输入变量 $x$输出/目标变量 $t$。推断的目标是基于这两个变量之间关系的概率模型,得到给定输入 $x$ 时目标 $t$ 的预测器。

根据目标变量的类型,推断问题可分为:

  • 检测问题(Detection Problem):目标 $t$ 取值为离散有限集合(如预测天气晴雨、文本中的下一个词)
  • 估计问题(Estimation Problem):目标 $t$ 是连续变量(如预测温度、视频的下一帧)

硬预测与软预测

预测器(Predictor)分为两种基本类型:

  1. 硬预测(Hard Prediction)或点预测(Point Prediction):为每个输入 $x$ 指定单个预测值 $\hat{t}$。
    • 表示为函数映射:$f: \mathcal{X} \rightarrow \mathcal{T}$,其中 $\hat{t} = f(x)$
  2. 软预测(Soft Prediction):为每个可能的 $t$ 值给定输入 $x$ 分配一个分数。
    • 表示为函数:$q(t|x)$

软预测提供了更多信息,可以通过选择得分最高的值轻松转换为硬预测:$\hat{t}(x) = \arg\max_{t} q(t|x)$。软预测的分数 $q(t|x)$ 量化了与任何预测相关的不确定性。

最优软预测(贝叶斯推断)

软预测的自然选择是使用后验分布(Posterior Distribution) $p(t|x)$ 作为预测分布 $q(t|x)$。这意味着为每个 $t$ 值分配的分数是其给定 $x = x$ 的后验概率。

后验分布可以通过联合分布 $p(x, t)$ 计算得到: $$ p(t|x) = \frac{p(x, t)}{p(x)} = \frac{p(x, t)}{\sum_{t’} p(x, t’)} $$

Tip

示例:天气预测中的贝叶斯推断

考虑一个简单的天气预测模型,今天和明天的天气都只有两种状态:雨天($0$)或晴天($1$)。已知的联合分布 $p(x, t)$ 为:

$x$ $t$ $p(x,t)$
0 0 0.45
0 1 0.05
1 0 0.10
1 1 0.40

计算后验分布 $p(t|x)$:

  • 当 $x = 0$(今天下雨)时:

    • $p(t=0|x=0) = 0.45/(0.45+0.05) = 0.9$
    • $p(t=1|x=0) = 0.05/(0.45+0.05) = 0.1$
  • 当 $x = 1$(今天晴天)时:

    • $p(t=0|x=1) = 0.10/(0.10+0.40) = 0.2$
    • $p(t=1|x=1) = 0.40/(0.10+0.40) = 0.8$

因此,最优软预测为:

  • $q(t|0) = p(t|0) = \text{Bern}(t|0.1)$ (伯努利分布)
  • $q(t|1) = p(t|1) = \text{Bern}(t|0.8)$

这可以用于提供硬预测:

  • 如果 $x=0$,预测 $f(0)=0$,错误概率为 $0.1$
  • 如果 $x=1$,预测 $f(1)=1$,错误概率为 $0.2$

损失函数与最优硬预测

为了评估硬预测器 $f$ 的质量,我们引入损失函数(Loss Function) $\ell(t, \hat{t})$,它衡量当真值为 $t$ 时预测 $\hat{t}$ (或 $\hat{t}(x)$) 的代价。

常用的损失函数包括:

  • 对于估计问题:$\ell_k$ 损失($k$ 为整数) $$ \ell_{k}(t, \hat{t}) = |t - \hat{t}|^{k} $$ 其中 $k=2$ 时得到二次误差/平方损失(Quadratic / Squared Error Loss)(最常用)

  • 对于检测问题0-1 损失(0-1 Loss)(检测误差损失)

    $$\ell_{0-1}(t, \hat{t}) = \mathbb{1}(t \neq \hat{t}) = \begin{cases} 0 & \text{if } t = \hat{t} \ 1 & \text{if } t \neq \hat{t} \end{cases}$$

    其中 $\mathbb{1}(\cdot)$ 是指示函数 损失函数可以根据实际问题需要进行调整,例如为不同类型的错误分配不同的权重。

人口损失与最优预测器

硬预测器 $f(\cdot)$ 的质量可以通过 人口损失(Population Loss) 来衡量,即模型上的平均损失:

$$L_{p}(f(\cdot)) = \mathbb{E}_{(x,t) \sim p(x,t)}\left[\ell(t, \hat{t}(x))\right]$$

对于 0-1 损失,人口损失简化为预测器出错的概率:

$$L_{p}(f(\cdot)) = \Pr\left[\hat{t}(x) \neq t\right]$$

最优硬预测器(Optimal Hard Predictor) 是最小化人口损失的预测器:

$$f^{*} = \arg\min_{f} L_{p}(f(\cdot))$$

特定损失函数下的最优预测器

对于某些损失函数,最优预测器有已知的解析解:

  1. 检测误差损失(0-1损失): $$ f^{*}(x) = \arg\max_{t} p(t|x) $$ 这称为最大后验(Maximum A Posteriori - MAP)预测器
  2. 二次损失($\ell_2$损失): $$ f^{*}(x) = \mathbb{E}[t|x] $$ 这是后验分布的均值(Mean)
Tip

示例:不同损失函数下的最优预测

使用之前的天气预测模型和后验分布:

  • $p(t=0|x=0) = 0.9$, $p(t=1|x=0) = 0.1$
  • $p(t=0|x=1) = 0.2$, $p(t=1|x=1) = 0.8$

在检测误差损失下(MAP预测器)

  • 对于 $x=0$:$\arg\max_{t} p(t|0) = 0$
  • 对于 $x=1$:$\arg\max_{t} p(t|1) = 1$

在二次损失下(后验均值)

  • 对于 $x=0$:$\mathbb{E}[t|0] = 0 \times 0.9 + 1 \times 0.1 = 0.1$
  • 对于 $x=1$:$\mathbb{E}[t|1] = 0 \times 0.2 + 1 \times 0.8 = 0.8$

注意在不同损失函数下,最优预测器是不同的。

交叉熵损失与最优软预测

为了评估软预测器 $q(t|x)$ 的质量,我们使用 对数损失(Log Loss)交叉熵损失(Cross-Entropy Loss)

$$\ell(t, q(\cdot|x)) = -\log q(t|x)$$

交叉熵损失衡量的是预测器在看到真实值 $t$ 时的"惊讶"程度——当正确输出的预测概率较低时,惊讶度(损失)较高。

人口对数损失定义为:

$$L_{p}(q(\cdot|\cdot)) = \mathbb{E}_{(x,t) \sim p(x,t)}\left[-\log q(t|x)\right]$$

最优软预测器(Optimal Soft Predictor) 是最小化人口对数损失的预测器:

$$q^{*}(\cdot|\cdot) = \arg\min_{q(\cdot|\cdot)} L_{p}(q(\cdot|\cdot))$$

可以证明,最优软预测器再次由后验分布给出:

$$q^{*}(t|x) = p(t|x)$$

举例与应用

Tip

示例一:天气预测问题

考虑相同的天气预测联合分布:

$x$ $t$ $p(x,t)$
0 0 0.45
0 1 0.05
1 0 0.10
1 1 0.40

计算以下硬预测器的人口损失(0-1损失)

  • $f_1$: $f_1(0)=0, f_1(1)=0$
  • $f_2$: $f_2(0)=0, f_2(1)=1$
  • $f_3$: $f_3(0)=1, f_3(1)=0$
  • $f_4$: $f_4(0)=1, f_4(1)=1$

解题思路

  1. 人口损失是预测错误概率:$L_p(f) = \Pr[\hat{t}(x) \neq t]$
  2. 通过求和所有 $\hat{t}(x) \neq t$ 的 $p(x,t)$ 计算

对于 $f_1(0)=0, f_1(1)=0$

  • 当 $(x=0,t=0)$: $f_1(0)=0$ ✓
  • 当 $(x=0,t=1)$: $f_1(0)=0 \neq 1$ ✗ → $p(0,1)=0.05$
  • 当 $(x=1,t=0)$: $f_1(1)=0$ ✓
  • 当 $(x=1,t=1)$: $f_1(1)=0 \neq 1$ ✗ → $p(1,1)=0.40$
  • $Lp(f_1) = 0.05 + 0.40 = 0.45$

对于 $f_2(0)=0, f_2(1)=1$

  • 当 $(x=0,t=0)$: $f_2(0)=0$ ✓
  • 当 $(x=0,t=1)$: $f_2(0)=0 \neq 1$ ✗ → $p(0,1)=0.05$
  • 当 $(x=1,t=0)$: $f_2(1)=1 \neq 0$ ✗ → $p(1,0)=0.10$
  • 当 $(x=1,t=1)$: $f_2(1)=1$ ✓
  • $Lp(f_2) = 0.05 + 0.10 = 0.15$

对于 $f_3(0)=1, f_3(1)=0$

  • 当 $(x=0,t=0)$: $f_3(0)=1 \neq 0$ ✗ → $p(0,0)=0.45$
  • 当 $(x=0,t=1)$: $f_3(0)=1$ ✓
  • 当 $(x=1,t=0)$: $f_3(1)=0$ ✓
  • 当 $(x=1,t=1)$: $f_3(1)=0 \neq 1$ ✗ → $p(1,1)=0.40$
  • $Lp(f_3) = 0.45 + 0.40 = 0.85$

对于 $f_4(0)=1, f_4(1)=1$

  • 当 $(x=0,t=0)$: $f_4(0)=1 \neq 0$ ✗ → $p(0,0)=0.45$
  • 当 $(x=0,t=1)$: $f_4(0)=1$ ✓
  • 当 $(x=1,t=0)$: $f_4(1)=1 \neq 0$ ✗ → $p(1,0)=0.10$
  • 当 $(x=1,t=1)$: $f_4(1)=1$ ✓
  • $Lp(f_4) = 0.45 + 0.10 = 0.55$

结论:$f_2$ 是具有最小人口损失($0.15$)的最优预测器。

Tip

示例二:比特序列预测

考虑一个比特序列模型,其中:

  • $x_1$ 是均匀分布的:$x_1 \sim \text{Bern}(0.5)$
  • $x_i$ 依赖于前一个比特:$x_i \sim p(x_i|x_{i-1})$

转移概率如下:

$x_{i-1}$ $x_i$ $p(x_i \mid x_{i-1})$
0 0 0.9
0 1 0.1
1 0 0.1
1 1 0.9

问题一:计算序列 $x_1=1, x_2=1, x_3=1, x_4=0$ 的概率 $p(1,1,1,0)$

解题思路

  1. 使用概率链式法则:$p(x_1,x_2,x_3,x_4) = p(x_1)p(x_2|x_1)p(x_3|x_2)p(x_4|x_3)$
  2. 代入数值:
    • $p(x_1=1) = 0.5$
    • $p(x_2=1|x_1=1) = 0.9$
    • $p(x_3=1|x_2=1) = 0.9$
    • $p(x_4=0|x_3=1) = 0.1$
  3. 总概率:$0.5 \times 0.9 \times 0.9 \times 0.1 = 0.0405$

问题二:给定 $x_5=0$,在检测误差损失下预测 $x_6$

解题思路

  1. 需要计算 $p(x_6=0|x_5=0)$ 和 $p(x_6=1|x_5=0)$
  2. 根据转移概率:$p(x_6=0|x_5=0)=0.9$, $p(x_6=1|x_5=0)=0.1$
  3. MAP预测:$\arg\max_{x_6} p(x_6|x_5=0) = 0$
  4. 最小化检测误差的最优预测是 $x_6=0$
Tip

示例三:分类问题中的损失函数设计

在天气预测问题中,假设我们希望对不同类型的错误分配不同的权重:

实际 $t$ 预测 $\hat{t}$ 损失 $\ell(t,\hat{t})$
0 0 0
0 1 1
1 0 0.1
1 1 0

这表示当实际是晴天($t=1$)时,我们不太关心预测为雨天($\hat{t}=0$),反之则更关心($\ell=1$表示严重后果)。

问题:对于给定的后验分布 $p(t|0)=(0.9, 0.1)$,计算最优硬预测 $\hat{t}^*$

解题思路

  1. 需要最小化条件风险(Conditional Risk):$\mathbb{E}[\ell(t, \hat{t})|x]$
  2. 对于 $\hat{t}=0$:条件风险 = $\ell(0,0) \times p(0|x) + \ell(1,0) \times p(1|x) = 0 \times 0.9 + 0.1 \times 0.1 = 0.01$
  3. 对于 $\hat{t}=1$:条件风险 = $\ell(0,1) \times p(0|x) + \ell(1,1) \times p(1|x) = 1 \times 0.9 + 0 \times 0.1 = 0.9$
  4. 最小条件风险为 $0.01$,对应 $\hat{t}=0$
  5. 最优预测为 $\hat{t}^*=0$

Last modified on 2025-08-18