一文白话搞懂【KAN】网络,真有那么神奇?

良心总结,白话搞懂【KAN】网络,神奇但没有那么神奇

在这里插入图片描述
在这里插入图片描述
论文url:“https://arxiv.org/abs/2404.19756”

在这里插入图片描述

github url:“https://github.com/KindXiaoming/pykan”

B站相关视频:
BV1gz421m7ds 【录制】KAN网络作者学术分享会
BV1Hb421b72f 【AI大讲堂: 专业拆解 KAN网络】

 

简单总结

KAN最近被许多媒体吹捧,甚至说要干掉MLP。。

在这里插入图片描述

为什么这么多人追捧KAN,因为他提出了一种不同与现在AI大厦基石(感知机,MLP)的全新AI架构,这种有可能颠覆AI发展的发现无疑让人兴奋,或许能给发展十几年沉闷的深度学习世界带来一丝变革的曙光。(也许也是更多人发现了水论文的点,KAN+XXX)。KAN的优势声称是能以更少的参数量实现更高的精度,且有非常好的可解释性

那KAN有没有这么神奇,真的是从石头里蹦出来的一个全新架构? 在比较详细了解KAN后我觉得有必要出一篇文章。本文告诉你答案,没有那么神奇。下面会通俗讲解KAN的细节,pros and cons。

比较有争议的一个结果图:
这个结果图也是公众号大肆宣扬的点:200参数量顶30万。。。

在这里插入图片描述
作者在交流会中也表示确实论文的benchmark不严谨,MLP没有经过公平设计,其实更小的2层MLP也能达到80%精度。 大家对待公众号的内容一定地辩证看待。

 

KAN与MLP区别

一句话可以讲明白:

MLP:线性组合,非线性激活
KAN:非线性激活(每个输入),线性组合

可以理解为顺序换了一下,下图左边是MLP,右边是KAN,很好理解。最大的点是激活函数不再是固定的Sigmoid或ReLU,它被参数化了,可学!

在这里插入图片描述
通俗点理解,
MLP学习画直线,然后求和进行非线性激活;
KAN学习画曲线,然后求和;
曲线表征能力远超直线,所以需要曲线的数量超低于直线的数量。
所以KAN的优势声称是能以更少的参数量实现更高的精度

 

KAN网络解析

怎么来的

作者说是启发自一个定理,这也是KAN中KA的来源:Kolmogorov-Arnold 表示定理,不用记住这些人名,下面公司看着复杂其实也很简单,

在这里插入图片描述
就是f是一个多元函数(有多个x变量,吐出来一个数),可以被表示为多个单元函数的线性组合,就是单元函数和加法,可以构建出乘法

在这里插入图片描述

其实两层理论上可以拟合任何函数,但是激活函数有时会变得非常不光滑,非常病态,才能满足要求,所以这也是多层KAN的必要性。

在这里插入图片描述

这也是KAN这篇文章的核心贡献点,它把KA定理改了一下,不局限于每个输入都产生 2n+1个分身(非线性激活),再叠加,本文说KANs可以更灵活,且可以叠加变得deeper,使得激活函数更有现实意义。深度学习(深层)的本质是表征学习(representation learning),核心是compose simple modules to learn complex functions。所以说KANs变多层也符合这一理念。

在这里插入图片描述
 

作者自白:
大家可能很直接想到,为什么不在MLP的节点上将激活函数变得可学? 这也是作者一开始的思路,但实践下来发现可解释性很差(论文appendix里面有实验)

 

激活函数参数化(B-splines)

激活函数所以必须先参数化,才能 learnable。
作者是选了B样条函数

下图说明了这个样条函数怎么来的:
在这里插入图片描述
其实就是多个basic函数的相加,C参数控制每个basic的幅值。Φ函数有粗粒度和细粒度选择,就是选多些basic函数相加就越精准嘛,上图是展示7和12两种情况。G=5表示interval是5.

在这里插入图片描述

在这里插入图片描述

 
具体的可以看文中公式:

在这里插入图片描述

在这里插入图片描述

 

