# 弗拉基米尔·万普尼克：统计学习

> 统计学习理论奠基人回顾支持向量机与VC理论的来路，并探讨机器学习的本质。

- 原标题：Vladimir Vapnik: Statistical Learning
- 期数：特别节目
- 发布日期：2018-11-16
- 嘉宾 / 主题：弗拉基米尔·万普尼克
- 网页版：https://lexfridman-cn.pages.dev/ep/vladimir-vapnik/
- 官方页面：https://lexfridman.com/vladimir-vapnik/
- 精读字数：约 7273 字（阅读约 16 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

2018 年秋天，万普尼克（Vladimir Vapnik）在 Lex Fridman 的播客里留了一道题。

MNIST 手写数字识别，深度学习用六万个训练样本，把准确率做到 99.5%。万普尼克说，你能不能只用六百分之一的样本，做到同样的事？

条件是把不变性放进去。

这道题他放在演讲的最后一页，讲完就下台了。到今天，接的人也不多。

万普尼克是统计学习理论的主要建立者。VC 维里的那两个字母，V 和 C，其中一个就是他。支持向量机（SVM）、支持向量聚类，也都是他和团队做出来的。1936 年生于苏联，在莫斯科控制科学研究所工作多年，后来去了美国，在 AT&T 实验室、Facebook 研究部门待过，现在是哥伦比亚大学教授。论文被引用超过十七万次。

这场对话里，他几乎把当下最热的东西挨个批了一遍，但批得很讲道理。

## 上帝掷不掷骰子，取决于你站在哪一边

Lex 用爱因斯坦那句“上帝不掷骰子”开场，问他：你一辈子用统计的眼光看世界，那上帝到底掷不掷骰子？

万普尼克的回答很平：“你有一些不知道的事实。因为有些可能很重要的因素你不知道，看起来就像上帝在掷骰子。”

然后他把话题拐到了哲学里的两个位置：工具主义（instrumentalism）和实在主义（realism）。工具主义造的是能用来预测的规则，实在主义想搞清楚你描述的那个东西到底是什么。

他举了个例子。你写下一组力学定律，这组定律是什么？是上帝定下的、处处成立的法则，还是一个能让你算出物体下一刻位置的公式？你相信前者，你就是实在主义者；你只在乎后者，你就是工具主义者。

> 如果你相信这是上帝的法则，那它处处都成立。这意味着你在追求真正理解。如果你只想预测，那你看到的世界就完全是另一个样子。（万普尼克）

这个区分听着抽象，其实是整场对话的地基。后面他批评深度学习、批评理论计算机科学、批评人工智能这个词本身，用的都是这把尺子。

## 机器学习的目标，被写错了

万普尼克说，现在所有人做机器学习，目标函数都写成分类准确率。这是工具主义的选择。

> 从工具主义的角度看，两条路都能走通，大家也都这么干，因为机器学习的目标就是预测。这没错，它是一个预测工具。但机器学习的真目标，是学出条件概率。（万普尼克）

他接着说得很直接：我不需要知道某个具体情况下概率是多少，我只要一条规则，一条能做预测的规则。可要理解，就必须有条件概率。

这话听着像文字游戏，实际上是在划一条线。一条规则只告诉你答案，条件概率告诉你这个世界在这一点上长什么样。前者能刷榜，后者能迁移。

这个区别在工程上非常具体。一个只学了决策边界的模型，换一批数据分布就崩；一个学到了条件概率结构的模型，换环境还能撑住。过去十年，工业界反复在这件事上吃亏，吃了又忘，忘了再吃。

## 数学是上帝的语言，但人得先闭嘴

Lex 提到维格纳（Eugene Wigner）1960 年那篇《数学在自然科学中不合理的有效性》。万普尼克说，他信这个说法。

> 数学家去找那些神奇的结构，他们知道关于现实的某些东西。做自然科学的人盯着一个方程，想从中理解现实。同样的逻辑，如果你非常小心地看那些定义条件概率的方程，你能从中理解到的现实，比从自己的幻想里得到的多得多。（万普尼克）

