KAN&MLP
MLP
多层感知器(MLP)在深度学习和科学任务中的一些主要问题包括:
固定的激活函数:MLP的激活函数通常是固定的,应用在网络节点(神经元)上,这限制了模型的表达能力。相较之下,KAN允许在边缘(权重)上使用可学习的激活函数,使模型更具适应性和灵活性。
维度诅咒(Curse of Dimensionality):MLP在高维数据中难以捕捉数据的合成结构,因此在处理高维函数时需要大量参数。这种增长会导致计算资源的浪费和效率的下降,尤其是在维度较高的情况下。而KAN通过样条和可学习的激活函数能够有效缓解这一问题。
可解释性不足:MLP模型中的权重和激活函数通常较难直接解释,因此难以直观理解模型是如何处理输入数据的。这对科学发现和符号回归等应用中的需求不匹配,而KAN通过结构设计在可视化和可解释性上更具优势。
扩展能力受限:MLP模型的扩展通常依赖于增加神经元的数量或层数来提高表现,但这种“神经缩放法则”扩展速度较慢,且训练成本较高。而KAN通过调整样条网格的细粒度(即“网格扩展”),可以逐步提升模型精度而无需重新训练。
KAN
KAN(Kolmogorov-Arnold Networks)相较于传统的多层感知器(MLP)具有以下优势:
精确性:在小规模的AI和科学任务中,KAN能够比MLP达到更高的准确性。KAN能够在较小规模的情况下完成相似或更高的准确度,因为它们能够更好地拟合低维函数,并在有合成结构的数据中击败维度诅咒,从而达到更好的缩放法则。
可解释性:KAN网络的结构使其更具直观性,能够便于科学家进行可视化和交互,支持科学发现中的符号回归和法则重现等任务。
扩展性:KAN通过其“网格扩展”方法,可以在不从头训练的情况下,通过精细化其样条网格来提升准确性。
为了进一步提升KAN的性能,文档中提出了一些方法:
网格扩展(Grid Extension):可以通过增加样条网格的精度来提升KAN的准确性。
简化和剪枝(Simplification and Pruning):引入正则化和稀疏化技术,帮助KAN自动发现适配数据结构的最小网络结构,使得KAN网络更为简洁和易于解释。
这些方法不仅使KAN在高维任务中保持较好的表现,还提高了模型的可解释性和用户交互性,使得KAN成为MLP的一种有前途的替代方案
网格扩展
设置初始网格:首先,在一个固定的区间上(例如[a, b])定义一个粗粒度的网格,比如将区间分为少量的区间点,形成初始的粗网格。这些初始网格点用来生成B样条的基函数,从而表达目标函数。
训练粗粒度网格模型:使用粗粒度的网格进行初始训练,通过LBFGS等优化方法调整网格中的参数,得到一个基础的近似模型。
扩展网格:在初始训练完成后,将粗粒度网格扩展为更精细的网格。例如,将网格的分割数从3增加到5、10、20等,逐步增加样条的分割数量,使得模型能更精确地拟合目标函数。这种扩展可以通过在原始区间内添加更多的网格点实现。
最小二乘法优化:将新网格的样条参数初始化为旧网格的参数,通过最小二乘优化算法来调整新的样条系数,使其在新网格上尽量贴近原始粗网格的拟合结果。这样无需重新训练整个模型,而是通过局部调整来提高精度。
循环更新:重复上述步骤,不断增加网格的精细度,直到达到所需的精度。每次网格扩展后,模型的训练误差会先降低,然后逐渐稳定。适当的精细度可以在减少偏差的同时避免过拟合