Skip to content

MDL(Minimum Description Length,最小描述长度)和 MAP(Maximum a Posteriori,极大后验估计)是两个紧密相关但视角不同的概念,它们都体现了奥卡姆剃刀原则(如无必要,勿增实体),即偏好更简单的模型。让我们把它们拆开对比,并解释它们如何统一在同一个思想框架下。


1. MAP (最大后验估计) - 概率视角的奥卡姆剃刀

  • 核心思想: 在贝叶斯框架下,寻找在给定观测数据 D 时,后验概率 P(h|D) 最大的假设 h。
  • 公式:
    h_MAP = argmax_{h} P(h | D) = argmax_{h} [P(D | h) * P(h)]
    • P(D | h):数据 D 在假设 h 下出现的似然(Likelihood)。它衡量 h 解释数据 D 的好坏程度。拟合越好,值越大。
    • P(h):假设 h 的先验概率(Prior Probability)。它代表我们在看到数据 D 之前,对 h 为真的初始信念。它通常用来偏好更简单、更常见、更“平滑”的假设
  • 奥卡姆剃刀如何体现?
    • P(h) 项是奥卡姆剃刀的体现!它给复杂假设 (h_complex) 赋予较低的先验概率 P(h_complex)。为什么?
      • 复杂假设通常数量众多、更具体、更灵活(能拟合更多噪声)。
      • 简单假设通常更泛化、数量更少、更稳定。
    • 因此,即使一个复杂假设 h_complex 能完美拟合当前数据(即 P(D | h_complex) 很大),如果它本身过于复杂(即 P(h_complex) 非常小),其乘积 P(D | h_complex) * P(h_complex) 也可能小于一个拟合稍差但简单得多的假设 h_simple 的乘积 P(D | h_simple) * P(h_simple)
    • MAP 通过 P(h) 惩罚复杂度,倾向于选择在拟合优度和模型复杂度之间取得平衡的假设。
  • 例子(抛硬币):
    • 数据 D:抛 3 次,全是正面 (HHH)。
    • 假设 h1:硬币公平 (θ=0.5)。 P(h1) 高(常见),P(D|h1)=(0.5)^3=0.125 低。
    • 假设 h2:硬币绝对正面 (θ=1)。 P(h2) 极低(罕见),P(D|h2)=1^3=1 高。
    • MAP (如设 P(h1) >> P(h2)):可能选择 h1(公平硬币),因为 P(h1)*0.125 > P(h2)*1。先验 P(h) 惩罚了过于复杂的 h2

2. MDL (最小描述长度) - 信息论视角的奥卡姆剃刀

  • 核心思想: 源自信息论(柯尔莫哥洛夫复杂度)。最好的假设 h 是那个能让我们用最短的编码长度完整描述两样东西的假设:
    1. 模型本身 (h)
    2. 在给定模型 h 下,描述数据 D 所需的“误差”信息
  • 公式 (理想化):
    h_MDL = argmin_{h} [ L(h) + L(D | h) ]
    • L(h):用某种编码方案描述假设 h 所需的码长(单位:比特)。复杂模型需要更长的码长来描述 (L(h_complex) 大)。
    • L(D | h):在已知假设 h 的前提下,用最优编码描述数据 D 所需的码长。它衡量 h 对数据 D 的压缩程度
      • 如果 h 完美拟合 D,L(D | h) 可以很短(只需说“数据完全符合 h”)。
      • 如果 h 拟合 D 很差,L(D | h) 会很长(需要详细描述数据与 h 预测的偏差)。
  • 奥卡姆剃刀如何体现?
    • MDL 原则明确要求最小化总描述长度 L(h) + L(D | h)
    • 一个非常复杂的模型 (h_complex)
      • 可能能非常精确地拟合数据 D(L(D | h_complex) 很小)。
      • 但它自身的描述非常冗长L(h_complex) 很大)。
    • 一个非常简单的模型 (h_simple)
      • 自身描述很简洁L(h_simple) 很小)。
      • 但可能无法很好地拟合数据 DL(D | h_simple) 很大,需要编码很多“错误”)。
    • MDL 寻找的是能使总描述长度 L(h) + L(D | h) 最小的 h。它在模型复杂度 (L(h)) 和数据拟合度 (L(D | h)) 之间进行权衡,自动偏好能够简洁描述且能较好压缩数据的模型。
  • 例子(还是抛硬币):
    • 数据 D:HHH (3 个正面)。
    • 假设 h1 (公平模型 θ=0.5):
      • L(h1):很短,只需说“公平硬币”几个字/比特。
      • L(D | h1):较长。因为 D (HHH) 在 h1 下不太可能发生,需要详细记录这 3 次结果本身(或者记录“发生了小概率事件 HHH”)。
    • 假设 h2 (绝对正面模型 θ=1):
      • L(h2):稍长,需要说明“这是一个只出正面的特殊硬币”或指定 θ=1。
      • L(D | h2):极短!只需说“数据符合预期”或根本不用描述(因为模型预测永远是 H)。
    • MDL 决策: 比较 L(h1) + L(D|h1)L(h2) + L(D|h2)。虽然 L(D|h2) 很短,但 L(h2)L(h1) 显著长。MDL 会判断 L(h1) + L(D|h1) 是否小于 L(h2) + L(D|h2)。在这个例子中,如果 L(h2)L(h1) 长的量超过了 L(D|h1)L(D|h2) 长的量,MDL 就会选择更简单的 h1(公平硬币)。这体现了用码长惩罚复杂度。