他还说了一句挺重的话：**人类的直觉很贫乏，很原始，看不见那些简单的情形。**

那人类最好的东西是什么？他的答案是公理。“人类最好的创造是公理，剩下的是技术活，看公理把你带到哪里去。”

Lex 追问，爱因斯坦发现狭义相对论的时候，想象力难道没起作用？万普尼克的回答不太留情面：那些像“特征”一样的想象，深度学习那种方式的想象，跟问题本身没关系。你从方程出发一步步推，推出来的简单理论远远超出任何人能想象的东西。想象只是解释，解释只是幻想。

他举了自己工作里的一个例子。一步步解方程，做着做着冒出来一项，想了半天才明白，它描述的是观察点的位置，也就是你把大量信息丢掉的那个位置。人不看观察点的组成，人只看残差。这个想法简单，可从方程里推出来，比拍脑袋想到要可靠得多。

## 显微镜下的国王与王后

列文虎克（Antonie van Leeuwenhoek）第一次用显微镜看血液。他看到了红细胞，然后写报告寄到伦敦的皇家学会，说这是国王和王后的军队在打仗。

> 他看对了，但他给的解读是错的。（万普尼克）

这段话的分量在于后半句。万普尼克说，人脑也可能是这样。我们观察到的现象是真的，我们给它的解释可能是自己编的。而且编得越生动，别人越容易信。

把这个故事套到今天的 AI 讨论上，你会发现它每天都在重演。有人看到模型能做某件事，就编一套“它在推理”“它在理解”的故事；有人看到模型做错了，就编一套“它缺少世界模型”的故事。观察是清晰的，解释是编的。区别只在于，列文虎克至少把显微镜借给了别人看。

## “像蝴蝶一样弹”到底传递了什么信息

万普尼克提到一句老话：跟一位好老师学一天，胜过自己苦学一千天。他问，从数学上看，一位好老师到底做了什么？

> 没几个人知道答案。这就是智能。可是从历史上、从大规模机器学习的实践里，我们知道老师能做的事很多。（万普尼克）

他的猜想是，老师提供的是谓词（predicate）和不变量（invariant）。老师知道现实长什么样，能把现实的形态描述出来。一旦你手里有了不变量，需要的观测数量可以降一百倍。

Lex 举了个例子：钢琴老师跟学生说，“像蝴蝶一样弹”。这句话里到底装了什么信息？语言本身好像根本没包含这些东西。

万普尼克的回答是，他相信那是一个谓词，只是他还不知道它具体是什么。“这正是智能和机器学习该干的事，剩下的都是数学技术。”

Lex 说他弹了很多年吉他，这句话确实有东西在传递。万普尼克顺着说下去：最近发现，学习有两种收敛机制。一种是以前大家一直在用的，另一种是强收敛，它可以吃谓词。你说出“像蝴蝶一样”，学生的弹法立刻就变了。信息是即时生效的。

他还有一句话很值得记下来：**每一个谓词都是为了让可容许集变小而发明的。**

## 会游泳的鸭子和不会下棋的鸭子

“如果它看起来像鸭子，游起来像鸭子，叫起来像鸭子，那它大概是只鸭子。”

万普尼克说这句话精确得吓人。三个谓词：看起来像鸭子、游起来像鸭子、叫起来像鸭子。每一个都是合法谓词。

他也完全可以说“跳起来像鸭子”。这个谓词一样合法，一样语法正确，可它一点用都没有，因为鸭子、鸟、动物之间在跳跃这件事上没什么区别，它不提供任何信息。

那么问题来了：怎么判断一个谓词有没有用？

> 到目前为止，现有的机器根本不用谓词。你给工业界几十亿条数据，他们大概也只用三个谓词。（万普尼克）

机制是这样的。你手上有海量候选函数，训练数据告诉你“鸭子应该长这样”，于是你砍掉所有不长这样的函数，集合小了一圈。第二个谓词进来，再砍掉一批。几轮下来，剩下的函数不多了，从里面挑表现最好的那个。

这就是谓词在数学上的全部功能：**缩小可容许函数集（admissible set of functions）。**

