MIT加州理工等革命性KAN破记录,发现数学定理碾压DeepMind!KAN论文解读

KAN的数学原理

如果f是有界域上的多元连续函数,那么f可以被写成关于单个变量和加法二元操作的连续函数的有限组合。更具体地说,对于光滑函数f:[0, 1]ⁿ → R,有
f ( x ) = f ( x 1 , … , x n ) = ∑ q = 1 2 n + 1 Φ q ∑ p = 1 n ϕ q , p ( x p ) f(x) = f(x_1, \ldots , x_n) = \sum_{q=1}^{2n+1} \Phi_q \sum_{p=1}^n \phi_{q,p}(x_p) f(x)=f(x1,,xn)=q=12n+1Φqp=1nϕq,p(xp)

其中从某种意义上说,他们证明了 ϕ q , p : [ 0 , 1 ] → R 且  Φ q : R → R \phi_{q,p} : [0, 1] → R \text{ 且 } \Phi_q : R → R ϕq,p:[0,1]R  Φq:RR唯一真正的多元函数是加法,因为每个其他函数都可以用一元函数和求和来表示。

  • 不必局限于原始的方程式,其中只有两层非线性和隐藏层中的少量项(2n + 1),我们将将网络泛化为任意宽度和深度。
  • 科学和日常生活中的大多数函数通常是光滑的,并具有稀疏的组合结构,这可能有助于实现平滑的科尔莫戈洛夫-阿诺德表示。

请添加图片描述

KAN的架构

KAN的思想

假设我们有一个监督学习任务,包含输入输出对 {xi, yi},我们希望找到一个函数 f,使得对于所有数据点,yi ≈ f(xi)。方程暗示了如果我们能找到合适的一元函数 ϕq,p 和 Φq,那么任务就完成了。这启发我们设计了一个神经网络,明确地参数化了方程。由于所有需要学习的函数都是一元函数,我们可以将每个一维函数参数化为一个B样条曲线,其中包括可学习的局部B样条基函数的系数。

符号表示

  • KAN的形状表示 [ n 0 , n 1 , … , n L ] [n_0, n_1, \ldots , n_L] [n0,n1,,nL]
  • n i n_i ni 是计算图第 i i i 层中节点的数量。
  • ( l , i ) (l, i) (l,i) 表示第 l l l 层中的第 i i i 个神经元,并用 x l , i x_{l,i} xl,i 表示 ( l , i ) (l, i) (l,i)神经元的激活值
  • 在第 l l l 层和第 l + 1 l + 1 l+1 层之间,有 n l n l + 1 n_l n_{l+1} nlnl+1 个激活函数:连接 ( l , j ) (l, j) (l,j) ( l + 1 , i ) (l + 1, i) (l+1,i) 的激活函数用 ϕ l , i , j \phi_{l,i,j} ϕl,i,j 表示,其中 l = 0 , … , L − 1 l = 0, \ldots , L - 1 l=0,,L1 i = 1 , … , n l + 1 i = 1, \ldots , n_{l+1} i=1,,nl+1 j = 1 , … , n l j = 1, \ldots , n_l j=1,,nl

KAN的前向传播

第 (l + 1, j) 个神经元的激活值简单地是所有传入后激活值的总和:
x l + 1 , j = ∑ i = 1 n l x ~ l , i , j = ∑ i = 1 n l ϕ l , i , j ( x l , i ) , j = 1 , … , n l + 1 . x_{l+1,j} = \sum_{i=1}^{n_l} \widetilde{x}_{l,i,j} = \sum_{i=1}^{n_l} \phi_{l,i,j} (x_{l,i}), \quad j = 1, \ldots , n_{l+1}. xl+1,j=i=1nlx l,i,j=i=1nlϕl,i,j(xl,i),j=1,,nl+1.

