基于卷积的深度学习模型量化后的进化微调

arXiv cs.LG 论文

摘要

本文提出了一种基于神经进化的微调方法,以提高量化深度学习模型的精度。研究表明,仅使用最近邻舍入是次优的,而在 VGG 和 ResNet 等架构上对权重进行进化变异可获得更好的结果。

arXiv:2605.05228v1 公告类型:新论文 摘要:在许多机器学习任务中,深度学习模型是最有效的模型。当将其应用于物联网(IoT)、移动设备、独立自主系统或实时系统时,主要缺点在于其复杂性和内存占用。因此,大量研究集中于深度学习架构的压缩技术。量化是最流行的技术之一。在大多数研究中,量化基于最近邻量化技术进行。本工作侧重于提高预训练且已量化模型的量化效率。该方法有望提高量化模型的最终精度。本工作的主要假设是,基于最近邻舍入的网络最终量化状态并不能保证达到最优精度。在本文展示的工作中,进化策略被用作一种优化方法。在每次迭代中,进化过程会改变少量权重的值,将其移位到不同的量化状态。研究结果表明,提出的进化算法在配合适当的算子和参数时,可以快速提高量化模型的精度。本文展示了在图像分类和检测任务中针对 VGG 和 ResNet 等流行架构的实验结果。此外,还对自编码器架构进行了模拟实验。
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/05/08 06:45

# 基于卷积的深度学习量化模型的进化微调

来源:https://arxiv.org/html/2605.05228

###### 摘要

深度学习模型在许多机器学习任务中是最高效的模型。在物联网、移动设备、独立自主系统或实时系统中使用它们的主要缺点是其复杂性和内存占用。因此,大量研究集中在深度学习架构的压缩技术上。其中一种最受欢迎的技术是量化。在大多数工作中,量化是基于最近邻量化技术进行的。这项工作致力于提高预训练和量化模型的量化效率。这种方法有可能提高量化模型的最终精度。本工作的主要假设是,基于最近邻舍入的网络最终量化状态并不能保证最佳精度。在展示的工作中,神经进化策略被用作优化方法。神经进化在每次迭代中改变一小部分权重的值。它将它们的值移位到不同的量化状态。研究表明,提出的神经进化结合适当的算子和参数集,可以快速提高量化模型的精度。结果展示了在图像分类和检测中流行的架构,如 VGG 和 ResNet。此外,还对自编码器架构进行了仿真。

关键词:深度学习 ⋅ 量化 ⋅ 神经进化 ⋅ 微调

## 1 引言

低位宽量化是一种使深度神经网络架构适应嵌入式系统并帮助降低其计算复杂性的过程。有许多方法可以在最小化精度下降的同时降低位精度[1 (https://arxiv.org/html/2605.05228#bib.bib1),2 (https://arxiv.org/html/2605.05228#bib.bib2),3 (https://arxiv.org/html/2605.05228#bib.bib3),4 (https://arxiv.org/html/2605.05228#bib.bib4),5 (https://arxiv.org/html/2605.05228#bib.bib5),6 (https://arxiv.org/html/2605.05228#bib.bib6),7 (https://arxiv.org/html/2605.05228#bib.bib7),8 (https://arxiv.org/html/2605.05228#bib.bib8),9 (https://arxiv.org/html/2605.05228#bib.bib9)]。在[10 (https://arxiv.org/html/2605.05228#bib.bib10),1 (https://arxiv.org/html/2605.05228#bib.bib1)]中,作者展示了量化如何通过减少深度学习模型的位宽格式来减少执行时间。这些技术中的许多基于复杂的优化算法,这些算法耗时且往往难以并行化。创建一种能够快速提高模型精度的快速且高效的量化方法是一项重大挑战。量化方法可以根据几个因素进行分类。第一个因素是执行阶段。它可以在训练过程中进行,也可以在训练之后进行。第二个因素是量化类型。它可以是线性量化或非线性量化。在本工作中,所提出的方法运行在线性量化模型上。所提出算法的输入是预训练且已量化的模型。该解决方案的主要假设是输入模型的量化是通过四舍五入到最近邻进行的。这是大多数量化算法使用的方法[1 (https://arxiv.org/html/2605.05228#bib.bib1),2 (https://arxiv.org/html/2605.05228#bib.bib2),11 (https://arxiv.org/html/2605.05228#bib.bib11),3 (https://arxiv.org/html/2605.05228#bib.bib3),9 (https://arxiv.org/html/2605.05228#bib.bib9)]。

在所展示的方法中,执行了一种新颖的微调方法。它以最小有效位(LSB)的倍数作为值来变异权重。每次迭代中只有一小比例权重发生变异。神经进化过程在每一层上分别运行。此外,该算法配备了测试模型层的敏感性分析。它从最不敏感的层到最敏感的层进行迭代。这一特性允许在达到用户定义的精度下降时停止过程。另一个具有类似输入假设的方法是在论文[12 (https://arxiv.org/html/2605.05228#bib.bib12)]中展示的算法。它也阐述了对最近邻的近似不能保证模型的最佳性能。这项工作的主要目标是创建一种可扩展且能够快速提高量化模型精度的方法。

## 2 相关工作

量化是压缩深度学习模型最有效技术之一[1 (https://arxiv.org/html/2605.05228#bib.bib1),2 (https://arxiv.org/html/2605.05228#bib.bib2)]。常见策略包括使用指定数量的位来表示整数和小数部分,从而量化单层中的所有系数[4 (https://arxiv.org/html/2605.05228#bib.bib4),3 (https://arxiv.org/html/2605.05228#bib.bib3)],这基于系数集的值范围。另一种策略是使用适当的缩放因子以整数表示系数和数据。文献中的许多量化方法采用线性[1 (https://arxiv.org/html/2605.05228#bib.bib1),2 (https://arxiv.org/html/2605.05228#bib.bib2),3 (https://arxiv.org/html/2605.05228#bib.bib3)]或非线性方法,包括聚类[5 (https://arxiv.org/html/2605.05228#bib.bib5)]。量化可以在模型训练期间进行[2 (https://arxiv.org/html/2605.05228#bib.bib2)],也可以应用于预训练模型[1 (https://arxiv.org/html/2605.05228#bib.bib1),5 (https://arxiv.org/html/2605.05228#bib.bib5)]。最近,已经设计了几种低位宽表示方法[9 (https://arxiv.org/html/2605.05228#bib.bib9),13 (https://arxiv.org/html/2605.05228#bib.bib13),14 (https://arxiv.org/html/2605.05228#bib.bib14),15 (https://arxiv.org/html/2605.05228#bib.bib15),6 (https://arxiv.org/html/2605.05228#bib.bib6)]。其中许多方法在没有显著精度下降的情况下无法运行。量化的一大已知优势在于,它促进了深度神经网络在算术位宽和内存空间有限的专用硬件加速器中的采用[16 (https://arxiv.org/html/2605.05228#bib.bib16),10 (https://arxiv.org/html/2605.05228#bib.bib10)]。

[17 (https://arxiv.org/html/2605.05228#bib.bib17)]中的作者表明,双层神经进化策略方案在某些特定任务(例如语言建模和图像分类)中可以优于人工设计的模型。在[18 (https://arxiv.org/html/2605.05228#bib.bib18)]中,提出了一种用于优化卷积自编码器架构和超参数的新颖神经进化方法。在[19 (https://arxiv.org/html/2605.05228#bib.bib19)]中,表明遗传算法可以进化出自编码器,其数据再现能力优于具有更多隐藏单元的手工创建自编码器。[20 (https://arxiv.org/html/2605.05228#bib.bib20)]中展示了基于共进化神经进化的多变量异常检测系统的首个方法。作者表明,所提出的基于神经进化的解决方案在知名基准测试中优于其他人工设计的模型。这些工作表明,神经进化可以成为深度学习架构探索中非常高效的方法。

微调是一种改善预训练模型精度的流行技术。最流行的技术是基于梯度的微调[21 (https://arxiv.org/html/2605.05228#bib.bib21)],[22 (https://arxiv.org/html/2605.05228#bib.bib22)]。非梯度方法较为罕见,但如[12 (https://arxiv.org/html/2605.05228#bib.bib12)]所示,可以带来显著改进。在[12 (https://arxiv.org/html/2605.05228#bib.bib12)]中,作者给出了与本文相同的输入假设。[12 (https://arxiv.org/html/2605.05228#bib.bib12)]中的作者试图找到模型的近优状态,从而获得未四舍五入到最近邻的量化权重量值。

在展示的工作中,提出了一种新颖的方法。基于神经进化的微调用于提高预训练模型的精度。

## 3 量化

在通过剪枝过程进行网络蒸馏后,量化可以作为降低模型复杂性的下一步进行。量化是将值从连续集合或更密集的域约束到相对离散集合的过程。可以定义从浮点数据 $x \in \mathcal{S}$ 到定点 $q \in \mathcal{Q}$ 的一般映射,使用函数 $f_{\mathcal{Q}}: \mathcal{S} \rightarrow \mathcal{Q}$ 如下(假设符号表示):

$$
q = f_{\mathcal{Q}}(x) = \mu + \sigma \cdot \text{round}(\sigma^{-1} \cdot (x - \mu))
$$ (1)

在我们的案例中,$\mu=0$ 且 $\sigma=2^{-\text{frac\_bits}}$,其中:

$$
\text{int\_bits} = \text{ceil}(\log_2(\max_{x \in \mathcal{S}} \|x\|))
$$ (2)

并且

$$
\text{frac\_bits} = \text{total\_bits} - \text{int\_bits} - 1.
$$ (3)

层中的 MAC(乘累加)操作数等于 $P_i \cdot C_i \cdot D_i \cdot H_i \cdot W_i$,其中 $P_i$ 是输出特征图中的神经元数量,$C_i$ 和 $D_i$ 是输入和输出通道的数量,$W_i$ 和 $H_i$ 是滤波器的宽度和高度。单层的内存占用为 $C_i \cdot D_i \cdot H_i \cdot W_i$。量化模型减少了 MAC 操作的数量。内存占用的情况也是如此。量化进一步降低了复杂度。数据位宽的降低减少了运行乘法操作所需的周期数。在 8 位量化的情况下(权重和激活均为 8 位格式),基准浮点配置的 MAC 操作数减少了 $1/9$。如果权重进一步减少到 4 位,全 8 位配置中的周期数减少超过 $1/2$。对于 8 位权重和 16 位半精度激活,减少比例为 $2/9$。

## 4 神经进化微调

神经进化是一种基于遗传方法的优化算法,有助于找到更优的神经架构。在本工作中,神经进化策略被适应用于微调量化权重,以提高模型的精度。优化过程在预训练的量化模型上运行。预训练模型使用具有最近邻舍入的线性量化进行量化。整个过程分为两个阶段。第一阶段是敏感性分析,第二阶段是通过使用神经进化方法微调量化层。

### 4.1 敏感性分析

敏感性分析的目标是建立最敏感层的排名列表。整个过程显示在算法 1 中。在分析开始时,创建一个空列表(第 1 行)。该列表将用于存储通过量化特定层测量的精度。然后,在每次迭代中,单个层被量化为低位宽格式(第 2-8 行的循环)。首先,创建原始模型的副本(第 3 行)。然后,层 $l$ 被量化(第 4 行)。$\theta_l$ 权重张量被转换为低位宽格式 $\theta_l^q$。量化层被插入到整个模型权重张量中(第 5 行)。最后,运行推理以检查精度。精度被添加到列表中(第 7 行)。当所有层在循环中运行完毕后,返回排名(第 9 行)。

0: $\psi$ – 期望位宽

0: $\Theta$ – 模型权重

0: $F_\Theta$ – 模型

1: $\Lambda \leftarrow \emptyset$ {用于 Top1 指标的列表}

2: for $\theta_i$ in $\Theta$ do

3: $F_{\Theta'} \leftarrow \text{copy}(F_\Theta)$

4: $\theta_i^q \leftarrow q(\theta_i, \psi=4)$ {将层量化为四比特}

5: $\Theta' \leftarrow \{\theta_0, \theta_1, ..., \theta_i^q, ..., \theta_N\}$

6: $a_i \leftarrow \text{eval}(F_{\Theta''})$

7: $\Lambda \leftarrow \Lambda \cup a_i$

8: end for

9: return $\text{argsort}(\Lambda)$

**算法 1** 敏感性分析

该算法遍历所有层并将它们量化为指定的位宽 $\phi$。在所展示的方法中,位宽设置为 4。在第 1 行,算法初始化列表以存储精度值。

### 4.2 微调预训练模型

深度学习网络被定义为层的序列:

$$
F_\Theta(X) = f_{\theta_L}(f_{\theta_{L-1}}...(f_{\theta_0}(X)))
$$ (4)

可训练参数(权重)定义为以下列表:

$$
\Theta = \{\theta_0, \theta_1, ..., \theta_L\}
$$ (5)

权重张量的量化版本如下:

$$
\Theta^q = \{\theta_0^q, \theta_1^q, ..., \theta_L^q\}
$$ (6)

每层权重张量可以使用 $q$ 函数以指定位宽 $\phi$ 进行量化:

$$
\theta_i^q = q(\theta_i, \phi)
$$ (7)

预训练的量化模型表示为 $F_{\Theta^q}$。它是神经进化策略的输入,如算法 2 所述。该算法遍历模型中的所有层(第 1-20 行)。它从不敏感的层开始。它获取层的权重张量(第 2 行)并将其副本添加到初始种群 $P$ 中(第 4 行)。初始种群仅仅是量化层 $l$ 的副本列表:

$$
P = \{\Theta_l^q, \Theta_l^q, ..., \Theta_l^q\}
$$ (8)

然后,使用二项分布生成掩码(第 9 行)。掩码是一个二进制张量:

$$
M_i \in \{0, 1\}^{SH_{\theta_i}}
$$ (9)

掩码的形状 $SH_{\theta_i}$ 与权重张量 $\theta_i$ 的形状相同。掩码中有 $p$ 百分比的 1 值。在变异步骤中(第 12 行),掩码设置为 1 的权重位置将发生变化:

$$
\theta_i = \theta_i + M_i \odot \vec{q}
$$ (10)

向量 $\vec{q}$ 由以下方程生成(第 11 行):

$$
\vec{q} = \vec{r} \cdot \sigma_l
$$ (11)

其中 $\sigma_l$ 是特定层 $l$ 的最小有效位值,$\vec{r}$ 定义为:

$$
\vec{r} = \{r_0, r_1, ..., r_N\}
$$ (12)

每个 $r_i$ 值是从预定义集合中随机生成的数字(第 10 行):

$$
r_i \in \{-2, -1, 1, 2\}
$$ (13)

-1 和 1 值以各 40% 的概率生成。-2 和 2 以各 10% 的概率生成。最后,变异后的层被添加到模型权重张量中(第 15 行)并进行评估。在第 18 行,种群中的精度值被排序。最佳候选者被选入下一次迭代(第 19 行)。

0: $r$ – 排名列表

0: $P_S$ – 种群大小

0: $\Theta$ – 模型权重

1: for $l$ in $r$ do

2: $P \leftarrow \emptyset$

3: for $i$ in $P_S$ do

4: $P \leftarrow P \cup \text{copy}(\theta_l^q)$

相似文章

人工智能架构演化的普适统计特征

Hugging Face Daily Papers

# 论文页面 - 人工智能架构演化的普适统计特征 来源:[https://huggingface.co/papers/2604.10571](https://huggingface.co/papers/2604.10571) ## 摘要 研究发现,人工智能架构的演化遵循与生物进化相同的统计规律,包括相似的适应度效应分布和趋同动力学。我们检验了人工智能架构演化是否遵循相同的统计法则。

神经 GPU 的扩展与局限性

OpenAI Blog

本文探讨了神经 GPU 模型的扩展与局限性,通过课程设计和规模扩展展示了改进方案,使其能够学习十进制数和长表达式的算术运算,同时识别出对称输入上的失败模式,这些模式类似于对抗样本。