这是我不得不跟你们通报的一件大事,尽管这件事情目前已经在 AI 的专业圈子中炸雷,但公众知道的却很少。如果不是我们科学声音团队中有一位王木头老师,这几年一直在做非常专业的 AI 算法的科普,我也注意不到这件大事。根据木头老师的说法,这可能是十年一遇的大事件,总之,他特别激动。
图:王木头老师B站频道 bilibili 知名科普UP主我认真听木头老师给我科普了一个多小时,我立即决定,要把这件 AI 技术圈内的高爆新闻转述给你们听,因为见证历史这种事情总是很激动人心的。事情的起因是这样的:4月30日,在预印本网站 arxiv 上发表了一篇论文,标题非常枯燥,叫做:我估计作者是故意起这样一个论文标题的,目的就是挡掉大多数算法知识水平不高,专门吸引高手过招用的。论文的第一作者是一位华人,叫刘子鸣,本科毕业于北大物理学院,目前是美国麻省理工学院的博士在读生,更多的背景信息我还没来得及做调研,但这个不是重点,重点还是讲论文本身。图:华人科学家刘子鸣
这篇叫 KAN 的论文发表出来没多久,就引起了业内高手的关注。在技术圈内,它的传播速度据说不亚于前段时间韩国团队提出常温超导材料后传播的速度。只不过,数学算法这种概念公众太难理解了,所以它不像超导那么有公众吸引力,所以普通公众知道的就很少。
科学声音的王木头老师,因为总是在 B 站讲解 AI 技术的数学原理,所以,这篇论文发表后没几天,他就收到后台留言,希望让他能讲解 KAN 的数学原理。
在著名的程序员聚集地 Github上,与 KAN 网络算法相关的代码,不到一个星期,就有了超过 1 万的收藏,这是一个极其惊人的数字。要知道现在大火的 GPT 模型,它的最初版本 GPT-2 在 Github 上现在只有 2 万多个关注。
木头老师说,他都能想象得到,各个大学和研究机构里的导师,肯定会给自己小组的学生下命令,让他们去读 KAN 的论文,下周就会重点讨论。然后很快就会要求他们都去把代码下载下来,用各种数据测试,最后就要求学生试试看能不能把KAN用到自己项目上。
现在刚刚半个月的时间,在 Github,基于 KAN 的各种扩展模型就已经层出不穷了。像是什么 efficient-kan 、FastKAN、 FasterKAN kansformers等等,至少有几十个,热闹非凡,盛况空前。毫不夸张地说,KAN 网络算法,就好像在 AI 的技术圈扔下了一颗重磅炸弹,炸得整个 AI 技术界都在震荡。
那么,这个 KAN 网络到底是什么?为什么这么轰动。虽然我也还是有些一知半解,但我还是想努力转述给你们听。如有说错的地方,请大家海涵。但我努力会让你能建立起基本概念。
要理解 KAN 网络厉害在哪里,那还得从现在的 AI 的底层算法说起。现在所有的 AI 大模型,底层算法叫做 Transformer,中文一般叫「注意力机制」,是2017年被谷歌的几位工程师提出的。而 Transformer 又是建构在深度神经网络算法上的,这个深度神经网络算法的出现就更早了,本世纪初就已经提出了。如果把人工智能和飞机做个类比的话,Transformer 的提出相当于把飞机的螺旋桨发动机升级到喷气式发动机。现在 AI 水平最高的OpenAI 做的就是通过不断堆算力,让喷气式飞机可以飞得越来越快。但是,只要它还是喷气发动机,它永远也飞不出大气层,因为喷气式发动机需要空气,而外太空没有空气。同样的道理,只要现在的 AI 大模型的底层算法不变,它的发展就会有一个技术原理上的极限,并且,越临近极限,投入算力带来的边际收益就会越少。那么,如果类比喷气式飞机无法飞出大气层,现在的 AI 它难以逾越的屏障是什么呢?在技术圈,这个屏障也有一个专门的术语,叫做“灾难性遗忘”。我解释一下,灾难性遗忘是用来描述训练人工智能模型的时候,如果数据规模过大,那么它可能会丢失之前学到的知识和技能,特别在新信息与旧信息有较大差异时候。就好像一个硬盘的存储总容量是有限的,你不断往里面塞东西进去,导致的结果就是最初塞进去的东西被挤出空间。这是因为现在所有的 AI 的底层结构,都是一种叫做 MLP 网络的结构,正是这个结构,必然导致灾难性遗忘。MLP 可以翻译为多层感知机,它是神经网络的的基本结构,它的雏形一直可以追溯到上世纪 60 年代。但我们今天不展开讲数学问题了哈,有兴趣的听众可以移步 B 站的“王木头学科学”频道,里面有专门的课程。
当然,技术界也不是拿“灾难性遗忘”完全没有办法,现在为了对抗这个致命缺点,最常用的一种方法叫做“知识蒸馏”的方法,这种方法本质上就是将更基础、更本质的知识筛选出来,新数据即便是可以对它们修改也会谨慎和保守的多。不过,这种方法其实有点像治标不治本。而且,知识蒸馏想要做好,非常依赖对模型内部知识的解释,只有理解参数本身的意义,才可以知道哪部分知识是更基础的,哪部分知识是更表面的。而解释性,这又是 MLP 结构最大的短板,MLP 训练出来的模型很好用,但是具体哪个参数有什么意义,是几乎无法被真正理解的,人类只能靠猜。大家平时听到的各种各样的模型名字,像是什么卷积神经网络啊、循环神经网络啊、Transformer 啊、生成对抗网络啊,扩散模型啊,它们其实都是在 MLP 结构的基础上衍生出来的。MLP 规定了现在所有 AI 的最底层架构。MLP 这的数学基础叫做“通用近似定理”,这个数学定理也被翻译作“万能逼近定理”。大概的意思就是,任何复杂的函数关系,都可以通过许多简单重复的函数叠加近似表达。简单函数的个数越多,近似程度越高。比如说,你可能知道著名的傅立叶变换,不论一个函数多么复杂,都是可以通过叠加不同频率的正弦余弦函数就可以近似表达,如果叠加的数量无穷,还可以完全相等。
所谓的智能体,某种程度上来讲它就是一种特别复杂的函数关系。智能体接受信息,就是这个函数接收了一个数据;智能体接收信息后会做出某个行为或判断,这个行为和判断就可以看作是这个函数的输出值。一个智能过程,就是一个函数处理数据的过程,通过对数据的复杂计算,最后得出一个结果。一个智能体掌握了某个领域的知识,其实就相当于在这个智能体内部形成了一个函数关系,给它输入一张照片的数据,它就把一个一个像素点当作是输入数据,然后经过复杂计算,输出照片里到底是猫还是狗的正确结果。所谓的训练模型,就是通过输入的数据让智能体自己就学习出那个函数关系来。只不过现实情况是这个函数关系特别复杂,这种复杂还不是我们平时想象的,在一个 x 和 y 轴的坐标系下,有一根函数曲线很复杂,有很多弯弯绕绕的地方。这个函数关系的复杂,是在高纬空间中的情况,假如说输入的数据是一张图片,那么每个图片的像素点都会是一个维度,一张包含 10 万个像素的照片,那它就是一组 10 万个维度的高维数据。这个函数关系别说描述了,光想象出来都困难。而通用近似定理就可以把这个问题简化。就像是 MLP ,它叫多层感知机,这个感知机其实就是我们平时所说的神经元,单个神经元就表示一个非常简单的函数。简单概括一下的话,一个神经元就完成两个工作,一个是把接收数据的每个维度都乘以一个系数,然后加起来。对应到空间中,这其实就是建立了一个高维空间的直线。这只是第一个工作,第二个工作就是给这个高维直线变变形,具体怎么变没有特定的要求,不同的模型可以不一样,总之就是不能让它再是一根直线了。比如一种最简单的变形,就是把直线变成一个0到1之间的 S 形状的曲线。
MLP 本质上就是把这些简单的函数各种叠加嵌套起来,只要叠加的数量多、层数多,那么不论是多么复杂的函数曲线,都可以近似表达出来。如果用盖房子类比的话,这就相当于把感知机或者叫神经元当作是基础的砖块,不论是多么复杂的建筑物都是通过砖块磊起来的。只不过,MLP 里的这个砖块和砖块之间的关系要复杂得多得多。一个砖块,最多只是和自己周围的几个砖块有联系,而 MLP 呢,如果第一层有 10 个感知机,第二层有 30 个感知机,那么第一层的每个感知机都会和第二层的 30 个感知机产生联系,如果画连线的话,这就是 10 乘 30 条连线,如果还有第三层,第三层也是 30 个感知机的话,那么一共就是 10 乘 30 再乘 30。如果是 100 层呢,就是 10 乘 30 的 99 次方。这个联系的数量是随着层数指数增加的。举个例子来说,你给训练模型喂了 10 万个的数据包,这个数量在现实情况中都是算很少的。10 万个数据包,理论上每个数据在训练的时候都需要对 MLP 里的所有感知机的连接进行相应的调整。虽然每一步的计算都比较简单,但是架不住数量太大了,没有充足的算力,根本训练不出有效的模型来。这也是为什么等到 2012 年 MLP 才开始文艺复兴,这里有一个很重要的原因,就是硬件性能的提升。如果不是集成电路的快速发展,这一切可能仍然只能存于理论中。当然了,即便是到了现在,要想直接通过训练一个全连接的 MLP 就得到想要的结果,算力也是捉襟见肘的。像什么卷积神经网络、Transformer 这样的改进型模型,虽然基于的原理各不相同,但是归根究底就是在做一件事,那就是基于自己的任务,把全连接 MLP 里一些和当前这个任务不太相关的连接减掉,以此来节省算力。遗憾的是,不论我们如何按需裁减,只要这个规律是我们人找出来的,或者说猜出来的,那么就不可能是完全准确的,在模型中,总会有大量的连接其实是多余的,即大量的参数是不起作用的,这样一来,算力的浪费是注定的。如果我们把训练一个 AI 大模型比喻成盖房子,那么,在建造之前,是没有设计图纸的。它的过程就像是先随便盖一栋房子,然后住进去看看合适不合适,不合适的地方就拆了重来。就这样不断地迭代,每次都相当于是拆了重建。有些优化的算法,就相当于是人们猜测某个建筑物的某个局部特征是可以满足特定需求的,就命令大模型不能随便把这个局部结构拆掉。但是,MLP 的结构决定了,我们不可能真正理解每个局部的意义。当然了,即便是 MLP 有这样那样的问题,但是它基础模块简单,靠着大力就能出奇迹的特性,还是利远远大于弊的,这也是现在为什么大模型的规模越来越大的原因。甚至人们一度认为,或许这就是人工智能的宿命了,人工智能归根到底就是去追求更强的算力。好了,讲到这里,我总算把目前的 AI 底层结构的问题很粗糙的解释了一遍,麻烦你不要追问我细节,我也是在木头老师那里来了个囫囵吞枣,只能有这么一个整体上的理解。接下来我就要来讲这个就好像是在业界扔下的重磅炸弹的 KAN 网络了。
和其他在 MLP 结构上修修补补的模型不太一样,它一上来就颠覆了 MLP 的数学地基,也就是颠覆了通用近似定理。
它的数学地基是科尔莫戈洛夫-阿诺尔德表示定理,这个定理指出,在一定条件下,每一个多元连续函数都可以表示为一族单变量连续函数的叠加。有点听晕了了对吧,全是高能的数学名词,很难懂,我努力给大家解释一下。通过我们前面介绍,大家应该能感觉到,MLP 这种模型,它们学习到的知识,那些代表知识的信息几乎都是是保存在感知机互相之间的连接中的,因为基础个体简单嘛,所以只能通过复杂的联系,去存储多样的信息。而在 KAN 网络呢,它的结构上和 MLP 并没有太大不同,仍然是可以有很多层,每层的个体都和相邻层的所有个体产生联系。但是,它和 MLP 不同的是,它并没有要求基础个体必须是某个固定的形态。虽然基础个体是单变量的,但是它本身可以是一个非常复杂的函数,可以一元五次函数,也可以是一元十次函数。
如果我们用乐高积木盖房子来比喻,MLP 结构是规定了每个积木块必须是一个非常简单的形状,靠堆积数量来实现复杂的形状。而 KAN 网络结构则允许我们精心设计每一个积木块的形状,用单个积木块的复杂度来换取整体积木块的用量。对于大语言模型来说,积木块的数量就相当于是参数的规模。不过,木头老师跟我说,这个比喻其实太粗糙,不太好,因为它并不能凸显出 KAN 的全部优势。KAN 的更大优势是在于,它能够分层呈现数据中不同尺度的规律。一下子没有找到更恰当的比喻来帮助外行理解 KAN 的精妙。这么说吧,我们假设有一个 KAN 网络用 3️ 层结构去学习和气体有关的物理规律,假如最后这个 KAN 网络里学到的知识,和现代物理学里的物理规律完全一致。如果是 MLP 的话,这个物理规律都是从一个一个形式相同的基础模块从下往上生成出来的,即便我们知道某几个模块起到的作用大,某几个模块起到的作用小,但是因为它们的形式是相同的,我们也很难解释它们到底在模型中起着什么作用。而 KAN 网络呢,它更像是从顶向下,先确定了基础框架,然后再在基础框架上做修改。那么可能就会有这样一个结果,很有可能这个 3 层结构的 KAN 网络,它的最顶层体现出来的是压强、温度和体积之间的关系,到了第二层,则是对顶层的修饰和拆解,它体现出来的规律可能就是玻尔兹曼分布这样将微观和宏观联系起来的统计物理学的规律,而到了第三层那就更进一步了,可能体现出来的就是可以解释玻尔兹曼分布的量子力学了。还是有点晕对吧,我理解大家的感受,因为我也是这种不明觉厉的感受。但我今天也只能给你们讲到这个份上了,木头老师自己也还在学习,这个东西实在太新了,等他学到了更多之后,我再向他讨教。KAN 网络是不是会成为颠覆 MLP 的下一代 AI 的底层算法,目前谁也不敢说会还是不会,但是,它的潜力正在快速体现,它的热度也在快速增加中。我想,即便是它最后没有达到预期,它也为寻找 MLP 的替代之路迈出了第一步。AI 正以不可思议的速度进化着。万一,KAN 真的有一天影响了整个 AI 领域,那么,你我就是最早了解过它那一批人了。哪怕我们还是不懂什么是 KAN,但至少可以很淡定地说一句:郑重推荐,大学老师都在看的
王木头老师 B 站频道
直播预告: