弗拉基米尔·万普尼克:谓词、不变量与智能的本质
Vladimir Vapnik: Predicates, Invariants, and the Essence of Intelligence
统计学习理论奠基人万普尼克谈谓词与不变量,以及为何真正的智能在于从少量样本中推断本质规律。
弗拉基米尔·万普尼克(Vladimir Vapnik)给智能下过一个可检验的定义:能用一个或很少几个谓词,把可能函数的集合缩小到极小,这件事本身就是智能。他为这个定义设计了一道人人都能上手的题目:如果有人能用每类 60 个样本,在 6 万张手写数字上达到当前最好的识别精度,那才算真正摸到了智能的门。而现在最好的模型,用的是全部 6 万张。
万普尼克是支持向量机的共同发明人,VC 理论的奠基者之一,论文被引用超过 20 万次。他 1936 年出生在苏联,在莫斯科控制科学研究所工作了几十年,后来去了美国,在 AT&T、NEC 实验室、Facebook AI 研究院都待过,现在是哥伦比亚大学的教授。
他上一次和莱克斯·弗里德曼(Lex Fridman)对话是在一年多以前,那是播客很早期的节目。这一期的英文标题里有三个词:谓词、不变量、智能的本质。第三个词,他想了五十年。
图灵留下的是工程,不是科学
对话开场就聊到了图灵。弗里德曼提了一个判断:图灵作为人工智能之父,也许给这个领域注入了一种工程伦理,大家忙着造出智能,而不是理解智能。
万普尼克说,工程和理解是两件完全不同的事。工程是人类活动的一种变体,你需要造出一个设备,让它像人一样行为,具备人的各种功能,怎么实现的并不重要。理解智能是什么,是另一个问题。
工程可以不管背后的道理,理解不行。理解差不多是一个哲学范畴的问题:说“理解这个世界”,到底是什么意思?(万普尼克)
他相信柏拉图的那个框架:存在一个理念的世界。智能属于这个理念的世界,是纯粹理念的世界。当理念和现实事物结合,就产生了不变量。在他的定义里,构造不变量就是智能。而理解,是抽象的理念在现实上做投影。
这里有个关键区分。理念世界很小,现实世界很大。你用少数几个抽象理念,投影到无穷无尽的现实数据上,生成无数具体的不变量。智能的工作方式是先拥有理念,再拿理念去筛选数据,方向恰好和今天大部分深度学习的工作相反。大部分模型是从海量数据里往上归纳,万普尼克想让你从上往下推。
什么是一个谓词
弗里德曼问了一个听上去有点笨的问题:谓词到底指什么?
万普尼克说,最简单的谓词是一个函数。你可以用这个函数做内积,内积的结果就是谓词。输入是现实中的数据,比如手写数字的像素空间;输出是一个数值,用来衡量这个数据在某个属性上的程度。
拿对称性举例。对称性就是一个谓词。它给出的是一个程度,回答的是“这张图有多对称”,而这个程度连续可测。字母 S 有竖直方向的反对称性,数字 3 大体上是对称的。水平、垂直、对角、反称,都属于对称这个理念的不同投影。
“度数”这个概念在这里很关键。存在性太粗暴,程度才是真正的谓词。你可以说这张图“相当对称”,也可以说它“几乎完全不对称”,谓词给出的是一个连续的度量。
他还有第二个直觉中的谓词,叫做“结构化程度”。他没给出形式化定义,只说“左边很重、中间不那么重”这类描述就是。他自己承认不知道该怎么形式化这个想法。
这里引出了一个更宽的类比。音乐评论家用一套专门的词来描述音乐,词的种类并不多,但组合起来能覆盖极丰富的内容。万普尼克认为,图像评论家也应该有类似的词表,有一小批真正理解图像本质的人,能用一套有限的谓词去刻画一张图。
他坚持这些谓词不为数字“2”“3”“4”量身定做。谓词描述的是某种结构,这种结构允许你构造出在具体任务上有用的不变量。谓词是通用的,不变量是谓词在具体数据上的落地。
弱收敛,以及他五十年才看清的东西
整场对话里最技术、也最关键的部分,是收敛。
大数定律说,对任意一个函数,样本上的平均值会收敛到期望值。这个是老朋友了,统计学的基石。但学习问题需要一个更强的版本,叫做一致大数定律:它对某一个函数成立还不够,所有候选函数必须同时成立。否则你挑出那个样本表现最好的函数时,可能正好挑中了一个样本平均值跟真实期望差得离谱的函数。
这部分他和阿列克谢·切尔沃年基斯(Alexey Chervonenkis)在上世纪六十年代就做出来了。这是他引以为傲的工作,但他说,这还不是最深刻的那一层。
最深刻的一层是弱收敛。希尔伯特空间里只有两种收敛:强收敛和弱收敛。强收敛要求函数本身逐点接近,差值的平方积分趋近于零。弱收敛宽松得多:只要求这个函数和空间里任何一个测试函数做内积,内积值收敛。你看的是函数的积分性质,逐点性质不在考虑范围内。
万普尼克说,五十年来他一直在用强收敛思考问题,直到最近才意识到真正有力的工具是弱收敛。因为弱的条件恰好能构造出“可行函数集合”。
什么意思?你有一个巨大的希尔伯特空间,里面住着无穷多个函数。你想做分类,就得从里面挑一个。如果只给几个样本,从无穷集合里随便挑一个拟合样本的函数,几乎必然过拟合。解决办法是先缩小候选集合。缩小的方法就是对谓词提要求:我观察训练数据,发现它们的对称度平均值是多少,那么我只要那些在所有数据上对称度平均值也接近这个数的函数。其余函数全部排除。
一个谓词砍一刀,集合小一圈。几个谓词砍下来,函数集合就小到能靠少得可怜的样本学好。
谓词的好处是,它跟你具体要解的任务无关。就像普洛普的 31 个单元,本是为俄国民间故事设计的,结果发现电视剧、电影、戏剧都能用。(万普尼克)
他反复强调一个反直觉的推论:如果谓词砍集合的效率足够高,那好谓词的数量就不会太多。因为每一刀砍掉的分量都很大,不需要砍很多刀就能把整个空间削到只剩一个函数。理论上的极端情况是:如果你拥有所有可能的谓词,你甚至不需要任何训练数据,可行集合里就只剩下你要找的那一个函数。现实里我们用不了那么多,只用少数几个好谓词,所以还需要一些样本。好谓词越多,需要的样本越少,智能就在这里。
普洛普的 31 个单元
弗拉基米尔·普洛普(Vladimir Propp)是苏联民俗学家,1928 年出版了一本《故事形态学》(Morphology of the Folktale)。他把俄国民间故事拆解成 31 个基本叙事单元,每个单元对应一个固定的功能。故事用到的单元数量和顺序都有规律,未必每个故事都跑满 31 个,但出现的次序有迹可循。
弗里德曼在对话里举了前几个:主人公离乡(缺席)、禁令下达(不许去那里)、违反禁令(偏要去)、侦察、反派的计划逐渐清晰,一路走到第 31 个:婚礼,从此幸福地生活在一起。
万普尼克对普洛普的解读重点不在民俗学,在于数量。31 个。描述整个人类叙事行为的抽象单元只有 31 个。而且这套单元后来被证明不限于民间故事,电视剧、电影、侦探小说都能套用。
他说的意思很清楚:如果人类叙事行为的抽象结构只有 31 个谓词,那整个理念世界里的谓词总数也不会太多。这给了他底气去说“柏拉图的世界很小”。
顺便提一句,普洛普这套结构后来对结构主义叙事学影响很大,列维-斯特劳斯也有一套不同的解读方式。万普尼克对此的态度是:方式不同没关系,重要的是他们都在做同一件事,用少量抽象单位去解释大量具体现象。
从巴赫到 MNIST
对话里有个很有意思的转场。弗里德曼聊到童年记忆,万普尼克说他的童年记忆是音乐。先是被维瓦尔第震到,后来听懂巴赫的时候,是完全被击中的感觉。
然后他说了关键的一句:在巴赫的音乐里能感觉到结构。他觉得结构就是一种谓词,只是他还没找到形式化的方法。
他顺着这条线往下推。巴赫的音乐结构和肖邦完全不同,评论家用完全不同的词汇去描述它们。如果把评论家描述巴赫、描述肖邦、描述绘画、描述诗歌时用的词汇全部收集起来,做一次交叉比对,看看哪些谓词是共通的,理论上你就能得到一套描述“图像”的谓词,甚至直接用于手写数字识别。
听上去有点玄,但他真做过类似的事。他有个朋友在 NEC 实验室,是研究俄罗斯诗歌的教授,出版过好几本俄罗斯诗歌选集。万普尼克请她用俄罗斯诗歌评论的语言,为每一张手写数字图像写描述。她做到了。
然后他们用这套“诗歌描述”做了一件叫“特权信息学习”(learning using privileged information)的事。同一批数据有两种语言:一种是像素本身,一种是诗歌式的描述。训练的时候把诗歌描述当作特权信息喂进去,识别效果比单用像素好得多。
那位教授后来去世了,这批带诗歌描述的手写数字数据至今还留在 NEC。
评论家试图向你解释音乐时用的那些词,他们描述的是音乐背后那些高层次的柏拉图式理念。(万普尼克)
这个故事的逻辑是这样:从理念到具体呈现是正问题,容易;从具体的艺术作品反推出背后的理念是反问题,很难。但反问题不是不可解,音乐评论家和诗歌教授每天都在解它,只是没有把它写成数学罢了。万普尼克觉得,只要认真编写这些评论词表,就一定能从中抽出一套通用的谓词,用来处理图像识别。
卷积是一个谓词,仅此而已
聊到深度学习,万普尼克的话说得不客气。
他说自己对深度网络所知不多,只了解扬·乐昆(Yann LeCun)的卷积网络。而卷积在他看来就是一个谓词,用来捕捉平移不变性。就这一个。二十五年前乐昆做的就是这个,到今天也没什么清楚的、同等分量的新谓词被加进去。
既然如此,他不理解为什么人们要谈“深度网络”,在他看来直接谈“保持了这个谓词的、分片线性函数集合”就足够了。
从数学上看,所有神经网络无非都是分片线性函数的集合,可能有很多很多片,但仍然是分片线性函数这个大家族里的一小块。而在他偏爱的再生核希尔伯特空间(RKHS)里,函数空间要大得多。他一直强调有闭式解,他认为闭式解存在于希尔伯特空间这个层面上,人造的分片线性子集里没有这种东西。
神经网络里的技巧,本质上都是在缩小可行函数集合,让它对你手上的任务有用。引入卷积网络,就是把集合缩小到保持平移不变性的那一部分。问题在于,这些不变量全靠人手工指定,它们不会从对理念世界的理解里自己冒出来。(万普尼克)
他为工程取向说了句公正话:做自动驾驶的人,根本不需要在乎背后的理论,谁有更好的直觉谁就做得更好。这没问题。但他坚持,如果你想做科学,就必须回到理念层面。
弗里德曼提到注意力机制、语言模型里那些让网络学会“看输入哪一部分”的设计。万普尼克的态度很稳:这些是工程,工程是好事,但你无法在理念层面解释它为什么有效。
怎么找到好谓词:去物理里学一招
谈话最有用的实操建议出现在这里。弗里德曼追问他,一个年轻的研究生该怎么找到好谓词?
万普尼克给的答案借自物理学:找一个现行理论解释不了的场景,然后想办法消除这个矛盾。
当年他和同事处理糖尿病数据集时就是这么做的。先训练一个模型,然后去找那些“谓词没有保持不变量”的区域,在那里现有模型解释不了。找到之后,重新训练,这次加上这个不变量的约束,只保留满足条件的函数。精度就上去了。
他管这叫暴力方法,但这是他可以明确描述的路径。这个方法的逻辑和物理学一模一样:你从旧理论失效的地方逼出新理论,无需从零重新发明。
他还特意点出一个反例思路。如果有人跟你说“像鸭子一样会下棋”,这算什么谓词?形式上没问题,你可以任意定义谓词。但这不是好谓词,因为它几乎不缩小函数集合。“像鸭子一样叫”“像鸭子一样游”“像鸭子一样走”,这些是好谓词,对鸭子这个类别的所有样本都成立,一刀砍掉一大片。“像鸭子一样下棋”就没有这种性质。
评价一个谓词的标准,是它能把可行函数集合缩小多少。形式上都合法,效果上千差万别。
逻辑推理为什么帮不上忙
弗里德曼试着把话题引向符号 AI 和专家系统:既然智能的钥匙是发现好谓词,那用演绎推理去自动发现好谓词行不行?
万普尼克的回答很干脆:不行,光靠逻辑不够。因为你需要知道现实,需要知道生活。
他接着说的一句话特别有意思。弗里德曼说“常识不就是一些规则吗”,万普尼克反驳说,常识说到底是死亡、是对死的恐惧、是爱、是灵性、是快乐和悲伤,全揉在一起。你没法学。
你应当知道现实,你应当知道生活。像普洛普那样的人,他知道一些东西,然后试着把他的理解放进不变量里。(万普尼克)
把手写识别里那套理念,硬套到“理解人生”这种尺度的问题上,逻辑推理帮不上忙。但当课题缩小到手写数字,事情就变得可以下手了。
为什么是手写数字
整场对话,弗里德曼反复追问:为什么选 MNIST?它是通往智能的第一步,还是一个跟智能完全无关的玩具问题?从它出发,多久能走通到通用视觉、到语言、到常识?
万普尼克反复把话题拉回来。他的答案可以用爱因斯坦那句话概括:尽可能简单,但不能更简单。
MNIST 的妙处在于,它在理念层面足够简单,但在实现层面一点都不简单。它简单到你能看清楚自己在干什么,又复杂到必须动用真正的抽象思维。一个只想着手写数字的模型,是修不好这道题的。
他对语言的判断是:这玩意儿太复杂了,涉及太多他不知道的东西。他不打算在语言上下手,而且他认为 21 世纪都搞不定。他的手写数字挑战,是这辈子能亲手推完的题目。
关于“从 MNIST 到通用视觉要多久”,他的回答是:一旦这个挑战被解出来,答案会自己浮出来。因为要做到用少一百倍的样本达到同样的精度,背后必须有真正聪明的东西在起作用,那个东西就是谓词和不变量。它是可以迁移的。但迁移多远,他不知道,他也不愿意在不懂的地方乱猜。
弗里德曼一直想把话题引向 3D 视觉和常识,万普尼克每次都说:别跳,先把这个简单的做扎实。
斯特鲁加茨基的两条路线
聊到人生意义的时候,万普尼克提了一对俄罗斯作家兄弟,斯特鲁加茨基兄弟(Strugatsky),苏联科幻文学的代表人物。他们有个想法:人类正在分化成两支,一支是普通人,一支是非常聪明的人,这两条路线很快就会彻底分开。
万普尼克提起这个想法时没有评判,只是觉得有意思。
他还说起另一个故事。他认识一位俄国的文学理论家,每当他听这个人分析文学、分析人际关系、分析人生,他都会觉得自己“像个小孩”。那个人掌握的是人生的大块谓词,用他熟悉的词就能把复杂的人生处境说清楚。
然后他提了个观察:大公司里的管理者,很多本科读的其实是英国文学或者英语语言。为什么?因为这些人懂人生,懂模型。他们天生就是那种善于分析叙事的评论家。
弗里德曼在结尾夸他是我们这个时代最伟大的数学家和统计学家之一。万普尼克说:“我对自己的边界很清楚。”
他说这话时是认真的。整场对话里,他反复表达的就是一种精确的自我边界感:他能想清楚手写数字识别,他懂收敛,他懂不变量,但他不懂语言,不懂人类情感,不懂大多数人文学科。看清自己不懂什么,对他来说和看清自己懂什么一样重要。
可以拿去做的事
- 在自己的任务上,试着写出一到两个真正的谓词。别写成“这是猫”“这不是猫”这种标签,写成一个连续可测的属性,比如“图片的结构化程度”“这个样本在当前谓词上的偏离度”,然后把它用作训练约束,看模型在少量样本上的表现会不会明显变好。
- 用弱收敛的思路看待正则化。你不需要让预测函数逐点吻合,只需要让它在若干可度量的性质上和先验一致。写代码时把“允许的函数集合”显式地收窄,别指望损失函数自己学出来。
- 在物理学的启发下找矛盾。先训练一个基线模型,然后专门去找它失效的区域。在那些区域加上新的不变量约束重新训练。万普尼克处理糖尿病数据集用的就是这个方法,可以原样搬到你手上的问题。
- 试试特权信息学习。如果你的数据里有一部分样本带有额外的、丰富得多的描述(文字、标注、专家笔记、评论),不要丢掉它们,把它们当作特权信息在训练时喂进去。这个概念在 NEC 时代的实验里被证明是有效的。
- 做一小批真正的跨领域采集。找一个音乐评论家、一个艺术评论家、一个诗歌研究者,请他们用自己领域的语言描述你手上的一小批数据。哪怕只有几十条,把它们和图像本身并排放在一起读几遍,你自己就会开始看到共通的谓词。
- 把最大的问题拆成一个“尽可能简单,但不能更简单”的挑战。MNIST 之于智能,就像果蝇之于遗传学:它提供了一个能被彻底解决、又能留下通用工具的起点。问自己:你手上那个大问题,能不能化成一道一周内能跑通全部实验的具体挑战?
- 最后,记住万普尼克在节目末尾留下的那句话:解一个你真正关心的具体问题时,不要把更一般的问题当作中间步骤去解。先把最简单的那个啃穿,让普遍性自己从底下浮出来。
本集资源与出处
- 视频在 YouTube 收看
- 音频官方 MP3 直链来自 lexfridman.com 官方播客 RSS
- 官网Lex Fridman 官网本集页面