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

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

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

微调内容如下:这些惊人的研究成果让KAN迅速走红,吸引了很多人对其展开研究。很快,有人提出了一些质疑。其中,有一篇标题为“KAN is just MLP”的Colab文档成为了讨论的焦点。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

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

KAN 只是一个普通的 MLP?   

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

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

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

下面是 piece-wise 线性函数的一个例子:

def f(x):if x < 0:return -2*xif x < 1:return -0.5*xreturn 2*x - 2.5X = torch.linspace(-2, 2, 100)plt.plot(X, [f(x) for x in X])plt.grid()

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

作者表示,我们可以使用多个 ReLU 和线性函数轻松重写这个函数。请注意,有时需要移动 ReLU 的输入。

plt.plot(X, -2*X + torch.relu(X)*1.5 + torch.relu(X-1)*2.5)plt.grid()

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

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

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

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

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

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

在 Pytorch 中,这可以翻译成以下内容:

k = 3 # Grid sizeinp_size = 5out_size = 7batch_size = 10X = torch.randn(batch_size, inp_size) # Our inputlinear = nn.Linear(inp_size*k, out_size)# Weightsrepeated = X.unsqueeze(1).repeat(1,k,1)shifts = torch.linspace(-1, 1, k).reshape(1,k,1)shifted = repeated + shiftsintermediate = torch.cat([shifted[:,:1,:], torch.relu(shifted[:,1:,:])], dim=1).flatten(1)outputs = linear(intermediate)

现在我们的层看起来是这样的: 

Expand + shift + ReLULinear

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

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

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

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

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

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

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

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

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

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

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

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

论文作者曾经表示:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

星火作家大神 星火作家大神

星火作家大神是一款面向作家的AI写作工具

星火作家大神 37 查看详情 星火作家大神

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

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

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

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

以上就是爆火后反转?「一夜干掉MLP」的KAN:其实我也是MLP的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/418823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
淘宝直播粉丝群怎么进?主播怎么吸粉?主播吸粉全攻略
上一篇 2025年11月7日 08:44:05
淘宝闪电退款功能在哪里?怎么开通闪电退款呢?退款秒到账?淘宝闪电退款全攻略!手把手教你开通,退货不再等!
下一篇 2025年11月7日 08:44:30