这件事解释了为什么人不需要那么多例子。你只见过几只鸭子，就能认出鸭子，因为别人早就把“游起来像鸭子”“叫起来像鸭子”这两个谓词塞给你了，你只需要很少的样本去完成最后的挑选。

## 学习问题里最难的一半，被教科书划掉了

到这里，VC 维该出场了。

Lex 请他向外行解释 VC 维。万普尼克说，你可以把它想成从一个可容许函数集里挑出函数的能力。这个集合可以很大，大到包含所有连续函数，那它就废了，你根本没有那么多样本去挑。它也可以很小，小到里面的函数彼此差别不大。他说他更愿意把这个性质叫“多样性”（diversity），而不是“容量”。

> 目标是把一个 VC 维小、又包含好函数的可容许集造出来，然后用很少的观测把那个函数挑出来。这就是学习的任务。（万普尼克）

接下来是整场对话里最锋利的一句。

> 经典统计学习理论里，可容许函数集是给定的。每本教科书都这么写。可造出这个集合，恰恰是整个问题里最难的那部分，它被排除在讨论之外了。（万普尼克）

这句话值得停下来想一会儿。一百年来，统计学习理论在给定的函数集里把误差界算得漂亮至极，可工程上真正决定成败的那一步，是怎么设计这个集合。所有做特征工程、做架构设计、做归纳偏置的人，干的都是这一步，而这一步在理论里是空的。

具体怎么造？靠不变量。你算出函数在训练数据上的平均值，再算出它在模型上的期望，两者应该相等。这种约束不针对某一个函数，它要求集合里所有函数都满足。这就是他说的强收敛机制。传统统计学习用的是另一套东西，一致大数定律（uniform law of large numbers）。他特意强调，这两者差别巨大。

差别在信息量上。一个样本能提供超过一 bit 的信息，因为你说“这是 2”，等于砍掉了一半候选函数。而一个谓词能砍掉的远不止一半。从形式上看，“看起来像鸭子”这句话携带的比特数，大到无法从样本里统计出来。

## 他对深度学习的评价很不客气

万普尼克讲了个丘吉尔的例子。丘吉尔写二战史，开头描述旧时代的规矩：战争结束，各位君王聚在一起，他们几乎全是亲戚，坐下来商量怎么建立和平，最后能达成协议。一战不一样，普通公众上了台，贪婪压过一切，所有人都看得出来这不是和平，和平只能维持二十年，因为坐在谈判桌前的不是专业人士。

他说，华盛顿的数学家看问题看得很深。而计算机科学家大多不懂数学。

> 他们发明了一堆 bla bla bla 的解释，比如深度学习。为什么它有效？他们不知道。做深度学习的人不懂数学，也不懂神经元。它就是一堆函数。你愿意的话，叫它分段线性函数，那就在分段线性函数的类里做。可他们发明了一些词，然后用这些解释去论证优势，而这些解释大多是错的。最后他们去搬大脑，而没有人知道大脑里到底在发生什么。（万普尼克）

他提到一个叫“代表性”（representativity）的结果，说学习问题的最优解落在浅层网络里，不在深层网络里。这个说法在圈内争议很大，但它是从定理里出来的，不是从情绪里出来的。

Lex 试着往回拉：你不觉得这件事本身很美吗？它居然真的跑通了。

万普尼克说，你说的美是解释的美。他补了一句很清醒的话：深度学习好用这件事本身没错，问题在于它用的训练数据是几十亿条。人类不需要这么多。

## AlphaGo 不是一个难题

Lex 问的是 AlphaGo。用神经网络估计棋盘价值、估计落子概率，赢下人类最强棋手，这件事不让你惊讶吗？

万普尼克说，“你的解释是估计质量。是的。”然后补了一句：“这不是一个很难的问题。”

Lex 说，那我们只是经验上发现它不难。万普尼克说：“对，我没法反驳你。”

这段对话很短，但他其实是在说一个方法论上的事。围棋被人类当成智力的高峰，很大程度上是因为人类自己在棋盘上投入了几千年，训练出了一套精巧的直觉。机器绕过了这套直觉，用的是另一种东西。机器赢棋这件事证明不了它有多聪明，只说明人类给围棋加了不少神秘感，而机器没买这个账。