矩阵形式
x l + 1 = ( ϕ l , 1 , 1 ( ⋅ ) ϕ l , 1 , 2 ( ⋅ ) ⋯ ϕ l , 1 , n l ( ⋅ ) ϕ l , 2 , 1 ( ⋅ ) ϕ l , 2 , 2 ( ⋅ ) ⋯ ϕ l , 2 , n l ( ⋅ ) ⋮ ⋮ ⋱ ⋮ ϕ l , n l + 1 , 1 ( ⋅ ) ϕ l , n l + 1 , 2 ( ⋅ ) ⋯ ϕ l , n l + 1 , n l ( ⋅ ) ) x l , x_{l+1} = \begin{pmatrix} \phi_{l,1,1}(·) & \phi_{l,1,2}(·) & \cdots & \phi_{l,1,n_l}(·) \\ \phi_{l,2,1}(·) & \phi_{l,2,2}(·) & \cdots & \phi_{l,2,n_l}(·) \\ \vdots & \vdots & \ddots & \vdots \\ \phi_{l,n_{l+1},1}(·) & \phi_{l,n_{l+1},2}(·) & \cdots & \phi_{l,n_{l+1},n_l}(·) \end{pmatrix} x_l, xl+1= ϕl,1,1()ϕl,2,1()ϕl,nl+1,1()ϕl,1,2()ϕl,2,2()ϕl,nl+1,2()ϕl,1,nl()ϕl,2,nl()ϕl,nl+1,nl() xl,

一个通用的 KAN 网络是 L 层的组合,则输出
KAN ( x ) = ( Φ L − 1 ∘ Φ L − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) x . \text{KAN}(x) = (\Phi_{L-1} \circ \Phi_{L-2} \circ \cdots \circ \Phi_1 \circ \Phi_0)x. KAN(x)=(ΦL1ΦL2Φ1Φ0)x.

原始的科尔莫戈洛夫-阿诺德表示方程(2.1)对应于一个形状为[n,2n + 1,1]的2层KAN。所有操作都是可微分的,因此我们可以使用反向传播来训练KAN。

KAN与MLP的比较

请添加图片描述

优化技巧

  • 残差激活函数:在文中公式(2.10)中,每个激活函数 ϕ(x) 被设计为残差形式,即包括一个基函数 𝑏(𝑥) 和一个B-样条函数。这里的 𝑏(𝑥)通常选择为 SiLU 函数,提供了非线性的基本变换,而B-样条部分允许进一步的细粒度调整。这种组合提高了模型对非线性关系的适应性和表达力。
  • 激活函数的尺度初始化:为了确保网络在初始化阶段具有合理的行为,激活函数的部分,特别是B-样条部分,通常初始化为接近零的小值,而权重 𝑤 使用 Xavier 初始化。这种初始化方法帮助避免训练初期的梯度爆炸或消失问题,促进了更稳定的学习过程。
  • 动态更新样条网格:由于B-样条是定义在有限区间的,但激活值可能在训练过程中超出这些区间,因此提出了动态更新网格的方法。这意味着根据激活函数输入的实际分布,调整定义样条函数的网格点,确保模型能够适应输入数据的变化,维持优化性能。

KAN的参数复杂度

我们考虑一个网络:

  • 深度为 L,
  • 每一层的宽度都相等,即 n0 = n1 = · · · = nL = N,
  • 每个样条函数的阶数为 k(通常 k = 3),在 G 个区间上(即 G + 1 个网格点)。

那么总共有大约 O(N^2L(G + k)) ∼ O(N^2LG) 个参数。相比之下,深度为 L,宽度为 N 的MLP只需要大约 O(N^2L) 个参数,这似乎比KAN更为高效。

幸运的是,KAN通常需要的 N 要比MLP小得多,这不仅节省了参数,而且实现了更好的泛化能力(见例如图3.1和3.3),并促进了可解释性。我们将KAN的泛化行为进行了以下的定理刻画。

KAN的逼近能力和缩放定律

逼近理论(KAT)

逼近理论(KAT):定理2.1(近似理论,KAT)说明了在KAN中使用有限网格大小时,可以用B-样条函数近似函数,并给出了逼近的误差上界。这个误差上界依赖于网格大小,但与函数的维度无关,这意味着KAN在处理高维数据时具有优势,可以避免维度诅咒。

