全新神经网络架构KAN一夜爆火!200参数顶30万,MIT华人一作 | 最新快讯

白交衡宇发自凹非寺

  量子位公众号 QbitAI

  一种全新的神经网络架构 KAN,诞生了!

  与传统的 MLP 架构截然不同,且能用更少的参数在数学、物理问题上取得更高精度。

  比如,200 个参数的 KANs,就能复现 DeepMind 用 30 万参数的 MLPs 发现数学定理研究。

  不仅准确性更高,并且还发现了新的公式。要知道后者可是登上 Nature 封面的研究啊~

  在函数拟合、偏微分方程求解,甚至处理凝聚态物理方面的任务都比 MLP 效果要好。

  而在大模型问题的解决上,KAN 天然就能规避掉灾难性遗忘问题,并且注入人类的习惯偏差或领域知识非常容易。

  来自 MIT、加州理工学院、东北大学等团队的研究一出,瞬间引爆一整个科技圈:Yes We KAN!

  甚至直接引出关于能否替代掉 Transformer 的 MLP 层的探讨,有人已经准备开始尝试……

  有网友表示:这看起来像是机器学习的下一步。

  让机器学习每个特定神经元的最佳激活,而不是由我们人类决定使用什么激活函数。

  还有人表示:可能正处于某些历史发展的中间。

  GitHub 上也已经开源,也就短短两三天时间就收获 1.1kStar。

  对 MLP“进行一个简单的更改”

  跟 MLP 最大、也是最为直观的不同就是,MLP 激活函数是在神经元上,而 KAN 把可学习的激活函数放在权重上。

  在作者看来,这是一个“简单的更改”。

  从数学定理方面来看,MLP 的灵感来自于通用近似定理,即对于任意一个连续函数,都可以用一个足够深的神经网络来近似。

  而 KAN 则是来自于 Kolmogorov-Arnold 表示定理 (KART),每个多元连续函数都可以表示为单变量连续函数的两层嵌套叠加。

  KAN 的名字也由此而来。

  正是受到这一定理的启发,研究人员用神经网络将 Kolmogorov-Arnold 表示参数化。

  为了纪念两位伟大的已故数学家 Andrey Kolmogorov 和 Vladimir Arnold,我们称其为科尔莫格罗夫-阿诺德网络(KANs)。

  而从算法层面上看,MLPs 在神经元上具有(通常是固定的)激活函数,而 KANs 在权重上具有(可学习的)激活函数。这些一维激活函数被参数化为样条曲线。

  在实际应用过程中,KAN 可以直观地可视化,提供 MLP 无法提供的可解释性和交互性。

  不过,KAN 的缺点就是训练速度较慢。

  对于训练速度慢的问题,MIT 博士生一作 Ziming Liu 解释道,主要有两个方面的原因。

  一个是技术原因,可学习的激活函数评估成本比固定激活函数成本更高。

  另一个则是主观原因,因为体内物理学家属性抑制程序员的个性,因此没有去尝试优化效率。

  对于是否能适配 Transformer,他表示:暂时不知道如何做到这一点。

  以及对 GPU 友好吗?他表示:还没有,正在努力中。

  天然能解决大模型灾难性遗忘

  再来看看 KAN 的具体实现效果。

  神经缩放规律:KAN 的缩放速度比 MLP 快得多。除了数学上以 Kolmogorov-Arnold 表示定理为基础,KAN 缩放指数也可以通过经验来实现。

  在函数拟合方面,KAN 比 MLP 更准确。

  而在偏微分方程求解,比如求解泊松方程,KAN 比 MLP 更准确。

  研究人员还有个意外发现,就是 KAN 不会像 MLP 那样容易灾难性遗忘,它天然就可以规避这个缺陷。

  好好好,大模型的遗忘问题从源头就能解决。

  在可解释方面,KAN 能通过符号公式揭示合成数据集的组成结构和变量依赖性。

  人类用户可以与 KANs 交互,使其更具可解释性。在 KAN 中注入人类的归纳偏差或领域知识非常容易。

  研究人员利用 KANs 还重新复现了 DeepMind 当年登上 Nature 的结果,并且还找到了 Knot 理论中新的公式,并以无监督的方式发现了新的结不变式关系。

  △DeepMind 登 Nature 研究成果

  Deepmind 的 MLP 大约 300000 个参数,而 KAN 大约只有 200 个参数。KAN 可以立即进行解释,而 MLP 则需要进行特征归因的后期分析。并且准确性也更高。

  对于计算要求,团队表示论文中的所有例子都可以在单个 CPU 上 10 分钟内重现。

  虽然 KAN 所能处理的问题规模比许多机器学习任务要小,但对于科学相关任务来说就刚刚好。

  比如研究凝固态物理中的一种相变:安德森局域化。

  好了,那么 KAN 是否会取代 Transformer 中的 MLP 层呢?

  有网友表示,这取决于两个因素。

  一点是学习算法,如 SGD、AdamW、Sophia 等—能否找到适合 KANs 参数的局部最小值?

  另一点则是能否在 GPU 上高效地实现 KANs 层,最好能比 MLPs 跟快。

  最后,论文中还贴心的给出了“何时该选用 KAN?”的决策树。

  那么,你会开始尝试用 KAN 吗?还是让子弹再飞一会儿~

  项目链接:

  Welcome to Kolmogorov Arnold Network (KAN) documentation! — Kolmogorov Arnold Network documentation

  论文链接:

  https://arxiv.org/abs/2404.19756

  参考链接:

  [1]https://twitter.com/ZimingLiu11/status/1785483967719981538

  [2]https://twitter.com/AnthropicAI/status/1785701418546180326

