用大模型理解爆火的KAN网络

上个月五一假期的时候,KAN突然成为了热门话题。虽然最初我并没有计划弄懂它,但在老板的要求下,我还是探索了一下。

一、KAN是什么?

Kolmogorov-Arnold 定理是数学领域的一个里程碑,它揭示了多元函数能够通过一组更简单的函数来近似表示的原理。 在神经网络的研究领域,来自 MIT 的杰出研究者 Ziming Liu 将这一定理巧妙地融入,提出了创新的 KANs(Kolmogorov-Arnold Networks)概念。(GitHub地址:https://github.com/KindXiaoming/pykan)。

有兴趣挑战理解这个数学定理的朋友可以看一下这个讲解视频 https://www.youtube.com/watch?v=CkCijaXqAOM 博主徒手画 splines 曲线,并逐步阐释定理,非常引人入胜。

下面是我的理解哦!

如果你知道MLP的话,那可能也会对KAN刮目相看。

图片

上面这个图就说明了为什么KAN很厉害,因为它和MLP是对偶的。

在深度学习中,MLP(多层感知器)是一种基础的神经网络结构,它由多个层组成,每层包含多个节点,节点之间通过边相连。**激活函数位于节点上,**来引入非线性,从而使网络能够学习复杂的函数映射。

KAN沿用了MLP的网络结构,它也由多个层组成,每层包含多个节点,节点之间通过边相连。激活函数位于边上。

这个对偶性让我想起了电里面的**电-磁对偶性。**在经典电磁学中,电场和磁场可以通过麦克斯韦方程组相互关联。在某些情况下,电场和磁场的角色可以互换,而物理定律保持不变。这种对偶性通常会解释定律的深层次结构和统一性。当然物理和AI两个领域不一样,有可能不能做这样的对比。

二、KAN能做什么?

1. KAN能够拟合数学公式。MLP也可以,但是KAN能用更少的参数拟合,准确性也更好。

下图是KAN和MLP拟合同一个表达式的对比。以左边的图为例,可以看出,KANs在参数数量较少的情况下,其准确度和MLPs相比有更快的增长趋势。

图片

2. 强大的可解释性

这是一个很令人激动的地方。在KAN里面,你可以看到线条的形状并且自主选择和锁定激活函数的公式。

首先,我们需要理解激活函数的作用。激活函数是神经网络中的关键组件,它们引入了非线性,使得网络能够学习和模拟复杂的函数映射。

KAN定义了一系列可以选择的激活函数,总共有24种。这些激活函数包括但不限于平方、立方、正弦(sine)、余弦(cosine)、指数(exponential)等函数。

接下来用一个例子来说明它强大的可解释性。

假设现在有如下表达式生成的数据。(在训练的时候并不知道这个表达式)

我们定义一个[2,5,1]的网络。2、5、1表示的是节点。前面说过,activation function是定义在边上的,也就是说节点与节点之间会有activation function。

神奇的是这些activation function是可以学习的——它们会越来越像他们原本的样子。

下面是不同阶段网络结构图。

Figure 1 是初始化,所有激活函数都长一个样子。

Figure2 是网络训练20步之后的结果。可以看到激活函数已经出现正弦函数和平方的线条了。

Figure3 是进行剪枝,去掉不重要的节点和激活函数。

Figure4 是最后的样子,右边三个激活函数基本上符合咱们数据的生成函数。

图片

调参也是一门技术活。同样的例子在官网给出的结果更加准确,因为调参的时候做的更精细。下图是官网的结果,exactly由一个平方函数、一个正弦函数和一个指数函数结合。

图片

KAN还有一些其他的功能,例如能解微分方程、在学习的过程中有记忆力等等。这个先不谈,后面用到了再说吧。

三、 大模型帮你理解KAN网络

如果看前面提到的论文和视频没看懂的话,没有关系,咱不是还有大模型嘛。

注:大模型的部分解释不准确,但是在大体上可以帮助大家理解。

来吧,开整!

请用生动的语言给一个20岁的大朋友解释splines以及Kolmogorov-Arnold

好的,想象一下你是一位艺术家,手里拿着一支画笔,准备在画布上绘制一幅美丽的风景画。但是,你不是简单地画直线,而是要画出一条流畅、优雅的曲线,来描绘远处的山峦或者蜿蜒的河流。在数学和计算机图形学中,我们有一套特殊的工具来帮助我们绘制这样的曲线,这就是所谓的“splines”。

Splines是一种数学曲线,它们非常平滑,没有尖锐的角或突然的转折。你可以把它们想象成一种非常听话的画笔,无论你怎么移动,它都能画出一条完美的曲线。在计算机图形设计中,splines被用来创建复杂的形状和动画路径,使它们看起来非常自然和流畅。

现在,让我们来谈谈Kolmogorov-Arnold。这听起来可能有点复杂,但它实际上是一个关于如何测量和比较不同曲线复杂性的数学概念。想象一下,你面前有两条曲线,一条是简单的圆弧,另一条是复杂的螺旋形。虽然它们的长度可能相同,但它们的复杂性和形状却大不相同。

Kolmogorov-Arnold复杂性(也称为K-复杂性)是衡量一个对象(比如曲线)可以用多简单的规则或算法来描述的度量。就像你可能会问:“我需要多少步骤来画出这条曲线?”或者“这条曲线可以用多简单的数学公式来表示?”K-复杂性越低,意味着曲线可以用更简单的规则来描述。

所以,splines就像是你手中的画笔,帮助你在数学和计算机图形的世界里绘制出平滑而优雅的曲线。而Kolmogorov-Arnold就像是你用来评价这些曲线复杂性的标尺,它帮助你理解这些曲线背后的数学规律和结构。通过这些工具,我们不仅能够创造出美丽的视觉效果,还能够更深入地理解数学和自然界中的形状和模式。

如果还没有理解,放出小学生解释版本吧~

请用生动的语言给一个10岁的小朋友解释splines以及Kolmogorov-Arnold

好的,亲爱的小朋友,让我们一起来想象一些好玩的东西想象一下,你有一个长长的橡皮筋,你可以用它来连接两个点,对吧?现在,如果你想要让这个橡皮筋更有趣一些,你可能会让它弯曲,或者扭来扭去的。在数学里,我们有一个特别的名字来称呼这种弯曲的橡皮筋,叫做“splines”。

想象一下,你把橡皮筋的两端固定在两个点上,然后你想要橡皮筋尽可能平滑地弯曲,就像你在画画时用铅笔画一条优美的曲线一样。这就是splines做的事情,它们是数学家用来模拟平滑曲线的一种工具。

现在,让我们来谈谈Kolmogorov-Arnold。这个名字听起来可能有点复杂,但它其实是一个关于如何测量和比较不同曲线弯曲程度的概念。你可以把它想象成一种特殊的尺子,用来测量你的橡皮筋弯曲得有多厉害。

Kolmogorov-Arnold告诉我们,即使两条曲线看起来弯曲得差不多,它们的弯曲程度也可能完全不同。这就像两个朋友,他们可能看起来一样高,但实际上他们的身高可能相差几厘米。Kolmogorov-Arnold就是帮助我们了解这些微小差别的工具。

所以,splines就像是橡皮筋,用来创造平滑的曲线,而Kolmogorov-Arnold就像是一把尺子,用来测量这些曲线的弯曲程度。数学家们用这些工具来解决很多复杂的问题,就像你用橡皮筋和尺子来创造和测量你的艺术作品一样!

太好了,终于理解了吧!

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

  • 29
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KAN(Knowledge-Aware Neural Network)神经网络是一种结合了领域知识和深度学习技术的模型,它旨在提高模型的泛化能力和解释性。在KAN中,领域知识被编码为结构化的知识图谱,然后与传统的神经网络模型结合起来,通常是在模型的输入、隐藏层或输出阶段。 KAN网络的基础包括以下几个关键组件: 1. **知识嵌入**:将知识图谱中的实体和关系转化为可训练的向量表示,这些向量反映了实体之间的关系模式。 2. **融合模块**:设计用于融合领域知识和原始输入特征的模块,如注意力机制或专门的融合层,使模型能够动态地利用知识。 3. **知识注入**:将知识图谱信息集成到神经网络的计算流程中,这可能通过与输入数据相加、作为条件输入,或者作为额外的损失函数等方法实现。 4. **训练策略**:通常使用端到端的学习方法,同时优化模型的预测性能和对知识图谱的遵守程度,以保持知识的完整性。 下面是KAN神经网络的一个简单示例代码(Python,使用PyTorch框架): ```python import torch from torch_geometric.nn import KnowledgeGraphEmbedding class KANModel(torch.nn.Module): def __init__(self, num_nodes, embedding_dim, knowledge_graph): super(KANModel, self).__init__() self.kg_embedding = KnowledgeGraphEmbedding(knowledge_graph, embedding_dim) self.main_network = torch.nn.Linear(embedding_dim + num_nodes, out_features) # 假设out_features是你想要的输出维度 def forward(self, x, edge_index, knowledge_indices): # x: 输入节点特征 # edge_index: 边的关系矩阵 # knowledge_indices: 知识图谱中的实体对应于输入节点的索引 node_embeddings = self.kg_embedding(knowledge_indices) # 获取知识图谱的嵌入 combined_features = torch.cat([x, node_embeddings], dim=1) # 混合输入特征和知识嵌入 output = self.main_network(combined_features) # 通过主网络计算输出 return output # 使用示例 model = KANModel(num_nodes, embedding_dim, knowledge_graph) inputs = (node_features, edge_index, knowledge_indices) output = model(inputs) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值