最小描述长度(MDL)入门:好模型就是好压缩

原文:A Tutorial Introduction to the Minimum Description Length Principle · Peter Grünwald · 2004 | i 系列 01 / 27 · 板块一:理论地基

论文名片

  • 理论教程
  • 2004 年
  • i 系列 01 / 27
名片速览
英文题名A Tutorial Introduction to the Minimum Description Length Principle
作者Peter Grünwald
年份与形式2004 年发表的教学式综述,不依赖任何实验
原文链接arxiv.org/abs/math/0406077
一句话定位把「怎么科学地判断一个模型好不好」变成一道数数的题:模型加资料的总描述长度越短,模型越好。

它是整份书单的理论地基。把这样一篇纯理论教程排在最前面,等于先立规矩再盖楼:在讨论任何神经网络之前,先把「好模型」的衡量标准造出来。

Ilya 为什么选它

这份书单里既有改变世界的 AlexNet,也有定义时代的 Transformer,但打头阵的却是一篇没有门槛、也不做任何实验的理论教程。这个安排本身就是一种表态:先把「什么算好模型」这把尺子造好,后面二十几篇的成就才有统一的量法。

MDL(Minimum Description Length,最小描述长度)给出的答案朴素到近乎违反直觉:预测即压缩,好模型就是好压缩器。一个模型如果真的抓住了资料里的规律,它就应该能把资料「说得更短」;把「模型本身的开销」和「用模型说资料的开销」加在一起,总长度最短的那个模型获胜。

更重要的是,这把尺子能把整份书单串成一条线:后面许多工作——Hinton 给神经网络权重「省字节」(i03)、Aaronson 拿压缩长度当复杂度的尺子(i04)、直到缩放定律里对「模型与数据怎么分预算」的权衡(i25)——本质上都在控制描述长度。读懂这一篇,后面的很多选择会变得显而易见。

从生活说起

背课文的同学与理解公式的同学。老师宣布:明天默写一串数字「2、4、6、8……」一直到第 100 个。甲同学老老实实抄满三页草稿纸;乙同学只写了一行字:「从 2 开始的偶数,一共 100 个」。第二天老师临时加题,要接着往下再写 100 个——甲同学当场卡住,乙同学那行字原封不动还能用。两个人的记录都能还原出数列,但乙的更短,而且面对新情况更结实。短的、结实的那份记录,就是更好的「模型」。

快递打包的运费账。寄一箱书,快递员称重时不只称书,纸箱和缓冲泡沫也一起上秤。箱子太小,书塞不进去(资料描述不完);箱子太大,空箱子白花运费(模型本身太贵)。精打细算的人都懂:真正要优化的是「货物加包装」的总运费,而不是单独盯着哪一头。MDL 就是把这套生活智慧写成了标准——模型是箱子,箱子本身也要花钱。

这两个场景指向同一个反直觉的结论:最忠实的记录未必最省,最花哨的模型也未必最省。死记硬背看似「零假设、零成本」,其实把全部开销都压在了「照抄资料」上;一套精巧理论看似无所不能,可「理论本身」的厚度也要计入账单。省钱的答案永远在中间:用一个不太贵、又真能抓住规律的模型,让两笔开销加起来最短。

核心思想拆解

一场「发资料」的两难游戏。想象甲要把一批资料完整无误地传给乙,规则允许甲分两步走:第一步先寄一本「码书」(codebook,双方约定的编码规则,它扮演的角色就是「模型」);第二步按码书把资料编码后发出。乙收到后翻着码书原样还原。这场游戏的总成本一目了然:总长度 = 码书的厚度 + 按码书编码后资料的长度。MDL 原理只有一句话:在所有可选的码书里,选让总长度最小的那一本。

两个极端都不划算。第一个极端:码书为零,资料照抄——这就是死记硬背,资料动辄成千上万个字符,而且下次资料一变,又得全部重抄。第二个极端:码书写成一部巨著,资料编码短到几乎为零——为了一页资料造一座图书馆,账单反而更吓人。MDL 用同一把尺子量出这两个毛病:前者败在「资料那一半」太长,后者败在「模型那一半」太长。

误差也要花字节。模型对资料做出预测之后,总会剩下一些「没想到」:预测与实际的差距,需要额外的编码才能补齐。模型越准,意外越少,这部分越短;模型越差,为善后支付的「意外账单」越长。于是「总描述长度」这一笔账同时惩罚两种失败:拟合不好的(意外账单长)和模型过于复杂的(模型账单长)。

奥卡姆剃刀的数学化。「如无必要,勿增实体」讲了七百年,一直卡在「必要」两个字全凭感觉。MDL 把它变成了可数的字节数:想增加模型复杂度,可以,但先问问它省下来的编码够不够支付自己的厚度。这也是整份书单反复出现的主旋律——控制描述长度:后面的 i03 把它按到神经网络权重上,i04 拿它去量一杯咖啡,i25 在更大的尺度上权衡模型与数据的预算。

动手算一算

拿数列「2,4,6,8,10,12,14,16」玩一局发资料游戏。长度单位就用「字符数」,同一把尺子量所有方案。

两种方案的描述长度对比(8 个数的数列)
方案模型部分(码书)资料部分总长度
照抄(死记硬背)0 个字符12 个数字 + 7 个逗号 = 19 个字符19
找规律(建模)「从 2 开始的偶数,共 8 个」= 11 个字符「照算」= 2 个字符13

规律派以 13 比 19 获胜,但只省 6 个字符——因为资料太短,码书的固定成本摊不平。现在把数列拉长到 100 个偶数(从 2 到 200):照抄需要 247 个数字加 99 个逗号,共 346 个字符;码书只多写了两个字,变成「从 2 开始的偶数,共 100 个」(13 个字符),加上「照算」总共 15 个字符。差距从 6 个字符一下子拉大到 331 个字符。

这笔小账说明 MDL 的两条铁律。第一,模型有固定成本:资料太短时「找规律」可能不划算——这正是「小数据容易过拟合」的通俗版本。第二,资料越长,好模型赚得越多:码书的成本被摊得越来越薄。今天肯花大价钱训练大模型,赌的正是第二条——海量数据足以摊薄一个复杂模型的自重。

它改变了什么

MDL 把「模型好不好」从品味之争变成了可数的字节数,统计学与信息论从此说同一种语言;「简单者优先」这条古老的哲学直觉,第一次有了精确的数学形态。今天教科书里的模型选择准则、机器学习实践中的正则化意识,都能在这篇教程里找到最清晰的入门讲法。

在本系列里,它是公认的起点。想看这把尺子的理论天花板——「一个对象最短能压到多短」的严格定义与「随机即压不短」的数学化——读 i02 Kolmogorov 复杂度;想看它第一次落到神经网络权重上——1993 年 Hinton 就开始给权重「省字节」——读 i03 用描述长度精简神经网络。而「模型与数据怎么分预算」的现代版本,可以在 i25 缩放定律 里听到回声。

术语小词典

本页术语速查
术语英文一句话解释
最小描述长度Minimum Description Length(MDL)模型加资料的总描述长度越短,模型越好。
码书codebook双方约定的编码规则,在游戏里扮演「模型」。
过拟合overfitting模型死记硬背了训练资料,遇到新资料就失灵;在游戏里表现为「资料那一半」特别长。
奥卡姆剃刀Occam's razor「如无必要,勿增实体」;MDL 把「必要」算成了字节数。
泛化generalization模型在没见过的资料上依然好使的能力。