号称能打败MLP的KAN到底行不行?数学核心原理全面解析

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: Kolmogorov-Arnold Networks (KANs) 是一种新型神经网络架构,挑战了多层感知器(mlp)的基础,通过在权重而非节点上使用可学习的激活函数(如b样条),提高了准确性和可解释性。KANs利用Kolmogorov-Arnold表示定理,将复杂函数分解为简单函数的组合,简化了神经网络的近似过程。与mlp相比,KAN在参数量较少的情况下能达到类似或更好的性能,并能直观地可视化,增强了模型的可解释性。尽管仍需更多研究验证其优势,KAN为深度学习领域带来了新的思路。

前几天火爆的Kolmogorov-Arnold Networks是具有开创性,目前整个人工智能社区都只关注一件事LLM。我们很少看到有挑战人工智能基本原理的论文了,但这篇论文给了我们新的方向。

mlp或多层感知位于AI架构的最底部,几乎是每个深度学习架构的一部分。而KAN直接挑战了这一基础,并且也挑战了这些模型的黑箱性质。

也许你看到了很多关于KAN的报告,但是里面只是简单的描述性介绍,对于他的运行原理还是不清楚,所以我们这篇文章将涉及大量的数学知识,主要介绍KAN背后的数学原理。

KAN

Kolmogorov-Arnold Networks引入了一种基于Kolmogorov-Arnold表示定理的新型神经网络架构,为传统的多层感知器(mlp)提供了一种有前途的替代方案。

mlp在节点(“神经元”)上有固定的激活函数,而kan在边缘(“权重”)上有可学习的激活函数。kan根本没有线性权重,每个权重参数都被参数化为样条的单变量函数。这个看似简单的改变使得KANs在准确性和可解释性方面优于mlp。KANs是mlp的有希望的替代品,为进一步改进当今严重依赖mlp的深度学习模型提供了机会。

上面论文的原文,根据论文在数据拟合和PDE求解方面,更小的kan与更大的mlp相当或更好。所以kan可能比mlp拥有更快的神经缩放定律。并且KANs可以直观地可视化,大大提高了可解释性。

论文围绕函数逼近的Kolmogorov-Arnold表示定理的性质展开,这是这篇论文的全部前提。

表示定理基础:函数被分解成更简单的函数,然后使用神经网络进行近似。

平滑性和连续性:目标是确保原始多元函数的平滑性有效地转化为神经网络近似。

空间填充曲线:函数跨维度的属性,特别是关注在近似过程中如何保持连续性和其他函数属性或转换。

什么是样条?为什么KAN需要样条?

上面进行了简单的介绍,下面我们开始深入理解论文的数学基础,这是其他报道中没有的。

样条是一种数学函数,用于通过一组控制点创建光滑和灵活的曲线或曲面。在数学术语中,样条是一个分段多项式函数,它在多项式块相交的地方(结点)保持高度平滑。

样条有几种类型,包括:

线性样条:用直线连接点,简单但不流畅。这在点上是不可微的。

二次和三次样条:二次或三次多项式创建曲线。三次样条曲线被广泛使用,因为它在灵活性和计算复杂性之间提供了很好的平衡。

b样条(基样条):对曲线形状提供更好的控制,特别是在边界附近,并在一组控制点上定义,这些控制点不一定位于曲线本身。

论文则是将b样条用于kan:与基本样条不同,b样条不一定通过其控制点。而是通过这些点从远处引导曲线的形状,提供了一种更灵活的方式来描述复杂的形状和图案。

b样条在kan中特别有用,因为它们在处理高维数据时具有鲁棒性,并且能够形成光滑的多维表面。对于神经网络,在高维数据中学习是标准的,b样条可以用来管理模型的复杂性,并且持计算效率,同时不会失去可解释性。

Kolmogorov-Arnold表示定理

Kolmogorov-Arnold表示定理背后的核心思想是,任何(多变量)连续函数都可以表示为单变量连续函数和加法运算的组合。无论多变量函数看起来多么复杂,都可以用更简单的单变量函数来表示它。它和傅里叶级数很相似,傅里叶级数是一个连续的周期函数由谐波相关正弦函数的和生成。

下面是Kolmogorov-Arnold表示定理的数学公式:

该定理提供了一种将复杂的多变量函数分解为每次只涉及一个变量的一系列操作的方法,使其更容易理解和计算。这在神经网络等环境中这种分解可以帮助设计架构,使用更简单、更容易训练的组件有效地近似复杂函数。

KAN的数学原理

1、传统MLP层

我们先来看看MLP。mlp基于普遍逼近定理,该定理指出,在对激活函数的温和假设下,具有单个隐藏层的前馈网络包含有限数量的神经元,可以在𝑅_𝑛的紧凑子集上近似连续函数。

这里的𝜎为固定非线性激活函数,𝑤为权重,𝑏为偏差,𝑎为输出权重。

在典型的mlp中,每一层由一个线性变换和一个非线性激活函数组成。这意味着对于任何给定的输入,网络计算输入的加权和,然后应用一个非线性函数,如ReLU, sigmoid等。这样mlp对许多任务都是有效的,但可能受到其转换的固定性质和参数变化的全局影响的限制。

