MLP优化KAN

news2024/11/24 9:29:42

一:spline概念介绍

在数学学科数值分析中,样条(spline)是一种特殊的函数,由多项式分段定义。样条的英语单词spline来源于可变形的样条工具,那是一种在造船和工程制图时用来画出光滑形状的工具
在这里插入图片描述

样条有两个特点:
一段样条是弹性形变产生的“光滑的”曲线
样条的首位可以用角尺控制,因此可以拼接多段样条

这两个特点翻译成数学语言,可以如下描述:
样条曲线的各阶导数连续:一方面使样条有光滑特性,一方面提供了参数之间的等式关系
样条曲线便于构造:在追加始末状态等约束后,如果等式数量达到了参数数量,就可以确定一条唯一的曲线,如果小于,就可以构造优化问题
以上两个特点让我们可以用样条构造出理想形状的曲线。

在数值分析中,样条曲线可以实现点之间的差值;
在计算机图形学中,样条曲线可以用作构建光滑的曲线,比如很多软件的曲线作图功能;
在机器人学或者自动驾驶中,样条曲线可以用作参考线生成和路径规划。

1.1 数学描述

样条曲线的本质是满足一定约束的分段多项式。

设【a.b】为 R上的区间,给定k+1个点 ti,称为节点(knot),可以将【a.b】分为k段。要求满足以下条件:a = t0 < t1 < t2 < …… < tk-1< tk = b
定义:S:[a,b]->R为参数曲线,如果满足以下2个条件
在这里插入图片描述
S(ti)称为节点值而 (ti, s(ti))称为内部控制点(internal control point)。
(t0,t1,……, tk)称为节点向量(knot vector)。如果节点等距分布在区间 上,我们称样条均匀(uniform),否则为非均匀(non-uniform)。

样条曲线是分段多项式曲线,因此也是参数化曲线。常用的样条类型包括:
三次样条(Cubic Spline)
四次样条(Quatric Spline)
五次样条(Quintic Spline)
n次多项式曲线的数学表达式如下所示:
在这里插入图片描述
式中包含了n+1个参数[a0,a1, ……,an] 。k段样条曲线是k段分段多项式,因此包含 kn+k个参数。

由式(3)中 k-1个分段点的n-1阶连续性,可以得到 nk-n个方程;从起始状态以及曲线n-1阶导数的初始值,可以得到 n 个方程。

1.2 MLP与Spline的优缺点

多层感知器 (MLP)是深度学习的基础理论模块,是目前可用于逼近非线性函数的默认模型,其表征能力已由通用逼近定理证明。但MLP也有明显的缺点,例如在 Transformer中,MLP 的参数量巨大,且通常不具备可解释性。

为了提升表征能力,MIT提出了KAN。KAN本质上是样条(Spline)曲线和 MLP 的组合,吸收了两者的优点。即

KAN = MLP + Spline

在数学中,样条曲线是由多项式分段定义的函数。一般的Spline可以是特定区间的3阶多项式。在插值问题中,样条插值通常优于多项式插值,因为即使使用低次多项式,也能产生类似的精度结果,同时避免了高次多项式的Runge’s phenomenon(在一组等距插值点上使用高次多项式进行多项式插值时出现的区间边缘振荡问题)。
在这里插入图片描述

1.3 ‌Kolmogorov-Arnold表示定理

‌Kolmogorov-Arnold表示定理是由苏联数学家‌安德烈·科尔莫戈洛夫和‌大卫·希尔伯特提出的,用于探讨‌多元函数可以如何被一组更简单的函数表示。 该定理最初由科尔莫戈洛夫提出,并在1957年由他的学生‌弗拉基米尔·阿诺尔德进一步发展。这个定理是数学和理论计算机科学中的一个基本问题,部分解答了希尔伯特著名的23个问题中的第13个问题的一个更受约束但更一般的形式。‌

Vladimir Arnold与 Andrey Kolmogorov证明了实分析中的如下表示定理:
如果f是多元连续函数,则f可以写成有限数量的单变量连续函数的两层嵌套叠加。其数学表达式就是
在这里插入图片描述
定义域(多变量连续函数):函数 f 的定义域是一个n维的闭区间[0, 1]的笛卡尔积,值域是实数集合R。简单来讲,函数 f 接受一个n维向量作为输入,并将其映射到实数集合R中的一个数。每个维度的取值范围都是[0, 1],所以输入向量的每个分量都是在[0, 1]内取值的。
函数表示(两层嵌套函数):Φq 是外部函数(outer functions),Φq,p 是内部函数(inner functions)。对于内部函数,定义域是闭区间[0, 1],值域是实数集合R;对于外部函数,定义域是实数集合R,值域也是实数集合R。
完整表示(完整函数表示):直观看到函数 f,由两个嵌套的求和函数构成;外部函数Φq的参数是n个内部函数Φq,p的和!;整体来看 函数 f 是 (2n+1)个外部函数Φq的和。