他自己也承认，这套判断没法拿到实证。所以他把话收在了一个可操作的地方：深度学习能做的事，用一百倍更少的样本也能做，只要你有好的不变量。这是可以验证的，那就去验证。

## 智能也许不全在颅骨里面

Lex 提到了图灵。图灵在 50 年代那篇论文里，其实完全清楚模仿游戏不等于思考。他心里明白得很，可他故意把问题换成了模仿问题。换完之后，这问题就有了可操作性。

万普尼克说，他不确定智能只在我们内部。他举了一个观察：非欧几何在 19 世纪被好几个人几乎同时搞出来，罗巴切夫斯基、鲍耶、高斯，前后差了十年左右。类似的事在科学史上反复出现，总有一个十年左右的窗口，不同地方的人独立做出同一个东西。

> 所以也许我们把智能当成只存在于内部的模型是错的。这是我们的解释。也许它跟某种世界层面的智能有连接，我不知道。（万普尼克）

Lex 顺着说，你像是在插线，往一个大网络里贡献节点。万普尼克说：“对，就是这样。”

这段话听起来玄，但放在他整场的立场里其实很一致。他一直在说：我们的解释可能是错的，可能是我们自己编的故事。把智能框在颅骨里，也是一种解释。

## 最坏情况和最好情况能描述，中间不行

Lex 问他对 P 与 NP 和计算复杂度的看法。万普尼克说这问题有意思，然后讲了另一件事。

1990 年前后，一批苏联学者到了美国。他说这些人既不懂统计，也不懂这个领域的历史。当时苏联已经出了两本专著，美国人不知道，等于重新学了一遍。有人告诉他，这批人会从最坏情况入手，会搞出一团混乱。

“但至今也没有。因为更合逻辑的做法是：你只能做你的数学允许你做的事，前提是这件事有清晰的理解和清晰的描述。复杂度理论就是沿着这条线引入的。”

接着是那句关键的话：**最坏情况和最好情况都能写成一般的形式，中间那一段不行。**

> 你没法描述中间的情形，因为它不够一般。你只能描述边界，边界很清楚，可以建模。可你不可能为每一个新情况建一个模型。（万普尼克）

Lex 用了个挺妙的类比：这就像用一个人一辈子干过最坏的事和最好的事来评价他，中间那些全不算。万普尼克没完全接受这个类比。在他看来，中间那些同样重要，只是没法一般化地描述。你能描述的是极端，极端有结构，中间没有。

这话对做工程的人其实很有用。你评估一个系统，最坏延迟和最好性能都能测、都能算、都能写进 SLA。可真实世界的表现落在中间，而那一段你只能用统计去看，统计又需要大量样本，样本又贵。整个循环就卡在这里。

## 二十年前，没人信

90 年代中期，万普尼克和团队提出支持向量机。他记得很清楚：“当时除了一个人，没人相信。”

二十年后，它成了时尚。核方法、SVM，到处都是。

Lex 问，你做这件事的时候，有没有一种“这东西是对的”的感觉？万普尼克说，有。“我们立刻就认出来，它会一直留下来。”

然后他说，这次的不变性理论，感觉一模一样。

> 因为我有证明，不存在另外的机制。你能做的只是一些表面上的改进。可把不变性和统计学习放在一起，你还能把“智能是什么”给形式化出来，并且把它和技术部分分开。（万普尼克）

这是他整场最自信的一句话，也是最需要被检验的一句话。一个理论家说出“我证明了不存在另外的机制”，通常意味着他把某种框架的边界画得很死。历史上这类断言有对有错，所以真正值得看的，是他给出的那条可验证的挑战：MNIST，六百分之一的样本，把不变性放进去。

## 他做研究时最快乐的时刻

Lex 问，回头看，作为研究者最快乐的时刻是什么？他特意限定了一句：别谈对社会的冲击，只说那天你心里有多爽。

万普尼克说，每次你搞明白一点东西的时候。然后他说了一段很朴素的话。

> 大部分时间我都是错的。你得一遍又一遍地回去，对自己诚实。别急着解释，别搞出一堆 bla bla bla，试着弄清楚这件事跟 ground truth 到底有没有关系。（万普尼克）

Lex 问，那你允许自己为“可能发现点什么”而兴奋吗？他说允许，但必须反复检查。跟 ground truth 有关的兴奋是暂时的，你得再验证一次。

关于诗和音乐，他说 ground truth 到处都能看到。哲学家有时候说得很深，有时候完全跑题。音乐里也有 ground truth，是结构。古典的、清晰的、简单的结构。你看着它，跟看一组公理展开成一个理论时的感觉是一样的。

这段大概是整场最不像技术讨论的部分，但它其实解释了万普尼克为什么一直对“解释”这么警惕。他见过真正的结构长什么样，所以对仿制品格外敏感。

## 他留下的两个开放问题

第一个问题：为什么一位老师比另一位老师好？

这件事跟教育学没关系。他把这件事拆得很细：老师说的话里，有些是在重复课本上的内容，有些是随口的评论，有些是他自己对这门学问的哲学。到底哪一部分起了作用？如果一位老师只会说“像鸭子一样跳”，他提供的信息量是零。如果他说“像鸭子一样游”，信息量可能很大。判断这两者的差别，就是判断谓词的好坏。而判断谓词的好坏，就是智能本身。

> 人们甚至还没开始理解智能。要理解智能，第一件事是理解老师到底做了什么。（万普尼克）

第二个问题，就是开头那道题。他自己给了思路：给数字加上对称性的谓词，水平对称、垂直对称、对角对称，还可以有别的东西，比如整幅图的明暗程度。这些谓词一层层往上加，可容许集一层层缩小，需要的样本数量就一层层下降。

Lex 反问了一个很实在的问题：要区分 2 和 3，我好像得先有十几年的童年。跟小孩玩、上学、被父母吼、走路、跳、看鸭子，然后才能生成正确的谓词。

万普尼克说了一句很硬的话：“我很确定，你必须知道一些比数字更多的东西。”

> 也许是几种描述语言，也就是数字的组成元素。我在说对称性，说几何性质，说一些抽象的东西。我还不知道那是什么。这就是智能问题。（万普尼克）

所以他把整个领域切成了两半。一半是统计的，只要你把谓词交给我，我就能用很少的样本把活干完，这部分已经准备好了。另一半是造谓词的，没有人知道怎么做，甚至没有人正式把它当成一个问题提出来。

过去十年，整个行业把资源几乎全压在前一半上。后一半被叫做“特征工程”，然后被大规模预训练和 Scaling Law 糊过去了。万普尼克在 2018 年说这件事的时候，语气是有点孤独的。

## 可以立刻用起来的几件事

- 模型效果不好时，先别急着加数据。问一句：这个问题里有什么不变量？对称性、守恒量、单调性、某种等价关系，任何能砍掉一半候选假设的东西，都比十万条新样本值钱。
- 把自己的任务写清楚：你要的是规则，还是条件概率？要规则就去做分类器，要理解就去建模分布。这两个答案指向完全不同的技术路线，混着做是最常见的失败来源。
- 用一个具体的标准检验你的特征：这个特征能不能让候选假设集显著变小？如果不能，它就是在说“跳起来像鸭子”，语法正确，信息量为零。
- 每写一段对模型行为的解释，回头检查一次：这是观察，还是故事？列文虎克看见了红细胞，这件事是真的；国王和王后打仗，那是他编的。
- 评估系统时，最坏情况和最好情况都能量化，中间那段不能。别拿边界上的漂亮数字去承诺平均表现，那一段只能靠统计，统计需要样本，样本要花钱。
- 遇到一个热门概念，做一次翻译练习：把所有解释性的词去掉，剩下的数学是什么？如果剩下的是“分段线性函数”，那就用分段线性函数的语言去讨论它。
- 找一件你长期做错的事，像万普尼克说的那样，一遍又一遍地回去。对自己诚实的意思是：不给自己编一个听起来合理的解释就收工。