神经网络缩放定律
神经网络的缩放定律描述了测试损失如何随着模型参数数量的增加而减少。这种关系通常表示为 ℓ ∝ N^(-α),其中 ℓ 是测试的均方根误差(RMSE),N 是模型参数的数量,α 是缩放指数。更大的 α 值意味着通过增加模型规模可以获得更大的性能改进。

  • Intrinsic dimensionality by Sharma & Kaplan: 此理论提出缩放指数 𝛼 从数据拟合的本征维度 𝑑 派生,缩放律为 ℓ∝𝑁−𝛼,其中 𝛼=(𝑘+1)/𝑑。
  • Maximum arity by Michaud et al.: 此理论考虑了计算图中最大的分支数(arity),并提出了一个与分支数相关的缩放指数 𝛼=(𝑘+1)/2。
  • Compositional sparsity by Poggio et al.: 此理论基于组合稀疏性,提出了缩放指数 𝛼=𝑚/2,其中 𝑚 是函数类中导数的阶。
  • KAN by Liu et al.: KAN 理论则是基于Kolmogorov-Arnold表示,其中提出的缩放指数是 𝛼=𝑘+1。这是因为 KAN 能够分解高维函数为多个一维函数,每个一维函数由样条来近似,从而实现高效的缩放。

在这些理论中,KAN(Kolmogorov-Arnold 网络)提出了一种全新的方法。KAN 将高维函数分解为多个一维函数,并利用光滑的 Kolmogorov-Arnold 表示来近似复杂函数。根据 KAN 的理论,缩放指数 α 取决于样条多项式的分段阶数,与其他工作相比缩放指数更大,拥有更好的拟合效果。

KAT和UAT的比较

  • 通用逼近定理(UAT):UAT表明,具有足够神经元数量的两层神经网络可以以任意精度近似任何函数。然而,它未提供关于所需神经元数量随误差容限的变化方式的界限,且在高维空间中存在维度诅咒的问题,导致神经元数量可能呈指数增长。

  • 近似理论(KAT):相比之下,KAT针对KANs(Kolmogorov-Arnold网络)提供了一种更为优化的逼近方法。KAT利用了函数的低维表示,使得神经网络在逼近时更有效率。KANs能够将高维函数分解成多个一维函数,这种分解方式有助于克服维度诅咒,并且使得神经网络更符合符号函数。

综上所述,KAT提供了一种更加灵活和高效的逼近方法,相比之下,UAT在高维空间中的逼近效果可能会受到限制,并且可能需要大量的神经元来达到所需的精度。

网格扩展

请添加图片描述

如何扩展,待更新

为了可解释性:简化 KAN 并使其具有交互性

  • 稀疏化(Sparsification):
    对于KAN中的激活函数进行稀疏化处理,通常通过L1正则化来实现。由于KAN中没有传统的线性权重,而是使用一维函数,因此需要对这些函数的稀疏性进行特别定义和优化。
  • 可视化(Visualization):
    通过将激活函数的重要性(例如,它们的输出影响程度)可视化,可以帮助研究者和开发者更好地理解模型的工作原理。这种可视化通常包括调整激活函数图像的透明度来反映其相对重要性。
  • 剪枝(Pruning):
    在训练过程中或训练后对模型进行剪枝,移除不重要的节点或激活函数,从而减少模型的复杂性。剪枝后的模型通常更加高效,且更易于分析和部署。
  • 符号化(Symbolification):
    将一些激活函数设置为特定的数学函数(如正弦、指数等),而不是完全依赖数据驱动的方式。这种方法有助于提升模型的数学解释性,使其输出更加可预测。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为机考入门python3--(23)牛客23- 删除字符串中出现次数最少的字符

分类:字符串 知识点: 访问字典中keychar的值,不存在则返回0 my_dict.get(char, 0) 字典的所有值 my_dict.value() 列表中的最小值 min(my_list) 题目来自【牛客】 import sysdef delete_min_freq_char(s):# 计算字母出现的频次…