Kolmogorov-Arnold表示定理的主要内容是:对于任何定义在闭区间上的连续函数,存在一系列的一维连续函数,使得该多变量函数可以表示为这些一维函数的有限组合。 这意味着,任何复杂的多元函数都可以通过一系列简单的一维函数来表示,这为理解和近似复杂函数提供了新的数学结构。‌
这表明在实数域上,唯一真正的多元函数是求和,因为所有其他函数都可以使用单变量函数求和来表征。
换个形象的说法,就是你家里做个复杂的事(包含多个任务),你爸你妈和你可以分别干活然后汇总,并不需要三个人同时忙一个任务。

顺带八卦下,Vladimir 是位前苏联神童, Andrey则是他的导师。

二:KAN

2.1 MLP与KAN对比

在这里插入图片描述

与传统的MLP 相比,KAN 有4个主要特点:
1)激活函数位于“边”而不是节点(Node)上;
2)激活函数是可学习的而不是固定的;
3)可以使用非线性核函数来替代MLP“边”(Edge)上的线性函数;
4)可以设定细粒度的结点(Knot)来提高逼近精度。

就我们来看,由于可以设置单独的激活层来替代“边”上激活的结构(相当于每个“边”上插入一个节点),因此特点1并非KAN的核心特征。特点4在实际使用时需要做大量的查表插值,对存储带宽的要求非常高,可能并不一定适合常规的AI芯片进行计算,估计在未来也不是KAN的核心特征。

2.2 KAN架构

KAN的架构设计来自一个数学问题:对一个由输入输出对 {xi, yi} 组成的有监督学习任务,寻找函数f 使得所有数据点的 yi≈ f (xi)。其核心在于找到合适的单变量函数 Φq,p(外部函数)和 Φq(内部函数)。

在KAN中,使用B-spline(B样条)来构建。B-spline是基础样条(Basic Spline)的缩写。
对于B-spline,函数在其定义域内、在结点(Knot)都具有相同的连续性。其多项式表达可由Cox-de Boor 递推公式表达:
在这里插入图片描述

例如KA定理的内部函数可以定义为带有参数的矩阵计算。矩阵中的每个元素事实上是一个函数或算子。
那么根据KA定理,理论上只要2个KAN层就可以充分表征实数域的各类有监督学习任务。2层的KAN中,激活函数放置在边缘而不是节点上(在节点上进行简单求和),并且2层中间有2n+1个变量。当然为了保证数值逼近的精度,实际设计中可以构建2层以上或者任意层数的KAN。

其中KAN层可以定义为
在这里插入图片描述
更为一般的的KAN表征形式是:
在这里插入图片描述
最简的KAN可以写为:
在这里插入图片描述

由于B-spline函数具备很好的可导性,因此在这里可以使用大家习惯的反向传播(BP)方法来进行KAN的训练。

2.3 KAN细节优化

1)残差激活函数
使用一个基础(basis)函数 b(x)(类似于残差连接),使激活函数 Φ (x) 是基础函数 b(x) 和样条函数的和。在这里插入图片描述

2)初始化方式
每个激活函数都被初始化为 spline(x) ≈ 0^2。而w根据MLP 中的线性层的初始化方式进行。

3)Spline网格的更新
据输入激活动态更新每个网格,以解决Spline在有界区域上定义但激活值在训练期间可能超出出固定区域的问题。

2.4 KAN的逼近与神经缩放

关于KAN缩放的基本观点浓缩为以下2点:
1)2层的KAN表征可能是非平滑的,更深的KAN表征可以获得更平滑的逼近。
2)有限维度的KAN就可以很好的逼近样本函数。

下面我们来看看缩放定律:
神经缩放定律是测试损失(Loss)随着模型参数的增加而减小的现象,即 ℓ ∝ N_−α_,其中 ℓ 是测试 RMSE(均方根差),N 是参数数量,α 是缩放指数。也就是说,参数量越大,误差越小(精度越高)。