相关推荐

  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • JavaScript计算器开发:解决数值显示与初始化问题

    本教程深入探讨了使用JavaScript构建计算器时常见的数值显示异常问题,特别是由于类属性未初始化导致的`Cannot read properties of undefined`错误。我们将详细分析问题根源,并通过在构造函数中调用初始化方法来解决该问题,同时优化显示逻辑,确保计算器功能稳定且界面显…

    2026年5月10日
    000
  • NextAuth getToken 在服务端返回 null 的问题排查与解决

    问题描述 在使用 Next.js 和 NextAuth 构建应用程序时,有时需要在服务端获取用户的身份验证信息。getToken 函数是 NextAuth 提供的一个便捷方法,用于从请求中提取 JWT (JSON Web Token)。然而,在某些情况下,尤其是在使用 getServerSidePr…

    2026年5月10日
    000
  • 虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版

    虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版

    虫虫漫画官网入口为www.ccmh.com,用户可直接通过浏览器访问,支持多端适配与账号同步功能,界面简洁无广告,提供海量国漫、日漫、韩漫资源,涵盖恋爱、玄幻等热门题材,更新及时,支持多种阅读模式及离线缓存,阅读体验流畅。 虫虫漫画直接进入官网入口在哪里?这是不少网友都关注的,接下来由PHP小编为大…

    2026年5月10日 用户投稿
    000
  • HTML文档如何工作?如何编辑HTML格式文件?

    HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?

    浏览器解析和渲染html的过程包括:1. 解析html构建dom树;2. 结合css构建渲染树;3. 布局计算元素位置;4. 绘制像素到屏幕。编辑html可使用记事本、vs code、sublime text等文本或代码编辑器,其中vs code因语法高亮、自动补全和插件生态成为主流选择。标准htm…

    2026年5月10日 用户投稿
    000
  • GolangWeb项目异常捕获与日志记录

    答案:通过中间件使用defer和recover捕获panic,结合zap等结构化日志库记录请求链路信息,为每个请求生成trace ID,实现异常捕获与可追踪日志,提升系统稳定性与可观测性。 在Go语言Web项目中,异常捕获与日志记录是保障系统稳定性和可维护性的关键环节。Go本身没有像其他语言那样的t…

    2026年5月10日
    000
  • Python官网用户调查的参与方式_Python官网反馈提交详细教程

    答案是通过访问Python官网新闻页面、邮件邀请链接或GitHub仓库提交反馈。具体为:访问官网查找用户调查公告,或点击邮件中的专属链接参与,在GitHub的cpython仓库提交技术建议,并注意如实填写问卷与保护隐私。 如果您希望参与Python官网的用户调查并提交反馈,可以通过官方指定的渠道完成…

    2026年5月10日
    000
  • Go语言连接外部MySQL数据库:DSN配置与常见错误解析

    本文详细阐述了go语言使用`go-sql-driver/mysql`驱动连接外部mysql数据库的正确方法。重点介绍了数据源名称(dsn)的规范格式,特别是主机地址部分的配置,以避免常见的“getaddrinfow: the specified class was not found.”等网络解析错…

    2026年5月10日
    000
  • Tensorflow 音乐预测

    在本文中,我展示了如何使用张量流来预测音乐风格。在我的示例中,我比较了电子音乐和古典音乐。 你可以在我的github上找到代码:https://github.com/victordalet/sound_to_partition i – 数据集 第一步,您需要创建一个数据集文件夹,并在里面…

    2026年5月10日
    000
  • HTML/CSS中链接与按钮的正确嵌套:避免文本超链接化与结构优化指南

    本教程旨在解决HTML中链接()与按钮(button)或类按钮元素嵌套不当导致非预期文本超链接化的问题。我们将通过修正标签的错误闭合,并推荐使用 等语义化元素作为链接内容并应用按钮样式,来创建功能正确、结构清晰且包含文本或图像的交互式按钮,从而提升页面的可维护性和用户体验。 在网页开发中,我们经常需…

    2026年5月10日
    000
  • 如何根据当前月份动态排序 1-12 月?

    根据当前月份动态排序 1-12 月 想要实现根据当前月份动态排序 1-12 月,可以通过参考以下方法: 创建月份数组:首先,创建一个包含 1-12 月信息(如名称和值)的月份数组。获取当前月份:获取 javascript 中表示当前月份的数值(从 0 到 11)。重新排序月份数组:使用 javasc…

    2026年5月10日
    000
  • 学习了Python的Flask后,Go语言的Web框架该选Gin还是Beego?

    学习编程时,选择合适的框架至关重要。许多开发者在掌握Python Flask后,转向Go语言Web开发时,常常在Gin和Beego之间难以抉择。本文将深入分析,助您做出明智选择。 虽然网上搜索结果多建议使用Go原生标准库http,但实际上所有框架都是对http的封装。虽然使用http开发灵活,但工作…

    2026年5月10日
    000
  • Angular mat-tab 高度自适应与布局优化指南

    本教程旨在解决Angular Material mat-tab组件在Flexbox布局中无法自动填充父容器高度的问题。文章将深入分析问题根源,并提供使用CSS深度选择器(::ng-deep)精确控制mat-tab-body-wrapper和mat-tab-body高度的解决方案,确保组件在指定布局下…

    2026年5月10日
    000
  • JavaScript动态下拉菜单:实现日期选项与价格计算关联

    在现代web应用中,动态生成表单元素并使其具备交互逻辑是常见的需求。特别是在需要根据用户选择调整价格或服务参数的场景下,下拉菜单()常被用来展示一系列选项。本教程将指导您如何利用javascript动态生成一个包含日期选项的下拉菜单,并为每个选项关联一个具体的数值(如剩余天数),进而实现一个基于用户…

    2026年5月10日
    000
  • 如何在不暴露密钥的情况下,在客户端创建 Stripe Payment Link

    本文介绍了在纯静态网站环境下,如何利用 Stripe Payment Link 实现商品售卖,并着重讨论了在不暴露 Stripe 密钥的前提下,客户端创建 Payment Link 的可行性。分析了直接在客户端使用密钥的风险,并提出了预先生成 Payment Link 或使用后端服务动态生成 Pay…

    2026年5月10日
    000
  • html如何制作水印_HTML水印(文字/图片)添加与设置方法

    使用CSS和HTML可实现网页水印,方法包括:一、通过background-image与data URI嵌入斜向文字水印;二、利用伪元素结合transform旋转生成叠加文字层;三、插入img标签或背景图设置固定位置图片水印;四、用Canvas绘制多行斜纹并转Base64作背景;五、通过禁用右键、屏…

    2026年5月10日
    100
  • 使用CSS Grid实现不规则列布局:告别传统表格的限制

    本教程详细阐述如何利用css grid实现复杂的、不规则的列布局,尤其适用于那些传统html表格难以实现的块状结构。文章将通过具体的css属性和html结构示例,指导读者如何定义网格、控制子项的跨度与位置,以及优化自动布局流程,从而高效构建灵活且响应式的页面布局。 1. 传统表格的局限与CSS Gr…

    2026年5月10日
    000
  • 解决Go语言中GOPATH未设置错误及工作区配置指南

    本文旨在解决go语言开发中常见的“gopath not set”错误,并提供详细的go工作区配置指南。内容涵盖`gopath`环境变量的设置、go项目目录结构、`path`变量的扩展,以及一些高级配置技巧,旨在帮助开发者建立一个高效、规范的go开发环境,确保包的下载、编译和运行顺利进行。 Go语言在…

    2026年5月10日
    000
  • 掌握 JavaScript 中的高阶函数

    现代 javascript 开发严重依赖函数式编程,掌握其基本思想将极大提高你的编码能力。 高阶函数是这个范式最有力的武器之一。为了帮助您掌握它们,本文将介绍它们的定义、应用程序和独特的实现。 1. 函数式编程 函数式编程是一种编程范式,强调: 纯函数:没有副作用的函数,对于相同的输入返回相同的输出…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信