可解释性

 
在这里插入图片描述
KAN对符号公式的拟合很promising,且解释性非常好,比如下面的图,网络收敛后,可以从图比较容易读出KAN网络的原理

在这里插入图片描述

下面是论文做的一些公式的拟合,解释性都非常好:
在这里插入图片描述
 
且结果表明KAN比MLP在公式拟合方面更高效:

在这里插入图片描述

 

训练过程

KAN比较大的创新是可以在训练过程中加入人类先验的知识,作者表示是更 interactive,更可信.
比如下面这图,在较大的KAN训练完后,进行剪枝(可解释性更高),然后可以人为手动地把激活函数设置为经典的函数(正弦、平方、指数),从而得到一个可信的可解释的直观的表达结果
在这里插入图片描述
 
在这里插入图片描述

KAN 训练算法:通过 grid extension,也就是激活函数分辨率提升,以及稀疏化、剪枝等结构自优化技巧,实现了准确性和可解释性的提升。能够在参数量大大减少的情况下实现相同甚至更有的拟合效果。

还有,KAN有比较好的抗遗忘特性!这对于大模型来说很有前景。

在这里插入图片描述

 

总结(Takeaways)

KAN想法没有很颠覆性,大家觉得很厉害只是被传统感知机架构观念植入太深,其实ML领域也还是有其他group在研究别的架构。

在这里插入图片描述

如作者说讲,可学的激活函数在edge加激活函数多层,这三个概念都有前人研究过,KAN的贡献是将它们整合在一起(bridge gaps),实现 多层的支持edge激活函数可学的全新架构

KAN目前主要是在AI4Science上(数学,物理),作者也只是验证了函数拟合,偏微分方程求解等小型science任务方面KAN的好处,至于在我们关注的CV、NLP应用上作者没有验证,应该现在有很多人已经做了实验,发现效果好像没有MLP好,这也很显然,一个刚出生的婴儿怎么可能全方位吊打经过多年迭代更新的传统AI。KAN目前训练速度慢是论文中说明的也是大家直接发现的主要瓶颈。且单看一个KAN和MLP模块,KAN的参数量是要更多的,只是说在某些任务KAN可能可以更少的层实现高精度,所以在小任务上目前还是MLP占优。

总的来说KAN为AI发展提供了一条新的道路,还很年轻,但前程似锦,用于ML与MLP对飚还需要相当多的优化和验证,比如激活函数应该有比B-splines更好的选择,数学方面只是蹭了一下KA定理,给定理考虑深层情况会让KAN数学基础更强。KAN与MLP结合也完全可以,各取所长。

  • 35
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Python面向对象编程(Object-Oriented Programming,简称OOP)是一种程序设计方法,它将数据和操作数据的方法组合成对象,通过定义类(class)来创建对象。下面是一些概念和原则,可以帮助你更好地理解Python面向对象编程。 1. 类和对象: - 类是一种抽象的数据类型,它定义了对象的属性和方法。 - 对象是类的实例,它具有类定义的属性和方法。 2. 属性和方法: - 属性是对象的数据,可以是整数、字符串、列表等。 - 方法是对象的行为,可以是函数或过程。 3. 封装: - 封装是将数据和对数据的操作封装在一起,以创建一个独立的实体。 - 使用类来封装数据和方法,可以隐藏实现细节,提高代码的可读性和可维护性。 4. 继承: - 继承是一种机制,允许一个类继承另一个类的属性和方法。 - 子类可以重用父类的代码,并且可以添加新的属性和方法。 5. 多态: - 多态是指同一个方法可以在不同的类中具有不同的实现方式。 - 多态可以提高代码的灵活性和可扩展性。 下面是一个简单的例子,展示了如何定义一个类、创建对象并调用对象的方法: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, my name is {self.name} and I'm {self.age} years old.") # 创建对象 person = Person("Alice", 25) # 调用对象的方法 person.say_hello() ``` 这个例子定义了一个名为`Person`的类,它有两个属性(`name`和`age`)和一个方法(`say_hello`)。我们通过`Person`类创建了一个名为`person`的对象,并调用了它的`say_hello`方法。 希望这个简单的例子能帮助你更好地理解Python面向对象编程。如果你有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈O-Jay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值