由于数据域的网格可以以任意的刻度进行细粒度化。因此B-spline曲线可以任意精确的达到(逼近)目标函数,而且这一优势被KAN继承了。

相比之下,MLP 没有“细粒度”的概念。(MLP一般不按数据分区进行训练)

对于 KAN,可以先训练一个参数较少的 KAN,然后通过使Spline网格粒度更细,使其扩展到参数较多的 KAN,这一方式降低了复杂度。

当然这一点可能也有一些问题,因为实际的AI芯片中并未对粒度计算提供太多的设计,激活函数个数越多,区间越细事实上会造成更大的存储带宽瓶颈。

2.5 KAN的可解释性

在解释之前,先通过稀疏正则化对KAN进行训练,然后剪枝。剪枝后的 KAN更容易解释。

MIT团队给出了解释KAN的基本流程:
KAN的解释流程

1)稀疏化(Sparsification)(预处理)
对于KAN来说,
a) 线性权重被可学习的激活函数取代,因此需定义这些激活函数的 L1 范数,激活函数的 L1 范数定义为其 Np个输入的平均幅度;
b) 单独 L1范数 不足以实现 KAN 的稀疏化;还需要额外的熵正则化。

2)可视化(Visualization)
将激活函数 Φl,i,j的透明度设置为与 tanh(βAl,i,j) 成正比,其中 β = 3 。小幅度的函数被忽略以聚焦重要函数。

3)剪枝(Pruning)
经过稀疏化惩罚训练后,一般还需要将网络修剪成更小的子网。在节点级别对 KAN 进行稀疏化,所有不重要的神经元都被修剪。

4)符号化(Symbolification)
如果猜测某些激活函数实际上是符号函数(例如 cos 或 log),则提供一个接口将其设置为指定的符号形式,例如fix_symbolic(l,i,j,f) 可以设置 (l , i, j) 激活为 f 。从样本中获得预激活(Preactivation) x 和后激活(Postactivation) y,并拟合仿射参数 (a, b, c, d),使得 y ≈ cf (ax + b) + d。这里的拟合可通过 a、b 的迭代搜索和线性回归来完成。

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

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

相关文章

Adversarial and Adaptive Tone Mapping Operatorfor High Dynamic Range Images

Abstract 这项工作涉及色调映射&#xff0c;这是一种将高动态范围 (HDR) 图像转换为低动态范围 (LDR) 图像的常用方法。 我们通过使用自适应色调映射来解决这个问题。 我们建议部署条件生成对抗网络来构建对抗性和自适应色调映射算子&#xff08;adTMO&#xff09;&#xff0c…

游戏盾是如何解决游戏行业攻击问题

随着游戏行业的迅猛发展&#xff0c;其高额的利润和激烈的市场竞争吸引了众多企业和创业者的目光。然而&#xff0c;这一行业也面临着前所未有的业务和安全挑战&#xff0c;尤其是DDoS&#xff08;分布式拒绝服务&#xff09;攻击&#xff0c;已经成为游戏行业的一大威胁。今天…

Metasploit渗透测试之MSFvenom

简介 到目前为止&#xff0c;你应该已经对MSFvenom不陌生了&#xff0c;因为在之前的文章中已经介绍多次了。MSFvenom是用于生成有效攻击载荷和编码的工具。它由msfpayload和msfencode演变而来。并于2015年6月8日取代了这两者。 在本文中&#xff0c;我们将更深入地研究可用的…

MySQL进阶 - 索引

01 索引概述 【1】概念&#xff1a;索引就是一种有序的数据结构&#xff0c;可用于高效查询数据。在数据库表中除了要保存原始数据外&#xff0c;数据库还需要去维护索引这种数据结构&#xff0c;通过这种数据结构来指向原始数据&#xff0c;这样就可以根据这些数据结构实现高…

如何高效开发一套医院绩效核算系统

医院绩效核算系统是一种专为医疗机构设计的软件系统&#xff0c;旨在通过科学、系统的方法评估和核算医院内各科室及员工的绩效。该系统与医院的信息化系统紧密集成&#xff0c;特别是与医院信息系统&#xff08;HIS&#xff09;对接&#xff0c;以确保数据的准确性和实时性。 …

nginx配置多域名共用服务器80端口

nginx配置多域名共用服务器80端口 多个域名&#xff0c;比如两个域名&#xff0c;这两个域名其实共用一台服务器&#xff08;意味着域名解析到同一个IP&#xff09;&#xff0c;一个域名为abc.com&#xff08;可以是http://abc.com或者www.abc.com&#xff09;,另外一个域名为x…

腾讯地图接口报错此key每日调用量已达到上限

需要在 配额管理 的 账户额度 中进行配额的分配

安捷伦Agilent N9918A,N9918B Fieldfox手持式微波分析仪

Agilent N9918B、Keysight N9918B、HP N9918B FieldFox 手持式微波分析仪&#xff0c;26.5 GHz 配置详情&#xff1a; 233 - 频谱分析仪 350 - 实时频谱分析仪 (RTSA) 010 - 矢量网络分析仪时域 235 - 前置放大器 238 - 频谱分析仪时间选通 210 - 矢量网络分析仪传输/反射…

照片在线转成二维码展示,更方便分享图片的好办法

怎么能把照片生成二维码后&#xff0c;分享给其他人展示呢&#xff1f;现在很多人为了能够更方便的将自己的图片展现给其他人会使用生成二维码的方式&#xff0c;将图片存储到云空间&#xff0c;通过扫码调取图片查看内容。与其他方式相比&#xff0c;这样会更加的方便&#xf…

BI 在运营管理中的案例实操与策略交流会开始报名啦!

BI 在运营管理中的案例实操与策略交流会开始报名啦 点击链接报名https://www.dataondemand.cn/activity20241029

【C++差分数组】3229. 使数组等于目标数组所需的最少操作次数|2066

本文涉及知识点 C差分数组 LeetCode3229. 使数组等于目标数组所需的最少操作次数 给你两个长度相同的正整数数组 nums 和 target。 在一次操作中&#xff0c;你可以选择 nums 的任何子数组&#xff0c;并将该子数组内的每个元素的值增加或减少 1。 返回使 nums 数组变为 tar…

天气预报echarts

如上图&#xff0c;可以切换温度&#xff0c;降水量&#xff0c;风力风向和空气质量 <template><el-radio-group v-model"selectedData" change"updateChart"><el-radio-button label"temperature">温度</el-radio-butto…

一、制作UI自适应

当前分辨率 更改分辨率 一、原因 一款游戏的UI&#xff0c;可能会根据玩家的分辨率和屏幕尺寸&#xff0c;产生不同的变化 例如&#xff1a;某一个Image位移到了摄像机外面 因此需要通过锚点和屏幕自适应来制作完美的效果 二、解决方法 1、锚点 作用是&#xff1a;根据当…

RPA技术的定义与原理

RPA&#xff08;Robotic Process Automation&#xff09;即机器人流程自动化&#xff0c;是一种利用软件机器人或机器人工具来自动执行重复性、规则性和可预测性的业务流程的技术。以下是对RPA技术的详细介绍&#xff1a; 一、RPA技术的定义与原理 RPA技术通过模拟人工操作&a…

【深度学习 | 基础部分】深度学习导论

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…

基于IMX6UL的EPIT的定时器实验

定时器是最常用的外设&#xff0c;常常需要使用定时器来完成精准的定时功能&#xff0c;I.MX6U 提供了多 种硬件定时器&#xff0c;有些定时器功能非常强大。本章我们从最基本的 EPIT 定时器开始&#xff0c;学习如何配置EPIT 定时器&#xff0c;使其按照给定的时间&#xff0c…

springmvc发送邮件的功能怎么集成Spring?

springmvc发送邮件的实现方法&#xff1f;怎么用SpringMVC发信&#xff1f; Spring框架提供了强大的支持&#xff0c;使得在SpringMVC应用中集成邮件发送功能变得非常简单。AokSend将详细介绍如何在SpringMVC应用中集成邮件发送功能&#xff0c;并确保其高效、可靠地运行。 s…

Adams Action Only函数的工程应用

概述 进行建模时&#xff0c;总会涉及到与实际工程的对比&#xff0c;所建立的模型与实际情况越相近&#xff0c;那仿真出的结果越有工程意义。但是&#xff0c;有时为了某种目的&#xff0c;也需要人为的控制建模元素与实际情况的相似程度&#xff0c;甚至要切断所建立元素与…

【RK3588】rknpu驱动流程

画图工具 &#xff1a; https://pixso.cn/

Heroic Key to the Focusing Iris

Heroic Key to the Focusing Iris - Item - 魔兽世界怀旧服WLK3.35数据库_巫妖王之怒80级魔兽数据库_wlk数据库 英雄聚焦之虹的钥匙 [英雄永恒之眼的审判]