首页 >科技周边 >人工智能 >Kolmogorov-Arnold Networks(KANS):实施指南

Kolmogorov-Arnold Networks(KANS):实施指南

Lisa Kudrow
Lisa Kudrow原创
2025-03-02 09:55:11149浏览

> Kolmogorov-Arnold Networks(KANS):一种新型的神经网络体系结构,用于可解释的建模

最近的研究引入了Kolmogorov-Arnold网络(KANS),这是一种新型的神经网络体系结构,旨在增强科学建模中的可解释性。 与传统的“黑匣子”模型(如多层感知器(MLP))不同,堪萨斯州提供了更大的透明度,使其在物理等领域中特别有价值。

>

kans基于kolmogorov-arnold表示定理,该定理认为,任何连续的多变量函数都可以分解为简单,单变量的函数的总和。 虽然定理保证了这些单变量功能的存在,但堪萨斯州提供了一种学习它们的方法。 堪萨斯州学习这些更简单的组件,而不是直接近似复杂的功能,从而产生了灵活且高度可解释的模型,尤其是对于非线性关系。

堪萨斯州与MLP:一个关键的体系结构差异

> KAN和MLP之间的核心区别在于可学习激活功能的位置。 MLP利用神经元内的固定激活功能(Relu,Sigmoid等),而Kans将可学习的激活功能放在连接神经元的边缘。 原始实现使用B型,但是其他功能(例如Chebyshev多项式)也具有适应性。 浅层和深kans都将复杂函数分解为更简单的函数,如下所示:

Kolmogorov-Arnold Networks (KANs): A Guide With Implementation

来源:Liu等,2024

>这种体系结构差异使坎斯能够动态适应数据,而参数的准确性可能比MLP少。 可以修剪训练后未使用的边缘,进一步简化模型。 此外,可以提取学到的单变量功能,从而重建多变量函数,这是可解释性的关键特征。 Pykan

实施

>

图书馆促进了kans的实现。 安装很简单:

pykan

一个简单的kan可以定义如下:
pip install git+https://github.com/KindXiaoming/pykan.git
>

可以创建和可视化示例数据集:
from kan import *
model = KAN(width=[2,5,1]) # 2 inputs, 5 hidden neurons, 1 output
>

from kan.utils import create_dataset
f = lambda x: 3*x[:,[0]]**3+2*x[:,[0]]+4 + 2 * x[:,[0]] * x[:,[1]] ** 2 + 3 * x[:,[1]] ** 3
dataset = create_dataset(f, n_var=2)
model(dataset['train_input']);
model.plot()

Kolmogorov-Arnold Networks (KANs): A Guide With Implementation 使用

进行培训:

> .fit()

>训练后修剪进一步完善了该模型:
model.fit(dataset, steps=1000);

model = model.prune()
model.plot()

Kolmogorov-Arnold Networks (KANs): A Guide With Implementation >应用和注意事项

堪萨斯州在各种应用中表现出承诺:

  • 科学建模和数据拟合:它们有效建模复杂功能的能力使它们适合曲线拟合和其他科学任务。
  • 求解部分微分方程(PDES): kans有效地处理高维,非线性问题。> 符号回归:
  • 他们学习组成结构的能力有助于从数据中揭示数学表达。>
  • 优点包括改善可解释性和选择基础功能的灵活性。 但是,挑战包括培训期间的计算复杂性和对专业知识的需求。 人类合作
  • 堪萨斯州的独特方面是人类模型相互作用的潜力。 研究人员可以提取和分析学到的单变量功能,获得对数据关系的见解,并迭代地完善模型。 这种协作方法使KANS适应科学发现的适应性和潜在的变革性。
结论

kans代表了神经网络体系结构的重大进步,为传统模型提供了灵活且可解释的替代方案。 进一步的探索和发展有望建立KAN作为科学建模及其他地区的强大工具。

以上是Kolmogorov-Arnold Networks(KANS):实施指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn