AI 见闻
精选· 重要性 4/5

基于Kolmogorov-Arnold网络的FPGA超快机器学习

Hacker News (AI)··ag2718·约 7 分钟阅读
Hacker News 275
中文导读

本文介绍如何利用Kolmogorov-Arnold网络(KAN)在FPGA上实现超低延迟推理和在线学习,通过将KAN与查找表神经网络结合,实现高效硬件加速。

通过Kolmogorov-Arnold网络在FPGA上进行超快机器学习这篇文章是我硕士论文的高级解释,该论文涉及使用Kolmogorov-Arnold网络(KAN)架构设计超快推理和在线学习的硬件架构。

我假设你熟悉标准机器学习概念,并对硬件和数字电路有一定了解;后者可阅读我之前的帖子。请阅读下面两篇论文以获取更多信息,特别是关于基准测试和显著结果的细节。[FPGA 2026最佳论文]Duc Hoang*、Aarush Gupta* 和 Philip C. Harris。

“KANELÉ:用于高效基于LUT评估的Kolmogorov-Arnold网络。”2026年ACM/SIGDA现场可编程门阵列国际研讨会论文集。ACM,2026年。

https://dx.doi.org/10.1145/3748173.3779202 [ICML 2026]Duc Hoang*、Aarush Gupta* 和 Philip Harris。

“通过Kolmogorov-Arnold网络中的样条局部性实现FPGA上的超快在线学习。”arXiv预印本arXiv:2602.02056,2026年。

https://arxiv.org/abs/2602.02056 *同等贡献在FPGA上进行机器学习的理由大多数现代机器学习工作负载,无论是训练还是推理,都运行在图形处理单元(GPU)上。通过支持高度并行执行模型的硬件架构,GPU可以以极高的吞吐量对大量数据执行简单操作。

这使得它们非常适合涉及大型架构或批处理式训练和推理的机器学习问题。然而,复杂的GPU架构无法满足需要超低延迟(例如亚微秒延迟)和高硬件效率的应用需求。处理器(如CPU和GPU)因调度和优化指令、动态访问内存等而产生巨大开销。

对于具有超低延迟(约纳秒级)和效率要求的极端专业化工作负载,定制硬件加速器更为合适。现场可编程门阵列(FPGA)是一种可重新配置的数字逻辑器件,非常适合这种定制硬件加速风格。FPGA包含查找表(LUT),它通过枚举每个二进制输入组合的输出值来表示数字功能;

触发器(FF)用于存储状态;以及其他存储器和计算原语。这些组件及其之间的连接被重新配置以设计自定义数字电路,从而允许低级别硬件架构和算法协同设计,实现超快机器学习。重要的是,神经网络直接实现为数字逻辑,而不是在处理器上顺序执行的指令。

背景定点量化FPGA和其他数字器件从根本上基于位而不是连续值操作。

然而,我们通常认为神经网络中的算术运算(如×、+)是在实数ℝ上进行的。因此,我们需要将实数编码为位串(位序列),这个过程称为量化。加法和乘法等运算随后变成二进制函数。实现此目标的一种方法是定点量化。

定点量化以2为基数表示数字,其中一些位(小数位)位于小数点之后。举例来说,如果我们总共使用8位,小数点后有4个小数位,则可以表示从(-2^7)/2^4 = -8到(2^7 - 1)/2^4 = 7.9375的2^8个值,以1/2^4 = 0.0625的增量均匀间隔。

这里我们假设可表示的值域关于零对称。在定点量化方案中,我们只能表示某个固定范围内的离散值集合,这会在试图表示实值时产生近似误差。资源高效机器学习的一个重点是尽可能减小这种近似误差(即量化误差),以实现稳定的训练和推理。

查找表神经网络(LUT-NN)FPGA主要通过查找表(LUT)实现数字逻辑,查找表是通过存储每个二进制输入组合的输出来表示任意二进制函数的小组件。

例如,AND: {0,1}^2 → {0,1} 可以用查找表表示。因此,将这些表示为查找表的二进制函数作为神经网络的核心原语进行学习是有意义的:这样的网络称为查找表神经网络(LUT-NN)。然而,通过梯度下降或类似方法学习查找表是困难的。

为解决此问题,回想我们可以通过梯度下降学习实值函数 f: ℝ → ℝ。如果我们使用 b_i 个输入位和 b_o 个输出位进行定点量化,f 就变成二进制函数 f_Q: {0,1}^{b_i} → {0,1}^{b_o}。

然后我们可以学习连续的 f 并进行量化,得到所需的查找表!为了将 f 转换为 LUT,我们将函数定义域和值域离散化为 N_i = 2^{b_i} 和 N_o = 2^{b_o} 个值。

f_Q 的查找表为每个输入值 I ∈ {I_0, I_1, ..., I_{N_i-1}} 存储对应的输出。

上面的示例函数 f,其中 q_{l-1} 和 q_l 表示输入和输出的量化,产生一个二进制函数 f_Q,其 LUT 如下:我们还可以扩展此方法,将多元函数表示为查找表,其中 f_m:

ℝ^{d_i} → ℝ^{d_o} 将变成具有 d_i b_i 个输入位和 d_o b_o 个输出位的二进制函数。在这个查找表中,我们为 2^{d_i b_i} 种可能的输入组合各存储一个大小为 d_o b_o 的条目。

对于任何合理的 d_i,这显然是不切实际的。因此,基于LUT的网络将较小的查找表与算术运算相结合,以实现具有表现力、资源高效且易于训练的架构。

Kolmogorov-Arnold网络(KAN)KAN用可学习的激活函数替换了MLP(多层感知器)架构中的可学习权重和固定激活函数。在这项工作中,我们证明了KAN是一种用于高效、有表现力的LUT-NN的自然架构。

在KAN层中,每条边携带一个可学习的单变量函数,而不是标量权重。对于具有 n_in 个输入和 n_out 个输出的KAN层,第 q 个输出的激活为:y_q = Σ_{p=1}^{n_in} φ_{q,p}(x_p)其中 φ_{q,p}: ℝ → ℝ 是学习到的边激活。

与使用固定 σ 的MLP(y_q = σ(Σ w_{q,p} x_p + b_q))相比,KAN将非线性放在边函数 {φ_{q,p}} 中,并将节点操作保持为简单的求和。下一个问题是如何学习KAN激活 {φ_{q,p}}。

为此,我们将它们参数化为某些函数基的线性组合:φ_{q,p}(x) = Σ_{i=1}^n c_{q,p,i} B_i(x)这使得我们可以将系数 c_{q,p,i} 视为梯度下降的可训练参数。

最初的KAN论文使用B样条,它们形成光滑且局部的多项式基,即对于任何给定输入,只有基函数的一个子集是非零的。此外,B样条以及因此的激活 {φ_{q,p}} 定义在一个小的有限域上(例如 [-1,1]),这一点很重要。

术语:B样条指的是基函数 {B_i},而激活指的是学习到的 φ_{q,p}(x) = Σ c_{q,p,i} B_i(x)。虽然KAN架构的完整行为尚未被充分探索,但它在缩放定律、参数效率和可解释性方面提供了对MLP的潜在改进。

对于超快机器学习,前两个特征尤其相关。KAN作为可训练的LUT-NN方法我们第一篇论文的核心思想是使用KAN作为原则性的方法,将神经网络转换为高效的LUT-NN。

原文出处
Ultrafast machine learning on FPGAs via Kolmogorov-Arnold Networks

本文为机器翻译辅以 AI 润色,仅供参考。原始事实以原文为准。

相关阅读