2、KAN层

与标准的线性加非线性方法不同,KAN层使用一维函数矩阵(例如b样条),其中连续层中两个节点之间的每个连接都由一个可以单独调整的单独函数定义。

这种结构为函数逼近过程提供了更高程度的灵活性和局部控制。每个连接学习从输入到输出的整体特征映射的特定部分,这可能导致对数据的更细致的理解和表示。

具有n维输入和无维输出的KAN层可以定义为一维函数的矩阵。

KAN层定义为一维函数𝜙𝑝的矩阵Φ,𝑞中𝑝表示输入维度,q表示输出维度。每个函数𝜙𝑝,𝑞都有可训练的参数,并将输入直接映射到输出,而不需要中间的加权和和之后的通用激活。

KANs结构:

与mlp不同,KAN层中的每个连接都由单个1D函数𝜙_𝑙,𝑗,定义,该函数直接将输入映射到输出(l是第l层)。这种体系结构不需要矩阵乘法,而是使用一组函数映射,其中每个函数负责将输入的一个组件转换为输出的一个组件。

整个层可以被描述为这些函数的矩阵Φ,其中每个函数𝜙_𝑙,𝑗,直接从每个输入节点𝑖应用到每个输出节点𝑗。这种设置为数据转换提供了更灵活和定制的方法:

KANs的基础是基于一个监督学习任务,其目标是近似一个函数𝑓,该函数将所有数据点的输入𝑥部关系映射到输出𝑦部关系。该方法使用Kolmogorov-Arnold定理将任意多元函数分解为一系列单变量函数和求和运算:

方程表明,对于每个输入维度𝑥𝑝,都有一个单变量函数𝜙𝑞,𝑝和Φ_𝑞是聚合这些单变量函数输出的高级函数。

如果我们展开上面的方程:

计算过程对比

为了理解这些他们的不同之处,我们举一个简单的例子,比较KAN和MLP的输出。如果的从上面的数学原理看有点复杂,所以让我们写一个更简单的版本和MLP对比就更容易理解最后发生了什么。

1、MLP

让我们假设以下配置和值:

  • Input Layer: 3
  • Hidden Layer 1: 4
  • Hidden Layer 2: 2
  • Output Layer: 1

权重矩阵:

输入

MLP的计算如下:

2、KAN

输入

KAN的计算如下:

在MLP中,每个层执行一个加权和,然后是一个非线性激活函数,而在KAN中,每个“连接”应用一个特定的函数(我们在本例中使用随机函数),并将这些函数输出聚合为前馈。

3、对比总结

MLP:矩阵乘法是根据权重调整的线性变换。非线性(本例中的ReLU)允许网络模拟非线性现象。

KAN:每个节点连接应用b样条或其他定义函数,使其高度灵活,并根据每个输入特征所需的特定转换进行定制。

总结

在更少参数的情况下,kan可以达到与mlp相当甚至更高的精度。由于其架构,KAN还提供了增强的可解释性,其中每个权重都被参数化为样条的可学习单变量函数所取代。论文强调了基于Kolmogorov-Arnold表示定理的KANs的数学优雅性,该定理为这些网络提供了强大的理论基础。

KAN这篇论文确实很大,而且涉及了更多的细节,我还在进行更深入的研究,并且我自己的测试与mlp相比它们需要更少的训练样本,但是KAN的拟合速度没有MLP快,而且最终得到的效果我还没有看到比MLP好多少,所以具体是否好用我还在更详细的测试。

但是无论如何KAN为人工智能社区带来了一股新鲜空气,这是非常值得称赞和尊重的。

https://avoid.overfit.cn/post/6ee2307e614b462f9c9aac26ef12252d

作者:Vishal Rajput

目录
相关文章
|
15天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
35 3
|
3天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
12 1
|
8天前
|
数据采集 存储 编解码
一份简明的 Base64 原理解析
Base64 编码器的原理,其实很简单,花一点点时间学会它,你就又消除了一个知识盲点。
36 3
|
5天前
|
供应链 安全 分布式数据库
探索区块链技术:从原理到应用的全面解析
【10月更文挑战第22天】 本文旨在深入浅出地探讨区块链技术,一种近年来引起广泛关注的分布式账本技术。我们将从区块链的基本概念入手,逐步深入到其工作原理、关键技术特点以及在金融、供应链管理等多个领域的实际应用案例。通过这篇文章,读者不仅能够理解区块链技术的核心价值和潜力,还能获得关于如何评估和选择适合自己需求的区块链解决方案的实用建议。
20 0
|
17天前
|
前端开发 JavaScript UED
axios取消请求CancelToken的原理解析及用法示例
axios取消请求CancelToken的原理解析及用法示例
56 0
|
20天前
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
71 0
|
20天前
|
存储 Java 开发者
【编程基础知识】 计算机中的数学魔法:二进制加减运算全解析
本文深入解析了计算机中二进制加减运算的原理,涵盖原码、反码和补码的概念及应用,结合具体示例,帮助读者理解计算机底层数学运算机制,适合Java开发者学习。
35 0
|
22天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
55 0
|
22天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
47 0
|
22天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
53 0

推荐镜像

更多