streamlit通过子目录访问

运行命令: streamlit hello 系统默认使用8501端口启动服务: 如果想通过子目录访问服务,可以这么启动服务 streamlit hello --server.baseUrlPath "app" 也可以通过以下命令换端口 streamlit hello --server.port 9999 参考&…

网络安全--红队资源大合集

目录 相关资源列表 攻防测试手册 内网安全文档 学习靶场 工具包集合 内网安全文档 学习手册相关资源 产品设计文档 版本管理平台漏洞收集 相关工具拓展插件 Kali 环境下拓展插件 Nessus 相关工具拓展插件 Awvs 相关工具拓展插件 红队攻击的生命周期,…

就业班 第三阶段(redis) 2401--5.7 day2 redis2 哨兵(前提是做好了主从)+redis集群

1、设置密码(redis) 先在redis.conf里面找到这个 后面写上要设置的密码即可 2、哨兵模式 监控redis集群中master状态的的工具 在做了主从的前提下 主 从1 从2 作用 1):Master状态检测 2):如果Master异常,则会进行…

python中type,object,class 三者关系

type,object,class 三者关系 在python中&#xff0c;所有类的创建关系遵循&#xff1a; type -> int -> 1 type -> class -> obj例如&#xff1a; a 1 b "abc" print(type(1)) # <class int> 返回对象的类型 print(type(int)) …

FL Studio20.9水果安装及切换修改中文语言教程

前言 喜欢音乐制作的小伙伴千万不要错过这个功能强大&#xff0c;安装便捷的音乐软件哦&#xff01;如果你们已经下载好了这款软件的话&#xff0c;小编今天在这里就为大家详细讲解下如何安装FL Studio软件&#xff0c;一起来学习吧&#xff01; 注意&#xff1a; &#xff0…

力扣刷题--数组--第二天

今天仍然做二分查找相关的题目。先来回顾一下二分查找的方法和使用的条件。二分查找是在数组中查找目标值的一种方法&#xff0c;通过边界索引确定中间索引&#xff0c;判断中间索引处的元素值和目标值的大小&#xff0c;来不断缩小查找区间。使用二分查找有如下一些限制&#…

Windows系统安装MySQL数据库详细教程

【确认本地是否安装mysql】 &#xff08;1&#xff09;按【winr】快捷键打开运行&#xff1b; &#xff08;2&#xff09;输入services.msc&#xff0c;点击【确定】&#xff1b; &#xff08;3&#xff09;在打开的服务列表中查找mysql服务&#xff0c;如果没有mysql服务&am…

LMdeploy推理实践

在inter-studio平台上&#xff0c;下载模型&#xff0c;体验lmdeploy 下载模型 这里是因为平台上已经有了internlm2模型&#xff0c;所以建立一个符号链接指向它&#xff0c;没有重新下载 ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/如…

Qt | QComboBox(组合框)

01、上节回顾 Qt 基础教程合集02、QComBox 一、QComboBox 类(下拉列表、组合框) 1、QComboBox 类是 QWidget 类的直接子类,该类实现了一个组合框 2、QComboBox 类中的属性 ①、count:const int 访问函数:int count() const; 获取组合框中的项目数量,默认情况下,对于空…

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(IDE方式)】

Hi3516标准系统入门&#xff08;IDE方式&#xff09; 注意&#xff1a; 从3.2版本起&#xff0c;标准系统不再针对Hi3516DV300进行适配验证&#xff0c;建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作&#xff0c;则可能会出现…

C++笔记-makefile添加第三方.h和.cpp及添加.h和lib库模板

目文件结构如下所示时&#xff1a; project/├── main.cpp├── test.cpp├── DIRA/│ ├── A.cpp│ └── A.h├── DIRBLIB/│ └── libB.so└── include/└── B.h Makefile如下所示&#xff1a; # 编译器设置 CXX g CXXFLAGS -stdc11 -Wall# 目录…