40个回答

如何评价Kolmogorov-Arnold Networks,MLP真的被干掉了吗?

KinGeorge
14个点赞 👍

谢邀。

Kolmogorov-Arnold Networks (KANs) 基于柯尔莫哥洛夫-阿诺德定理,相比传统的MLP(多层感知机),KANs在多个领域表现出了更优秀的性能,特别是在函数逼近和偏微分方程求解等任务中。


但是,说MLP已经被“干掉”可能为时尚早


MLP由于其简单性和灵活性,在很多应用中仍然非常有效且不可替代。

手把手升级ChatGPT4.0 Turbo详细步骤教程(2024年4月)

而KANs虽然在理论与实验上都显示了巨大潜力,其在实际应用中的广泛性和效率,特别是在神经网络模型中取代MLP层的可能性,还有待观察和深入研究。

KAN具体内容参考之前发布的文章:

关键的挑战包括对KANs参数的优化问题,以及在当前硬件上的计算效率问题。


另外,从技术发展的角度看,每一种新技术的出现不仅仅是为了取代旧有技术,更重要的是为了扩展我们解决问题的能力。


因此,KAN的出现不应该被视为对MLP的简单取代,而是应该看作是机器学习领域中的一个补充和进化,提供了更多的可能性和选择。


项目地址:Welcome to Kolmogorov Arnold Network (KAN) documentation!


通过github安装

git clone https://github.com/KindXiaoming/pykan.git 
cd pykan 
pip install -e . 
# pip install -r requirements.txt # install requirements

通过 PyPI 安装

pip install pykan

开始使用 KAN

初始化KAN

from kan import * 
# create a KAN: 2D inputs, 1D output, and 5 hidden neurons. cubic spline (k=3), 5 grid intervals (grid=5). 
model = KAN(width=[2,5,1], grid=5, k=3, seed=0)

创建数据集

# create dataset f(x,y) = exp(sin(pi*x)+y^2) 
f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2) 
dataset = create_dataset(f, n_var=2) 
dataset['train_input'].shape, dataset['train_label'].shape


(torch.Size([1000, 2]), torch.Size([1000, 1]))

初始化时绘制 KAN

# plot KAN at initialization 
model(dataset['train_input']);
model.plot(beta=100)




推荐文章:

AI教母李飞飞首创业,瞄准“空间智能”! | 斯坦福AI教母首次创业,将学术休假两年,瞄准“空间智能”方向!!!


ChatGPT会记住每一位付费用户?!! | 近日,ChatGPT推出记忆功能,向所有Plus用户开放!!!

编辑于 2024-05-06 15:19・IP 属地山东
知乎用户
自由评论 (0)
分享
Copyright © 2022 GreatFire.org