Kolmogorov-Arnold Networks - KAN 的研究可以说是今年争议度很高很高的工作了。甚至有一些关于“目前的深度学习已死!”的说法。受 Kolmogorov-Arnold 定理的启发,它提出了神经网络的全新视角,用可学习函数替换固定激活函数,消除了目前的MLP架构中的线性权重矩阵的需求。
论文地址:
https://arxiv.org/abs/2404.19756
神经网络为什么会起作用?
在维基百科上,可以搜索到这么一个定理“Universal approximation theorem”,刚开始学习算法的时候,都听说过,具有至少一个隐藏层的神经网络可以使用足够的隐藏单元将任何连续函数近似到任意精度。
对于大模型而言,只要有足够的神经元,就可以有效地定义一个函数,在给定一串输入序列,在整个互联网知识中预测下一个单词。
在Meta的MEGABYTE工作中提到过,大模型模型成功的背后, 大部分 的 FLOP 仅来自MLP层,只有 很少的来自其他关键部分,例如注意力机制等。
虽然 UAT 告诉了我们,通过深度网络最终将近似得到想要的映射,但它没有指定您需要多少个神经元,事实上,这通常是很多很多的!
MLP vs KAN
尽管Kolmogorov-Arnold Representation Theorem在1950年就被证明了,但是在KAN的论文中才声称找到了应用这个定理的神经网络。该定理指出单变量函数的求和可以找到到任意精度的多元函数的映射。
将神经网络视为图,其中神经元是节点,这些神经元之间的连接是边。对比 MLP 和 KAN。如下图:
在MLP中是学习边上的权重,而KAN将可学习的激活函数(样条函数)放在边中,节点只是这些样条曲线的总和:
KAN架构
传统MLP中的权重参数被单变量函数取代。KAN 中的每个节点都会在不应用任何非线性变换的情况下对这些函数输出求和,这与包含线性变换和非线性激活函数的 MLP 形成对比。下图的mlp中每个权重之间有一个非线性激活函数
KAN的核心为B-Splines,样条曲线取代了神经网络中常见的传统权重参数。维基百科解释如下:
样条函数能够通过调整其形状以最小化近似误差,对数据中的复杂关系进行建模,从而增强网络从高维数据集中学习微妙模式的能力。
样条结构的详细视图
KAN 中的样条函数表示如下:𝑠pline(𝑥) 表示样条函数。ci 训练期间优化的系数,𝐵𝑖(𝑥) 是在网格上定义的 B 样条基函数。网格点定义每个基函数 𝐵𝑖 处于活动状态的区间,并影响样条线的形状和平滑度。可以将它们视为影响网络准确性的超参数。更多的网格意味着更多的控制和精度,也会导致更多的参数需要学习。
每个网格控制点的影响都是局部的,如下图。移动第二个点会影响曲线的特定部分,而移动第四个点会影响曲线的右端,同时保证曲线保持平滑和连接。如果我们需要样条曲线采用更复杂的形式,我们只需增加基函数的数量即可。
测试例子
(有很多,这里贴一个) 比较KAN和MLP在拟合数学和物理中常见的 15 个特殊函数时的情况。结果表明,几乎所有函数中,在参数数量相同的情况下,与MLP相比KAN实现了更低的训练/测试损失。
最后
KAN 具有很好的可解释性,可以清楚地看到网络如何逼近目标函数。训练也便宜得多。因此,KAN 引发了之前很激烈的热议,甚至有一些关于“目前的深度学习已死!”的言论。
但是,还存在一些问题,比如说,KAN 尚未得到大规模验证,不确定在小实验上的优势能否scaling;暂时不适合GPU,论文中特别提到,他们致力于理论和小规模证明,目前的transformers基本上是能榨干GPU性能的。但是话虽这么说,几周时间,就有了像 FastKAN 这样的仓库,可以将推理速度提高了三倍以上。
PS:给公众号添加【星标⭐️】不迷路!您的点赞、在看、关注 是我坚持的最大动力!
欢迎多多关注公众号「NLP前沿」,加入交流群,交个朋友吧,一起学习,一起进步!
最新文章推荐阅读