> Kolmogorov-Arnold Networks(KANS):一种新型的神经网络体系结构,用于可解释的建模
最近的研究引入了Kolmogorov-Arnold网络(KANS),这是一种新型的神经网络体系结构,旨在增强科学建模中的可解释性。 与传统的“黑匣子”模型(如多层感知器(MLP))不同,堪萨斯州提供了更大的透明度,使其在物理等领域中特别有价值。
>kans基于kolmogorov-arnold表示定理,该定理认为,任何连续的多变量函数都可以分解为简单,单变量的函数的总和。 虽然定理保证了这些单变量功能的存在,但堪萨斯州提供了一种学习它们的方法。 堪萨斯州学习这些更简单的组件,而不是直接近似复杂的功能,从而产生了灵活且高度可解释的模型,尤其是对于非线性关系。
堪萨斯州与MLP:一个关键的体系结构差异> KAN和MLP之间的核心区别在于可学习激活功能的位置。 MLP利用神经元内的固定激活功能(Relu,Sigmoid等),而Kans将可学习的激活功能放在连接神经元的边缘。 原始实现使用B型,但是其他功能(例如Chebyshev多项式)也具有适应性。 浅层和深kans都将复杂函数分解为更简单的函数,如下所示:
>这种体系结构差异使坎斯能够动态适应数据,而参数的准确性可能比MLP少。 可以修剪训练后未使用的边缘,进一步简化模型。 此外,可以提取学到的单变量功能,从而重建多变量函数,这是可解释性的关键特征。 Pykan
实施
> 图书馆促进了kans的实现。 安装很简单:
pykan
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()
使用
>
.fit()
model.fit(dataset, steps=1000);
model = model.prune() model.plot()
>应用和注意事项
堪萨斯州在各种应用中表现出承诺:
kans代表了神经网络体系结构的重大进步,为传统模型提供了灵活且可解释的替代方案。 进一步的探索和发展有望建立KAN作为科学建模及其他地区的强大工具。
以上是Kolmogorov-Arnold Networks(KANS):实施指南的详细内容。更多信息请关注PHP中文网其他相关文章!