KANMLP

news/2024/11/7 21:23:33/文章来源:https://www.cnblogs.com/XL2COWARD/p/18534020

MLP

多层感知器(MLP)在深度学习和科学任务中的一些主要问题包括​:

固定的激活函数:MLP的激活函数通常是固定的,应用在网络节点(神经元)上,这限制了模型的表达能力。相较之下,KAN允许在边缘(权重)上使用可学习的激活函数,使模型更具适应性和灵活性。

维度诅咒(Curse of Dimensionality):MLP在高维数据中难以捕捉数据的合成结构,因此在处理高维函数时需要大量参数。这种增长会导致计算资源的浪费和效率的下降,尤其是在维度较高的情况下。而KAN通过样条和可学习的激活函数能够有效缓解这一问题。

可解释性不足:MLP模型中的权重和激活函数通常较难直接解释,因此难以直观理解模型是如何处理输入数据的。这对科学发现和符号回归等应用中的需求不匹配,而KAN通过结构设计在可视化和可解释性上更具优势。

扩展能力受限:MLP模型的扩展通常依赖于增加神经元的数量或层数来提高表现,但这种“神经缩放法则”扩展速度较慢,且训练成本较高。而KAN通过调整样条网格的细粒度(即“网格扩展”),可以逐步提升模型精度而无需重新训练。

KAN

KAN(Kolmogorov-Arnold Networks)相较于传统的多层感知器(MLP)具有以下优势​:

精确性:在小规模的AI和科学任务中,KAN能够比MLP达到更高的准确性。KAN能够在较小规模的情况下完成相似或更高的准确度,因为它们能够更好地拟合低维函数,并在有合成结构的数据中击败维度诅咒,从而达到更好的缩放法则。

可解释性:KAN网络的结构使其更具直观性,能够便于科学家进行可视化和交互,支持科学发现中的符号回归和法则重现等任务。

扩展性:KAN通过其“网格扩展”方法,可以在不从头训练的情况下,通过精细化其样条网格来提升准确性。

为了进一步提升KAN的性能,文档中提出了一些方法:

网格扩展(Grid Extension):可以通过增加样条网格的精度来提升KAN的准确性。
简化和剪枝(Simplification and Pruning):引入正则化和稀疏化技术,帮助KAN自动发现适配数据结构的最小网络结构,使得KAN网络更为简洁和易于解释。
这些方法不仅使KAN在高维任务中保持较好的表现,还提高了模型的可解释性和用户交互性,使得KAN成为MLP的一种有前途的替代方案

网格扩展

设置初始网格:首先,在一个固定的区间上(例如[a, b])定义一个粗粒度的网格,比如将区间分为少量的区间点,形成初始的粗网格。这些初始网格点用来生成B样条的基函数,从而表达目标函数。

训练粗粒度网格模型:使用粗粒度的网格进行初始训练,通过LBFGS等优化方法调整网格中的参数,得到一个基础的近似模型。

扩展网格:在初始训练完成后,将粗粒度网格扩展为更精细的网格。例如,将网格的分割数从3增加到5、10、20等,逐步增加样条的分割数量,使得模型能更精确地拟合目标函数。这种扩展可以通过在原始区间内添加更多的网格点实现。

最小二乘法优化:将新网格的样条参数初始化为旧网格的参数,通过最小二乘优化算法来调整新的样条系数,使其在新网格上尽量贴近原始粗网格的拟合结果。这样无需重新训练整个模型,而是通过局部调整来提高精度。

循环更新:重复上述步骤,不断增加网格的精细度,直到达到所需的精度。每次网格扩展后,模型的训练误差会先降低,然后逐渐稳定。适当的精细度可以在减少偏差的同时避免过拟合

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

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

相关文章

聊聊接口测试用例设计规范

