知乎热榜 ( ) • 2024-05-03 01:11
233的回答

主要是炒作。

KAN本质上就是向量值激活函数,把1个实数映射成1+m个实数,m是B-spline基函数B_i的个数。

从理论上讲KAN是把权重矩阵中的元素从实数(考虑乘法,也可以看作实数到实数的映射,把x映到wx)推广为实数到实数的映射。


但实际上这个映射的参数化方式是w(σ(x)+c_i*B_i(x)),其中σ是SiLU,所以也可以看作先把x提升为σ(x)和B_i(x)拼成的1+m维向量(i取1到m),再与w和wc_i拼成的向量做内积。


也就是说KAN的一层相当于output=einsum('ijk,jk->i', weight, h(input)),其中input是形状为(d,)的输入特征,h(input)是形状为(d, 1+m)的激活值,weight是形状为(out_d, d, 1+m)的权重。

常规MLP的一层相当于output=einsum('ij,j->i', weight, σ(input))。


另见 @2prime 的推文