来自: 网易科技

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1410238.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何同时或者按顺序间隔启动多个程序

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,切换到定时器模块,快捷键:Ctrl3 2、新建一个定时器,我这里演示同时打开多个程序(比…

WPF基础应用

WPF参考原文 MVVM介绍 1.常用布局控件 1.1 布局控件 WPF(Windows Presentation Foundation)提供了多种布局容器来帮助开发者设计用户界面,以下是一些常用的布局: Grid: Grid是最常用的布局容器之一,它允许你通过定…

链表经典面试题上

目录 创作不易,如若对您有帮助,还望三连,谢谢!!! 题目一:203. 移除链表元素 - 力扣(LeetCode) 题目二:206. 反转链表 - 力扣(LeetCode&#xff…

22-ESP32-S3模数转换器(ADC)

ESP32-S3模数转换器(ADC) 什么是模数转换器(ADC)🔍? 模数转换器(ADC)是一种将模拟信号(如电压)转换为数字信号的设备。在ESP32-S3中,ADC用于将模…

深入图像分类:使用美国手语数据集训练定制化神经网络

引言 在前一篇博客中,我们探讨了如何使用MNIST数据集训练一个基础的神经网络来进行手写数字识别。在本文中,我们将更进一步,使用美国手语字母表(ASL)数据集来构建一个定制化的图像分类模型。通过这个过程,…

羊大师:羊奶营养好选择

羊大师:羊奶营养好选择 羊奶确实是一种营养丰富的饮品,它被视为乳品中的精品,被称为“奶中之王”是世界上公认的最接近人奶的乳品。以下是一些羊奶的主要营养成分和其对人体的益处: 蛋白质:羊奶中的蛋白质含量丰富&a…

k8s部署maven项目

failed to verify certificate: x509: certificate signed by unknown authority 今天在执行kubectl get nodes的时候报的证书验证问题,看了一圈首次搭建k8s的都是高频出现的问题。 couldn’t get current server API group list: Get “https://kubernetes.docker…

什么是死锁?代码演示,死锁如何排查和解决

死锁的概念 死锁是指在多线程或多进程中,两个或两个以上的线程或进程在执行过程中,因抢夺资源而造成的一种相互等待的现象。简单来说,就是两个或两个以上的线程或进程都在等待对方释放资源,从而导致所有线程或进程都无法继续执行的…

【python】python标准化考试系统[单项选择题 简易版](源码)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

[python]texthero安装后测试代码

测试环境: anaconda3python3.8 texthero1.1.0 测试代码来自官方:https://github.com/jbesomi/texthero 代码: import texthero as hero import pandas as pddf pd.read_csv("https://gitee.com/FIRC/texthero/raw/master/dataset/…

解决Linux中磁盘满/dev/vda1使用率100%问题

发现根目录下占用100%,具体还要排场到底是有哪些大文件占用 那么就在根目录下查询各个子文件夹的占用状态,有过大不用的即可删除 df -h *我的磁盘是100G,但这些总共加起来也接近不了这个数值 那就是有可能出现 已删除空间却没有释放的进程…

用python画一个正八边形

1 问题 使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长100的正八边形。 2 方法 1、利用for循环解决如何画出图形中相同的八条边的问题。 2、再利用turtle.fd()函数和turtle.seth()函数画出完整的图形。 代码清单 1 import turtleturtle.pensize(2)d0for i in r…

Mybatis进阶(映射关系多对一 )

文章目录 1.需求分析2.应用实例(xml配置)1.数据表设计2.entity设计(不要使用toString会栈溢出)1.Pet.java2.User.java 3.编写Mapper1.PetMapper.java2.UserMapper.java 4.编写Mapper.xml1.UserMapper.xml2.PetMapper.xml 5.测试Us…

初识Vue-组件化开发(应用实例)

目录 一、任务管理应用 1.介绍 2.代码 1. 任务列表组件 (TaskList.vue) 2. 添加任务组件 (AddTask.vue) 3. 应用入口组件 (App.vue) 4. 主入口文件 (main.js) 3.效果 4.总结 二、购物车 1.介绍 2.代码 1. 商品列表组件 (ProductList.vue) 2. 购物车组件 (Cart.vue…

Web APIs 学习归纳6--- BOM浏览器对象

前面几节主要针对DOM进行了学习,现在开始新的内容的学习---DOM浏览器对象。 DOM是更注重页面(document)内容的设计,但是BOM不仅限于页面(document)的设计,而是更加全面包括页面的刷新&#xff0…

【数据结构】:链表的带环问题

🎁个人主页:我们的五年 🔍系列专栏:数据结构 🌷追光的人,终会万丈光芒 前言: 链表的带环问题在链表中是一类比较难的问题,它对我们的思维有一个比较高的要求,但是这一类…

拌合楼管理系统(十六)c#如何实现点击同时启动两个窗体,并且窗体全部关闭后才退出程序

前言: 好长时间没有再写博文了,最近项目有个需求,无人值守程序需要一个client端,主要实现两个功能,一个是显示安装的四个监控的画面,一个是显示地磅称重数量和车牌列表等一些信息。今天主要解决如何显示两个…

SQL注入漏洞--报错/union/布尔盲注/时间盲注

之前介绍了数据库的基本操作,今天这篇文章就来实操SQL注入。 阅读本文前可以先看一下基本操作,有助于更换理解本文。。。 https://blog.csdn.net/weixin_60885144/article/details/138356410?spm1001.2014.3001.5502 what SQL---结构化查询语言---S…

【目标检测】DEtection TRansformer (DETR)

一、前言 论文: End-to-End Object Detection with Transformers 作者: Facebook AI 代码: DEtection TRansformer (DETR) 特点: 无proposal(R-CNN系列)、无anchor(YOLO系列)、无NM…

从一到无穷大 #25 DataFusion:可嵌入,可扩展的模块化工业级计算引擎实现

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言架构总览与可扩展性Catalog and Data SourcesFront End逻辑计划与逻辑计划优化器…