Page 486 - 《软件学报》2025年第10期
P. 486
韩凯 等: 用于二值神经网络的加宽和收缩机制 4883
化的 ResNet-32、ResNet-56 和 ResNet-110 作为不同深度的网络.
精度结果展示在图 2 中. 可以看出, 参数较少的 2 倍宽的 ResNet-20 的性能优于 ResNet-110. 3 倍宽的二值化
ResNet-20 使用更少的参数, 实现了和全精度 ResNet-20 几乎相同的准确率. 随着每层通道的增加, 4 倍和 8 倍宽的
模型准确率进一步提高. 其原因在于二值化特征的表示能力低于全精度特征, 因此我们希望使用更多的二值化特
征来提高性能. 综合来说, 加宽的二值化网络能够比加深取得更好的效果, 因此接下来我们探索如何找到量化神经
网络每一层最优的宽度.
95
94.33
93
92.98
91.98 92.19 Binary_res32 1倍
91 90.34 Binary_res56 1倍
准确率 (%) 89 88.22 Binary_res20 1倍
Conv Batchnorm Conv 89.87 Binary_res110 1倍
Binary_res20 1倍
Binary_res20 3倍
87
86.74
Binary_res20 4倍
W Q 85 Binary_res20 8倍
W FP32_res20 1倍
84.14
Quantization Conv 83
0 5 10 15 20
X Q
X
参数量 (M)
图 1 量化模块示意图 图 2 二值化网络加宽和加深的结果对比
在已有神经网络架构的基础上, 加宽或加深二值神经网络可以提升二值网络的精度. 不过, 加宽或加深也存在
一定的局限性. 加宽或加深二值网络的精度有上限, 会被基础的网络架构所约束, 如果要突破上限就需要探索新的
网络架构, 这是加宽或加深所达不到的.
3 基于加宽和收缩机制的量化神经网络
首先, 二值神经网络中往往需要更长的二值特征编码来保持来自原全精度输入空间的判别能力. 因此, 我们尝
试找到二值神经网络中单层特征图的二值特征长度的下界. 接着, 我们提出一种端到端学习的网络宽度优化方法,
来找到量化网络中每一层最优的宽度.
3.1 逐层二值特征宽度求解方法
我们的目标是找到二值神经网络的最小维数 (即卷积核的数量), 以保持住原始全精度神经网络的性能. 对于
预训练深度神经网络中的任意卷积层, 其卷积运算可以表示为:
⊤
X F +b = Y (1)
其中, X ∈ R wh×ck 2 是输入数据 (即前一层的特征或激活值) 根据本层的卷积核大小转换成的矩阵, F ∈ R ck 2 ×n 是 n 个
卷积核权重, Y ∈ R wh×n 是输出特征图. w 和 h 分别是特征图的宽度和高度. n 是输出通道数, b 是偏置项, 为了简单
起见, 通常会省略.
˜ Y = ϕ(Y) ∈ R wh×m 是二值化层中卷积核的
对于神经网络二值化问题, 我们将近似的二值特征图表示为 , 其中, m
数量, ϕ(·) 是线性 [33] 或者非线性变换 [34,35] . 通常, 我们可以利用线性变换 P 来完成 [33,36] , 即 ˜ Y = YP , 其中 P ∈ R m×n .
⊤
因此, 对特征图 Y 的二值化可以表示为:
1
⊤
min P,B ||YP − B|| 2 (2)
2 F
其中, B ∈ {−1,+1} wh×m 是二值化后的特征图, ||·|| F 是矩阵的 Frobenius 范数.
上述函数只强制给定卷积层中的特征是二值化的, 它没有继承在大量训练数据上学习到的特性. 因此, 我们建
议保留每两个样本的特征之间的关系, 这通常是图像分类、检测和分割等视觉识别任务中的重要的特性, 即:
1 γ
2
⊤
min P,B ||YP − B|| + ||D(Y)−D(B)|| 2 F (3)
F
2 2

