Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

爆火后反转?「一夜干掉MLP」的KAN:其实我也是MLP

KAN 作者:我想传达的信息不是「KAN 很棒」,而是「尝试批判性地思考当前的架构,并寻求从根本上不同的替代方案,这些方案可以完成有趣、有用的事情。」


多层感知器(MLP),也被称为全连接前馈神经网络,是当今深度学习模型的基础构建块。MLP 的重要性无论怎样强调都不为过,因为它们是机器学习中用于逼近非线性函数的默认方法。

但是最近,来自 MIT 等机构的研究者提出了一种非常有潜力的替代方法 ——KAN。该方法在准确性和可解释性方面表现优于 MLP。而且,它能以非常少的参数量胜过以更大参数量运行的 MLP。比如,作者表示,他们用 KAN 重新发现了结理论中的数学规律,以更小的网络和更高的自动化程度重现了 DeepMind 的结果。具体来说,DeepMind 的 MLP 有大约 300000 个参数,而 KAN 只有大约 200 个参数

这些惊人的结果让 KAN 迅速走红,吸引了很多人对其展开研究。很快,有人提出了一些质疑。其中,一篇标题为《KAN is just MLP》的 Colab 文档成为了议论的焦点。

图片

KAN 只是一个普通的 MLP?   

上述文档的作者表示,你可以把 KAN 写成一个 MLP,只要在 ReLU 之前加一些重复和移位。

在一个简短的例子中,作者展示了如何将 KAN 网络改写为具有相同数量参数的、有轻微的非典型结构的普通 MLP。

需要记住的是,KAN 在边上有激活函数。它们使用 B - 样条。在展示的例子中,为了简单起见,作者将只使用 piece-wise 线性函数。这不会改变网络的建模能力。

下面是 piece-wise 线性函数的一个例子:
def f(x):
  if x < 0:
    return -2*x
  if x < 1:
    return -0.5*x
  return 2*x - 2.5

X = torch.linspace(-2, 2, 100)
plt.plot(X, [f(x) for x in X])
plt.grid()

图片

作者表示,我们可以使用多个 ReLU 和线性函数轻松重写这个函数。请注意,有时需要移动 ReLU 的输入。
plt.plot(X, -2*X + torch.relu(X)*1.5 + torch.relu(X-1)*2.5)
plt.grid()

图片

真正的问题是如何将 KAN 层改写成典型的 MLP 层。假设有 n 个输入神经元,m 个输出神经元,piece-wise 函数有 k 个 piece。这需要 n∗m∗k 个参数(每条边有 k 个参数,而你有 n∗m 条边)。

现在考虑一个 KAN 边。为此,需要将输入复制 k 次,每个副本移动一个常数,然后通过 ReLU 和线性层(第一层除外)运行。从图形上看是这样的(C 是常数,W 是权重):

图片

现在,可以对每一条边重复这一过程。但要注意一点,如果各处的 piece-wise 线性函数网格相同,我们就可以共享中间的 ReLU 输出,只需在其上混合权重即可。就像这样:

图片

在 Pytorch 中,这可以翻译成以下内容:
k = 3 # Grid size
inp_size = 5
out_size = 7
batch_size = 10
X = torch.randn(batch_size, inp_size) # Our input
linear = nn.Linear(inp_size*k, out_size)  # Weights
repeated = X.unsqueeze(1).repeat(1,k,1)
shifts = torch.linspace(-1, 1, k).reshape(1,k,1)
shifted = repeated + shifts
intermediate = torch.cat([shifted[:,:1,:], torch.relu(shifted[:,1:,:])], dim=1).flatten(1)
outputs = linear(intermediate)

现在我们的层看起来是这样的: 
  • Expand + shift + ReLU

  • Linear

一个接一个地考虑三个层:

  • Expand + shift + ReLU (第 1 层从这里开始)
  • Linear
  • Expand + shift + ReLU (第 2 层从这里开始)
  • Linear
  • Expand + shift + ReLU (第 3 层从这里开始)
  • Linear

忽略输入 expansion,我们可以重新排列:

  • Linear (第 1 层从这里开始)
  • Expand + shift + ReLU
  • Linear (第 2 层从这里开始)
  • Expand + shift + ReLU

