爆火后反转?「一夜干掉MLP」的KAN:其实我也是MLP
NLP从入门到放弃
共 6753字,需浏览 14分钟
·
2024-05-07 22:06
KAN 作者:我想传达的信息不是「KAN 很棒」,而是「尝试批判性地思考当前的架构,并寻求从根本上不同的替代方案,这些方案可以完成有趣、有用的事情。」
def f(x):
if x < 0:
return -2*x
if x < 1:
return -0.5*x
return 2*x - 2.5
X = torch.linspace(-2, 2, 100)
plt.plot(X, [f(x) for x in X])
plt.grid()
plt.plot(X, -2*X + torch.relu(X)*1.5 + torch.relu(X-1)*2.5)
plt.grid()
k = 3 # Grid size
inp_size = 5
out_size = 7
batch_size = 10
X = torch.randn(batch_size, inp_size) # Our input
linear = nn.Linear(inp_size*k, out_size) # Weights
repeated = X.unsqueeze(1).repeat(1,k,1)
shifts = torch.linspace(-1, 1, k).reshape(1,k,1)
shifted = repeated + shifts
intermediate = torch.cat([shifted[:,:1,:], torch.relu(shifted[:,1:,:])], dim=1).flatten(1)
outputs = linear(intermediate)
Expand + shift + ReLU
Linear
-
Expand + shift + ReLU (第 1 层从这里开始) -
Linear -
Expand + shift + ReLU (第 2 层从这里开始) -
Linear -
Expand + shift + ReLU (第 3 层从这里开始) -
Linear
-
Linear (第 1 层从这里开始) -
Expand + shift + ReLU -
Linear (第 2 层从这里开始) -
Expand + shift + ReLU
-
Linear (第 2 层从这里开始) -
Expand + shift + ReLU
-
KAN 的扩展速度比 MLP 更快。KAN 比参数较少的 MLP 具有更好的准确性。 -
KAN 可以直观地可视化。KAN 提供了 MLP 无法提供的可解释性和交互性。我们可以使用 KAN 潜在地发现新的科学定律。
作为该论文的作者之一,我想说几句。KAN 受到的关注令人惊叹,而这种讨论正是将新技术推向极限、找出哪些可行或不可行所需要的。
我想我应该分享一些关于动机的背景资料。我们实现 KAN 的主要想法源于我们正在寻找可解释的人工智能模型,这种模型可以「学习」物理学家发现自然规律的洞察力。因此,正如其他人所意识到的那样,我们完全专注于这一目标,因为传统的黑箱模型无法提供对科学基础发现至关重要的见解。然后,我们通过与物理学和数学相关的例子表明,KAN 在可解释性方面大大优于传统方法。我们当然希望,KAN 的实用性将远远超出我们最初的动机。
最近我被问到的最常见的问题是 KAN 是否会成为下一代 LLM。我对此没有很清楚的判断。
KAN 专为关心高精度和可解释性的应用程序而设计。我们确实关心 LLM 的可解释性,但可解释性对于 LLM 和科学来说可能意味着截然不同的事情。我们关心 LLM 的高精度吗?缩放定律似乎意味着如此,但可能精度不太高。此外,对于 LLM 和科学来说,准确性也可能意味着不同的事情。
我欢迎人们批评 KAN,实践是检验真理的唯一标准。很多事情我们事先并不知道,直到它们经过真正的尝试并被证明是成功还是失败。尽管我愿意看到 KAN 的成功,但我同样对 KAN 的失败感到好奇。
KAN 和 MLP 不能相互替代,它们在某些情况下各有优势,在某些情况下各有局限性。我会对包含两者的理论框架感兴趣,甚至可以提出新的替代方案(物理学家喜欢统一理论,抱歉)。
评论