1、通过性验证: 先按照接口文档传入所有必填字段并且字段值在正确范围内,预期返回正确结果 2、参数验证(正向/逆向):必填参数:针对每个必填参数,都设计一条参数为空的测试用例,接口错误信息返回正确 非必填参数:设计一条用例所有非必填的参数都传入值,非必填参数(类…

2287: 【例28.3】 数列分段

include <bits/stdc++.h> using namespace std; int n, m, sum, num; int main( ) { cin >> n >> m; for (int i=1;i<=n;i++) { int e; cin >> e; if (num+e>m) { sum++; num=e; } else { num+=e; } } cout << sum+1; return 0; } 反思:这…

CRM系统主要是干什么的?

什么是CRM 系统?CRM系统到底是干什么的?不同的企业人员该如何利用CRM去解决他们的问题等等,问题太多了,我想着就就专门出一期内容,来为大家详细介绍。 干货满满,建议收藏!! 首先第一个问题,什么是CRM系统? CRM是Customer Relationship Management 的缩写,就是客户关…

11月7日 NOIP模拟(难题math、矩阵游戏matrix、括号序列seq、道路road) - 模拟赛记录

Preface T1 试图找规律失败,正经推反而几分钟就出来了。以后应该少想这些歪门邪道(除非实在闲的蛋疼或者没有一点头绪,且必须要打完所有能打的子任务比如暴力或特殊性质;而且必须在用常规方法思考过后,才能够用一些稍微不那么常规的方法) 至于 T2、T3、T4,因为知道 T1 浪…

ESP32学习笔记2(GPIO的数字输入输出功能)

1. 普通5mm直径LED参数测定实验 以上为普通5mm直径LED,手册建议持续工作电流为20mA以内。以下,采用学生电源(带控压限流功能)通过限流电阻170欧给各色LED供电,通过缓慢加压测流和观察LED亮度的方法,确定电流、压降与亮度关系,实测该批次LED颜色与压降大致如下: 颜色 …

2024/11/7日工作总结

学习JS基础知识: 1.事件绑定:点击查看代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><img id="龙泡泡" src="../imgs/年…

实验三 c++

实验任务一 源代码 button.hpp1 #pragma once2 3 #include<iostream>4 #include<string>5 6 using std::string;7 using std::cout;8 9 class Button{ 10 public: 11 Button(const string &text); 12 string get_label()const; 13 void click(); 1…

学习openeuler操作系统的记录本

1.下载以及配置openeuler在官网里面下载openeuler操作系统,在官网的文档里面里面查看相对应的注意事项,(一定要会阅读官方文档),在官网查看下载的对应操作系统需要的最小cpu,以及磁盘大小等分配合适的虚拟硬盘,配置的过程要一步一步来,防止出现分配不合理,而导致的操作…

AWVS安装及破解

以kali为例安装AWVS复制安装文件到kali中 AWVS百度网盘下载 root用户打开kali并把安装包解压到/opt/AWVS路径中 7z x acunetix_23.11.231123131_x64.7z -o/opt/AWVS/编辑host文件 vim /etc/hosts将以下内容加在hosts文件尾部 127.0.0.1 erp.acunetix.com127.0.0.1 erp.acunetix…

这款Chrome 插件,使浏览器页面快速滑动到最底部和最顶部,并且还能...

前言 前几日我在使用谷歌浏览器,也就是chrome的时候,浏览一个内容很长的页面,由于页面上的内容有前后关联,所以我必须不停地切换到上面和下面。这非常不方便。使我非常抓狂。后来,我灵机一动,去谷歌浏览器的插件市场上搜索了一下有没有快速回到底部和顶部的插件,结果,还…

数据结构_链表_单向循环链表 双向链表的初始化、插入、删除、修改、查询打印(基于C语言实现)

一、单向循环链表的原理与应用 思考:对于单向链表而言,想要遍历链表,则必须从链表的首结点开始进行遍历,请问有没有更简单的方案实现链表中的数据的增删改查? 回答:是有的,可以使用单向循环的链表进行设计,单向循环的链表的使用规则和普通的单向链表没有较大的区别,需…

『模拟赛』多校A层冲刺NOIP2024模拟赛19

『模拟赛记录』多校A层冲刺NOIP2024模拟赛19Rank byd CSP 之后就没场切过题😡😡😡A. 图书管理 签,又寄了。 这种题直接做复杂度算着不对的话大概率就是要拆分贡献了。赛时用对顶堆维护的中位数,卡常到极致在 \(n=10^4\) 时要跑 1.2s。 感觉卡常有用所以写下来:发现如果…