3. MDL 与 MAP 的深刻联系(关键!)

MDL 和 MAP 不是竞争关系,而是同一个硬币的两面,它们在数学上是等价的(在特定编码方案和概率模型下)!

  • 香农信息论: 描述一个事件 x 所需的最优码长 L(x) 等于该事件的信息量 I(x) = -log₂ P(x)
  • 应用到 MDL:
    • 描述假设 h 的最优码长:L(h) ≈ -log₂ P(h)P(h) 大 => 常见 => 码长短)
    • 在给定 h 下描述数据 D 的最优码长:L(D | h) ≈ -log₂ P(D | h)P(D | h) 大 => 数据在 h 下很可能 => 码长短)
  • MDL 目标函数变形:
    h_MDL = argmin_{h} [ L(h) + L(D | h) ]
          ≈ argmin_{h} [ -log₂ P(h) - log₂ P(D | h) ]
          = argmin_{h} [ - ( log₂ P(h) + log₂ P(D | h) ) ]  // 负号不影响 argmin
          = argmax_{h} [ log₂ P(h) + log₂ P(D | h) ]       // 最小化负值等价于最大化正值
          = argmax_{h} [ log₂ ( P(h) * P(D | h) ) ]        // log(a) + log(b) = log(a*b)
          = argmax_{h} [ P(h) * P(D | h) ]                 // log₂ 是单调函数,argmax 不变
          = h_MAP
  • 结论:
    当使用最优编码(即码长等于信息量 -log₂ P(·))时,最小化描述长度 (MDL) 完全等价于最大化后验概率 (MAP)!

4. 总结与对比表

特性MAP (极大后验估计)MDL (最小描述长度)
核心目标最大化后验概率 `P(hD)`
理论基础贝叶斯概率论信息论 (柯尔莫哥洛夫复杂度,香农信息论)
奥卡姆剃刀体现通过先验概率 P(h) 惩罚复杂模型 (复杂模型 P(h) 小)通过模型描述长度 L(h) 惩罚复杂模型 (复杂模型 L(h) 大)
数据拟合体现通过**似然 `P(Dh)** 奖励拟合好的模型 (拟合好则 P(D
关键公式`h_MAP = argmax [P(Dh) * P(h)]`
主要视角概率与信念更新信息压缩与编码效率
关联性在最优编码下 (L(·) = -log₂ P(·)),MDL 严格等价于 MAP

核心洞见:

  • MAP 是概率语言下的奥卡姆剃刀: “复杂的模型不太可能先验为真 (P(h_complex) 小)”。
  • MDL 是信息论语言下的奥卡姆剃刀: “复杂的模型描述起来太费劲 (L(h_complex) 大)”。
  • 本质相同: 两者都寻求模型复杂度和数据拟合度之间的最佳权衡。MAP 通过概率乘积 P(D|h)*P(h) 实现,MDL 通过码长求和 L(h) + L(D|h) 实现。最优编码架起了两者等价的桥梁。
  • 实践意义:
    • MAP 更直接用于概率模型和贝叶斯推断。
    • MDL 原则提供了更通用的模型选择框架(即使没有明确的概率模型),强调可压缩性是学习的关键。它启发了许多统计学习理论和模型选择标准(如 BIC 是 MDL 的一种近似)。

下次看到 MAP 或 MDL,记住它们都在做同一件事:在解释数据的能力和模型自身的简洁性之间寻找那个最优雅的平衡点。 MAP 用概率说话,MDL 用比特说话,但说的是同一个故事——简单即美。

知识如风,常伴吾身