如下的层基本上可以称为 MLP。你也可以把线性层做大,去掉 expand 和 shift,获得更好的建模能力(尽管需要付出更高的参数代价)。

  • Linear (第 2 层从这里开始)
  • Expand + shift + ReLU

通过这个例子,作者表明,KAN 就是一种 MLP。这一说法引发了大家对两类方法的重新思考。

图片

对 KAN 思路、方法、结果的重新审视

其实,除了与 MLP 理不清的关系,KAN 还受到了其他许多方面的质疑。

总结下来,研究者们的讨论主要集中在如下几点。

第一,KAN 的主要贡献在于可解释性,而不在于扩展速度、准确性等部分。

论文作者曾经表示:

  1. KAN 的扩展速度比 MLP 更快。KAN 比参数较少的 MLP 具有更好的准确性。
  2. KAN 可以直观地可视化。KAN 提供了 MLP 无法提供的可解释性和交互性。我们可以使用 KAN 潜在地发现新的科学定律。

其中,网络的可解释性对于模型解决现实问题的重要性不言而喻:

图片

但问题在于:「我认为他们的主张只是它学得更快并且具有可解释性,而不是其他东西。如果 KAN 的参数比等效的 NN 少得多,则前者是有意义的。我仍然感觉训练 KAN 非常不稳定。」

图片

那么 KAN 究竟能不能做到参数比等效的 NN 少很多呢?

这种说法目前还存在疑问。在论文中,KAN 的作者表示,他们仅用 200 个参数的 KAN,就能复现 DeepMind 用 30 万参数的 MLP 发现数学定理研究。在看到该结果后,佐治亚理工副教授 Humphrey Shi 的两位学生重新审视了 DeepMind 的实验,发现只需 122 个参数DeepMind 的 MLP 就能媲美 KAN 81.6% 的准确率。而且,他们没有对 DeepMind 代码进行任何重大修改。为了实现这个结果,他们只减小了网络大小,使用随机种子,并增加了训练时间。

图片

图片

对此,论文作者也给出了积极的回应:  

图片

第二,KAN 和 MLP 从方法上没有本质不同。

图片

「是的,这显然是一回事。他们在 KAN 中先做激活,然后再做线性组合,而在 MLP 中先做线性组合,然后再做激活。将其放大,基本上就是一回事。据我所知,使用 KAN 的主要原因是可解释性和符号回归。」

图片

除了对方法的质疑之外,研究者还呼吁对这篇论文的评价回归理性:

「我认为人们需要停止将 KAN 论文视为深度学习基本单元的巨大转变,而只是将其视为一篇关于深度学习可解释性的好论文。在每条边上学习到的非线性函数的可解释性是这篇论文的主要贡献。」

第三,有研究者表示,KAN 的思路并不新奇。

图片

「人们在 20 世纪 80 年代对此进行了研究。Hacker News 的讨论中提到了一篇意大利论文讨论过这个问题。所以这根本不是什么新鲜事。40 年过去了,这只是一些要么回来了,要么被拒绝的东西被重新审视的东西。」

但可以看到的是,KAN 论文的作者也没有掩盖这一问题。

「这些想法并不新鲜,但我不认为作者回避了这一点。他只是把所有东西都很好地打包起来,并对 toy 数据进行了一些很好的实验。但这也是一种贡献。」

