今年GPT的破圈,让AI又添了一波热度,实践的AI走的非常的稳固。然而回过来看过去十年的机器学习理论的发展,好像没有对AI的发展带来任何帮助,所以AI还需要理论吗?
最近,有几个朋友以不同的方式跟我表达了同一个意思:过去十年,机器学习理论没有给AI的发展带来任何帮助,它只是个理论圈自娱自乐的玩具。
这个说法当然存在夸张成分,但是它背后的含义却让人难以辩驳。如果我们把AI顶会过去10年90%以上的机器学习理论论文都删去,恐怕几乎不会影响AI过去10年的发展,也几乎不会影响OpenAI推出ChatGPT。更直白一点说,那些AI大佬们恐怕根本没有时间去阅读机器学习理论论文,因为他们要忙着做真正能够推动AI前进的事情。
AI还需要理论么?
我认为,并不是AI不需要理论,而是我们之前做理论的方式有问题。
AI理论应该长什么样子?
姚班的学生经常会说,“我不想做工程;我想要做偏理论的研究”。我时常会想,什么是理论,什么是工程?
学生往往是很淳朴的,就像孩子一样。孩子看见了胡子就以为是老子,而学生则认为一定要有数学符号才是理论。这个想法本来无可厚非,但是在AI顶会内卷的今天,几乎每篇论文都会绞尽脑汁地加一点装饰性的数学公式,所以光靠数学符号来做分类,效果就不太好了。
所以进一步的,恐怕理论论文里面不光要有数学符号,还得要有定理和证明。除此之外,最好还有假设,断言,引理,推论。当然,免不了还要有 等十种希腊符号加上一整页以上的推导。这些推导可以是优化方面的导数分析,也可以是泛化方面的Rademacher复杂度求界,如果都有的话那就是一盘色香味俱全的菜——很饱满了。
做完上述步骤,可以说已经登堂入室,距离一篇顶会论文也只有一步之遥。还差什么呢?还差论文的立意和创新点。数学中可以证明的东西很多,倘若没有和机器学习算法建立起实际联系,那确实还不能算上乘之作。所以,理论论文的画龙点睛之笔,就是和机器学习的现象构建起联系。
这看似画龙点睛的联系,却成了理论论文被人诟病的根源。原因很简单,让理论和实际构建起联系,最后得到的结论大多成了对现象的解释,而很少能对未来有实质性的预测或指引。当然,我们不能说所有的机器学习理论论文都无法导出新的算法;但是实际上绝大部分的重要AI算法都是实践派所得,不属于理论学家的贡献。
话说回来,这样的比较也许并不公平:对于一个AI科学家,他提出一个新的算法只需要做一些实验有效果就可以了;而理论学家的包袱更重,在实验有效果的同时,他还需要有相应的理论证明。这就相当于栓着铁球和别人赛跑,难度增加了不少。因此,理论学家追着AI大佬追得很辛苦,对AI大佬提出的新概念如数家珍;但是AI大佬却可以对理论工作视而不见,直接摆摆手说,那些东西我不太了解。
看到这里,很多朋友可能会说,机器学习理论不就是这样的么?理论论文不这么写,还能怎么写?
登山与铺路
在机器学习理论圈待过几年之后,就会发现理论并没有想象中那么神圣。像Knuth大神当年写的Toilet paper(https://www.jstor.org/stable/2322567)一样,只要一个人愿意,他总是可以写出非常复杂的让人望而生畏的证明,虽然这些证明未必有太多实际价值和意义。(我对Knuth大神的Toilet paper不了解,可能他这篇论文是个例外)所以说,单纯从证明和符号的复杂程度,似乎并不能够用来判定论文的价值。
我认为,世界上的理论大体可以分为两种,登山式理论和铺路式理论。
登山式理论
登山式理论像登山一样,总是充满挑战,让人热血沸腾。这一类理论工作特点是目标清晰,就好像珠穆朗玛峰顶一样。当我们站在山底,目标很明确,就是要想方设法、不惜一切爬到山顶。不过,到山顶的路有千万条,我们只需要找到一条最合适的路就可以了。虽然说,我们迈出的每一步都是数学推导,但是当山峰很高很陡的时候,我们也很难快速地找到一条可行之路。这个时候,有两类工具是比较常用的:
制定规划。登山之路过于漫长,我们可以找到几个重要的节点,把登山之路拆分成几个不同的阶段,每次处理其中的一个阶段。这样,把一个复杂的问题拆分成很多简单的问题,往往就会容易很多。
加假设。一旦制定了明确的登顶目标,理论分析的难度就容易受到影响。很多地方不是靠制定规划就可以解决的,有的步骤你不得不用一些工具,比如绳索、直升机、木板等等才能过去。这样的工具在机器学习理论圈就是加假设。比如,我们可以假设输入x服从高斯分布,可以假设目标函数是光滑的,lipschitz的等等。
在很多机器学习理论的论文中,假设的选取是核心艺术。如果假设太强了,比如我们使用了传送器直接传到了山顶,那么整个登山路线显得索然无味。如果假设太弱了,比如我们连绳索都不准用,那么就会发现爬来爬去爬不到山顶。问题是,这些用于登顶的假设,在实际中往往是不完全成立的;或者说,就算成立,可能也只覆盖了一个很小的部分,不能够真正用于解释和分析实际的AI算法。
举个例子,我们观察到了LayerNorm在实际算法中效果很好,于是我们决定把LN的分析当做我们的山顶去攀登。可是,实际的数据分布到底长什么样子?我们可能不得不假设数据服从高斯分布。损失函数满足什么性质?我们可能需要假设它是光滑的。网络结构是什么样子?我们可能需要假设它是一个两层或者三层的网络,因为网络层数一多分析起来就非常困难。优化算法的步长是多少?我们可能需要假设它非常小,这样优化的过程在一个小小的邻域中才便于分析。这些假设就像是登山运动员的工具包里形形色色的工具,要清晰理解它们的用途并不容易,把它们组合起来完成登顶的任务更是一种壮举。但是,真实的训练过程往往和这些假设有一定差距:机器学习理论工作所攀登的山峰,更像是作者精心设计的理想山峰,而不是AI科学家日常真正遇到的那些。
过去十年,AI领域蓬勃发展,各种概念层出不穷。理论学家为了理解一个概念或算法,制定了很高的登山目标;但是限于工具的能力,又不得不加上各种假设助力登顶。最后,很多结论南辕北辙,得不到理论圈外部的认可,我认为这和登山式理论的研究范式是脱不开关系的。
铺路式理论
如果说登山式理论目标明确,一切都是围绕登顶;那铺路式理论则更加佛系,完全是好奇心驱动。我把它叫做“铺路式”,可能会有一些歧义:听起来这样的理论仍然有目标要完成,毕竟铺路也是一项工程。我想澄清的是,使用“铺路”这个词,我更想强调它是从某个点出发,向四周蔓延,是一种自然而然的过程。如果我们看到了一个小池塘,就修一条到小池塘的路;如果我们看到了一个小山坡,就修一条绕开它的路。总之,修路的目标就是以修路的方式对这个世界进行四处探索,忠实地、不加假设或粉饰地去理解世界。这样的路一开始修得很慢,但是会越来越快,因为在数学的世界里,一切已有的结论都可以成为未来结论的基础;这样的路也修得很扎实,因为从头到尾都在描述世界的真实,所以修一步算一步——只要人们对这个世界有兴趣,就会想要来看看已经修好的路。
有很多数学大师有过类似的观点,我不过是拾人牙慧,换了个比方。例如,
柯西:在纯数学的领域里,似乎没有实际的物理现象来印证,也没有自然界的事物可说明,但那是数学家遥遥望见的应许之地。理论数学家不是一个发现者,而是这个应许之地的报导者。
格罗滕迪克:人们永远不应该试图证明那些并非几乎显而易见的事情。
格罗滕迪克:我脑海中浮现出的类比就像是把坚果浸入某种软化液体中。你会不时地擦拭,以便液体更好地渗透进去,其他时候则是让时间流逝。经过数周甚至数月,外壳变得更加灵活,当时间成熟时,手的力量就足够了,壳就像完美熟透的牛油果一样打开!几周前,我有了另一个形象。未知的事物在我看来就像是一片土地或者坚硬的白垩,抵抗着渗透……海水无声无息地缓缓推进,似乎没有什么发生,没有任何东西移动,水太远了,你几乎听不见它的声音……但最终,它包围了那个抵抗的物质。
小平邦彦讲的故事则更加引人入胜:
现在数学的研究对象一般都非常抽象,实例也十分抽象,让人难以理解。所以依靠具体事实归纳来猜想定理的方式,在大多数情况下已经难以适用。目前的情况下,关于发现新定理的思考实验方式,我本人也是不得而知。如果将精力都花费在思索新的思考方式上,恐怕难有所得。实际上很多时候无论如何思考都得不到相应的结果。这样看的话,是否可以说数学研究是一份极其困难的工作呢?不过这倒也未必。有时候感觉自己什么也没做,那些应当思考的事情却很自然地呈现在眼前,研究工作也得以顺利推进。
夏目漱石在《梦十夜》中对运庆(注:日本镰仓时代的高僧,雕刻技艺十分精湛)雕刻金刚手菩萨像的描述,充分表现了这种感受。这部分内容引用如下:
运庆在金刚手菩萨的粗眉上端一寸处横向凿刻,手中的凿刀忽而竖立,转而自上而下凿去。凿刀被敲入坚硬的木头中,厚厚的木屑应声飞落,再仔细一看,金刚手菩萨怒意盈盈的鼻翼轮廓已清晰呈现。运庆的运刀方式无拘无束,雕琢过程中丝毫没有任何迟疑。
“他的手法真如行云流水,凿刀所到之处,居然都自然地雕琢出了内心所想的眉毛、鼻子样子。”我感慨至极,不禁自言自语道。
结果,方才那位年轻男子回应道:
“什么呀,那可不是凿刻出的眉毛、鼻子,而是眉毛、鼻子本来就埋藏在木头中,他只是用锤子、凿子将其呈现出来。就像从泥土中挖出石头一样,当然不会出现偏差。”
在这种时刻,我常常感到世间没有比数学更容易的学科了。如果遇到一些学生在犹豫将来是否从事数学方面的工作,我就会想建议他们“一定要选数学,因为再没有比数学更容易的学科了”。
这些故事自然有趣,但是如果没有亲身体验,恐怕云里雾里,不知所云。我想,铺路式科研最重要的一点就是它没有预设的目标,不会为了某个目标而强行加入假设;它更在意研究对象的真实性质,以平常心忠实地记录。现代的纯数研究,大多都是遵从这一思想向前推进的。
工程式理论与理论式工程
理解了登山式理论和铺路式理论,就很难不察觉到这两者的区别。我认为,登山式理论是一种“披着理论外衣的工程”。虽然整个论文充满了复杂的数学符号,但是它的推进目标是预先给定的,而在推进的过程中,发挥了工程师“逢山开路,遇河搭桥”的特长,引入各种假设与工具,把最后的目标解决。而铺路式理论,则是一种“真实的理论”,因为它更在意研究的目标世界的性质,而把解决问题的希望寄托在对目标世界更深刻的理解基础之上。因此,我姑且把登山式理论称为“工程式理论”。
既然有工程式理论,自然有理论式工程。理论式工程,顾名思义,就是“披着工程外衣的理论”。它虽然整个过程中都没有使用数学符号,但是它没有明确的工程目标,是以“铺路”的方式推动工程的进展,更强调一个问题“应该”如何解决,而不是一个问题“要”如何解决。
我认为,现在AI领域所采取的研究方式,其实是一种典型的理论式工程。这个判断有几个支撑:
Pytorch/Tensorflow作为AI底层框架,把所有的函数都模块化,做越来越高层次的封装,使得使用网络模型变得越来越简单。这些封装本身并没有帮助人们解决某个具体问题;但是长远来看,封装可以节约人们的时间,把原来用来写代码的精力用于解决更重要的问题上。这其实就是一种铺路的过程,就好像在数学领域,从最简单的基本公理开始,得到越来越强大的理论工具,可以用来解决越来越难的问题。
过去十年,人们提出了各种各样的算法,很多算法通过一些工程上的trick能够一时霸榜,但最后能真正留下来的往往是简洁优雅的极少数。这似乎已经成为了AI算法设计的一种哲学:少即是多。算法的成功依靠的是对网络结构和数据的理解,而不是工程上的技巧。
在预训练模型领域,像SimCLR, GPT, CLIP等算法的设计理念,均推崇从第一性原理出发、大道至简。实际上,在已有的Pytorch/Tensorflow平台提供的高层次封装基础之上,给定高质量的数据,这些算法往往只需要至多几百行代码就可以实现。因此,它们更像是哲学意义上的水到渠成,而不是工程意义上的翻山越岭、披荆斩棘。
所以,AI领域的实践之路走得非常扎实稳健,反而是机器学习理论圈努力了十年,却没有形成太多真正稳固的、让人信服的理论基础。我想,这就是理论式工程和工程式理论的最大区别。
最后回到题目。既然AI发展得这么好,那它还需要(非工程式的)理论么?我认为它一定还是需要的,只是我们应该反省之前做理论的方式,摒弃登山式/工程式理论的研究范式,探究真正能够描绘、刻画人工智能的新理论。
编辑:黄飞
评论
查看更多