GitHub_Trending/aw/awesome-kan代码解析:从BSpline到Fourier的激活函数进化史
你是否在神经网络模型中遇到过激活函数选择难题?是否想知道如何通过改进激活函数提升模型性能?本文将深入解析GitHub_Trending/aw/awesome-kan项目中激活函数的进化历程,从B样条(B-spline)到傅里叶(Fourier)变换,带你了解KAN(Kolmogorov-Arnold Network)网络如何通过激活函数的创新实现性能突破。读完本文,你将掌握KAN激活函数的发展脉络、各类激活函数的优缺点及应用场景,并学会如何选择适合自己项目的KAN变体。
KAN激活函数的起源:B样条的突破
KAN网络的核心创新在于将传统神经网络中的固定激活函数替换为可学习的函数。在最初的KAN模型中,研究人员采用了B样条作为激活函数的基础。B样条是一种由多项式分段定义的曲线,具有良好的光滑性和局部支撑性,非常适合作为可学习的激活函数。
KAN: Kolmogorov-Arnold Networks论文中指出,KANs没有线性权重,每个权重参数都被替换为一个单变量函数,该函数被参数化为样条。这种看似简单的改变使KANs在准确性和可解释性方面都优于MLPs。在准确性方面,更小的KANs可以在数据拟合和PDE求解中达到与更大的MLPs相当或更好的准确性。理论和实验表明,KANs比MLPs具有更快的神经缩放定律。
B样条激活函数的优势在于它能够通过调整样条的控制点来灵活地拟合各种函数形状。与传统的ReLU等固定激活函数相比,B样条激活函数可以自适应地调整其形状以适应不同的数据分布,从而提高模型的表达能力。
然而,B样条激活函数也存在一些局限性。首先,B样条的计算复杂度相对较高,特别是在高维情况下,这可能会影响模型的训练和推理速度。其次,B样条的参数数量较多,需要更多的训练数据来避免过拟合。
B样条的改进与扩展
为了克服B样条激活函数的局限性,研究人员提出了多种改进方案。其中,BSRBF-KAN将B样条与径向基函数(RBF)相结合,旨在充分利用两种函数的优势。
BSRBF-KAN: A combination of B-splines and Radial Basic Functions in Kolmogorov-Arnold Networks的代码实现可以在BSRBF_KAN中找到。该方法通过将B样条和RBF结合起来,不仅保留了B样条的局部拟合能力,还引入了RBF的全局特性,从而在一些任务上取得了更好的性能。
此外,还有一些研究致力于优化B样条的计算效率。例如,MatrixKAN通过矩阵表示和运算来并行化B样条计算,显著提高了使用高次B样条的模型的有效计算时间。MatrixKAN的代码可以在MatrixKAN中查看。
Fourier变换的引入:KAF的诞生
尽管B样条激活函数在KAN网络中取得了成功,但研究人员并不满足于此。他们开始探索将其他数学工具引入KAN的激活函数设计中,其中最具代表性的就是傅里叶变换。
Kolmogorov-Arnold Fourier Networks(KAF)将Kolmogorov-Arnold表示定理与傅里叶级数相结合,是KAN的一种扩展。在KAF中,激活函数被替换为傅里叶级数和传统激活函数的组合。这种方法在简单的CV、NLP、音频和ML任务上进行了评估,并在ViT、GPT2和PDE求解等各种任务上进行了实验,在大多数任务上都取得了良好的性能。KAF的代码实现可以在KAF中找到。
傅里叶变换的引入为KAN带来了新的优势。首先,傅里叶级数具有良好的全局表达能力,能够捕捉数据中的周期性和全局趋势。其次,傅里叶变换的计算可以通过快速傅里叶变换(FFT)来加速,提高了模型的计算效率。此外,傅里叶基函数是正交的,这有助于缓解神经网络训练中的梯度消失和爆炸问题。
FourierKAN的应用与发展
FourierKAN不仅在理论上具有优势,还在多个实际应用中得到了验证。例如,FourierKAN outperforms MLP on Text Classification Head Fine-tuning的研究表明,FourierKAN在文本分类头微调任务上表现优于MLP。其代码实现可以在FR-KAN-Text-Classification中找到。
另外,FourierKAN-GCF: Fourier Kolmogorov-Arnold Network--An Effective and Efficient Feature Transformation for Graph Collaborative Filtering将FourierKAN应用于图协同过滤任务,提出了一种有效且高效的特征变换方法。该方法的代码可以在FKAN-GCF中查看。
还有研究将Fourier变换与隐式神经表示相结合,如Implicit Neural Representations with Fourier Kolmogorov-Arnold Networks,其代码实现位于FKAN。这种方法在图像重建、三维形状表示等任务中具有潜在的应用价值。
激活函数的性能比较与选择
为了帮助读者更好地选择适合自己任务的KAN激活函数,我们对B样条和Fourier激活函数的性能进行了比较。
从准确性方面来看,KAN or MLP: A Fairer Comparison的研究表明,在相同的参数数量或FLOPs下,KAN仅在符号公式表示方面优于MLP,但在机器学习、计算机视觉、NLP和音频处理等其他任务上仍然不如MLP。然而,该研究也发现KAN在符号公式表示方面的优势主要源于其B样条激活函数。而KAF等引入Fourier变换的方法则在更多任务上取得了与MLP相当甚至更好的性能。
从计算效率方面来看,FourierKAN通过FFT可以实现快速计算,而MatrixKAN等对B样条的优化也提高了其计算速度。因此,在实际应用中需要根据任务的需求和计算资源来选择合适的激活函数。
对于符号公式表示、局部特征拟合等任务,B样条激活函数可能是一个不错的选择;而对于需要捕捉全局趋势、周期性特征的任务,Fourier激活函数可能更具优势。此外,如果计算资源有限,可能需要优先考虑计算效率更高的激活函数变体。
总结与展望
KAN网络的激活函数从B样条到Fourier变换的进化,反映了研究人员对提高模型性能和扩展应用领域的不断探索。B样条激活函数为KAN奠定了基础,而Fourier变换的引入则进一步拓展了KAN的能力。
未来,KAN激活函数的发展可能会朝着以下几个方向进行:一是结合更多的数学工具和函数,如小波变换、神经网络等,以进一步提高模型的表达能力和适应性;二是继续优化激活函数的计算效率,以满足大规模数据和实时应用的需求;三是深入研究激活函数的理论基础,为KAN的设计和优化提供更坚实的理论支持。
通过对GitHub_Trending/aw/awesome-kan项目中激活函数进化史的解析,我们可以看到KAN网络在激活函数设计方面的创新和潜力。希望本文能够为读者在KAN网络的研究和应用中提供一些有益的参考。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