与此同时,Ian Goodfellow、Yoshua Bengio 十多年前的论文 MaxOut(https://arxiv.org/pdf/1302.4389)也被提到,一些研究者认为二者「虽然略有不同,但想法有点相似」。

作者:最初研究目标确实是可解释性

热烈讨论的结果就是,作者之一 Sachin Vaidya 站出来了。

图片

作为该论文的作者之一,我想说几句。KAN 受到的关注令人惊叹,而这种讨论正是将新技术推向极限、找出哪些可行或不可行所需要的。

我想我应该分享一些关于动机的背景资料。我们实现 KAN 的主要想法源于我们正在寻找可解释的人工智能模型,这种模型可以「学习」物理学家发现自然规律的洞察力。因此,正如其他人所意识到的那样,我们完全专注于这一目标,因为传统的黑箱模型无法提供对科学基础发现至关重要的见解。然后,我们通过与物理学和数学相关的例子表明,KAN 在可解释性方面大大优于传统方法。我们当然希望,KAN 的实用性将远远超出我们最初的动机。


在 GitHub 主页中,论文作者之一刘子鸣也对这项研究受到的评价进行了回应:

最近我被问到的最常见的问题是 KAN 是否会成为下一代 LLM。我对此没有很清楚的判断。

KAN 专为关心高精度和可解释性的应用程序而设计。我们确实关心 LLM 的可解释性,但可解释性对于 LLM 和科学来说可能意味着截然不同的事情。我们关心 LLM 的高精度吗?缩放定律似乎意味着如此,但可能精度不太高。此外,对于 LLM 和科学来说,准确性也可能意味着不同的事情。

我欢迎人们批评 KAN,实践是检验真理的唯一标准。很多事情我们事先并不知道,直到它们经过真正的尝试并被证明是成功还是失败。尽管我愿意看到 KAN 的成功,但我同样对 KAN 的失败感到好奇。

KAN 和 MLP 不能相互替代,它们在某些情况下各有优势,在某些情况下各有局限性。我会对包含两者的理论框架感兴趣,甚至可以提出新的替代方案(物理学家喜欢统一理论,抱歉)。

图片

KAN 论文一作刘子鸣。他是一名物理学家和机器学习研究员,目前是麻省理工学院和 IAIFI 的三年级博士生,导师是 Max Tegmark。他的研究兴趣主要集中在人工智能 AI 和物理的交叉领域。

参考链接:https://colab.research.google.com/drive/1v3AHz5J3gk-vu4biESubJdOsUheycJNz#scrollTo=WVDbcpBqAFop
https://github.com/KindXiaoming/pykan?tab=readme-ov-file#authors-note
工程MLPKAN
相关数据
DeepMind机构

DeepMind是一家英国的人工智能公司。公司创建于2010年,最初名称是DeepMind科技(DeepMind Technologies Limited),在2014年被谷歌收购。在2010年由杰米斯·哈萨比斯,谢恩·列格和穆斯塔法·苏莱曼成立创业公司。继AlphaGo之后,Google DeepMind首席执行官杰米斯·哈萨比斯表示将研究用人工智能与人类玩其他游戏,例如即时战略游戏《星际争霸II》(StarCraft II)。深度AI如果能直接使用在其他各种不同领域,除了未来能玩不同的游戏外,例如自动驾驶、投资顾问、音乐评论、甚至司法判决等等目前需要人脑才能处理的工作,基本上也可以直接使用相同的神经网上去学而习得与人类相同的思考力。

https://deepmind.com/
Ian Goodfellow人物

Ian Goodfellow 是机器学习领域备受关注的年轻学者之一,他在本科与硕士就读于斯坦福大学,师从吴恩达,博士阶段则跟随蒙特利尔大学的著名学者Yoshua Bengio研究机器学习。Goodfellow 最引人注目的成就是在2014年6月提出了生成对抗网络(GAN)。这一技术近年来已成为机器学习界最火热的讨论话题,特别是在最近几个月里,与GAN有关的论文不断涌现。GAN已成为众多学者的研究方向。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

可解释的人工智能技术

一个可以解释的AI(Explainable AI, 简称XAI)或透明的AI(Transparent AI),其行为可以被人类容易理解。它与机器学习中“ 黑匣子 ” 的概念形成鲜明对比,这意味着复杂算法运作的“可解释性”,即使他们的设计者也无法解释人工智能为什么会做出具体决定。 XAI可用于实现社会解释的权利。有些人声称透明度很少是免费提供的,并且在人工智能的“智能”和透明度之间经常存在权衡; 随着AI系统内部复杂性的增加,这些权衡预计会变得更大。解释AI决策的技术挑战有时被称为可解释性问题。另一个考虑因素是信息(信息过载),因此,完全透明可能并不总是可行或甚至不需要。提供的信息量应根据利益相关者与智能系统的交互情况而有所不同。

推荐文章
暂无评论
暂无评论~