摘要
文章针对深度神经网络参数存在大量冗余性问题,从压缩与加速深度神经网络两种不同任务出发,对深度神经网络的低秩分解(low-rank decomposition)和参数剪枝(parameter pruning)通用性方法展开深入研究,特别对于卷积神经网络的压缩与加速。具体研究内容和创新点包括:
(1)提出了一种基于闭式低秩分解和知识迁移的全局卷积神经网络压缩方法。传统方法分开考虑卷积层加速和全连接层压缩,无法统一联合处理不同类型层任务,且利用逐层方式进行内局部压缩,无法显性对齐最终网络分类准确率。针对此问题,本文提出一种全局的卷积神经网络压缩框架,统一加速与压缩卷积神经网络。该框架首先利用一种带有闭合解的低秩分解技术分别加速卷积计算和减少内存开销。为了有效提高压缩后模型的准确率及克服网络训练中的梯度消失问题,本文提出新的知识迁移方法,用于对齐压缩后网络与原始网络之间的隐层输出及最终网络输出结果。
(2)提出了一种基于全局动态剪枝的卷积神经网络加速方法。虽然低秩分解后产生若干个小矩阵,能够较大压缩网络模型,但也增加了模型计算时对数据的频繁获取操作次数。另外,该类方法无法减少输出特征图数量,导致模型计算通信带宽显著增加。结构化剪枝能够有效克服此类问题,但现有的结构化剪枝方法依赖于层与层之间固定的方式裁剪,缺乏自适应性、低效和低准确率等缺点。针对此问题,本论文提出了一种全局动态更新的滤波剪枝框架,用于快速离线剪枝滤波并动态恢复误删滤波,提高剪枝后网络的分类准确率。首先在每个滤波后引入了全局掩码用于判断滤波的显著性,并构造全局动态目标函数。然后利用贪心交替式更新策略解决非凸优化问题,主要包括设计基于泰勒展开的全局掩码用于临时贪心裁剪显著值较小滤波以及随机梯度下降更新滤波。
(3)提出了一种基于生成对抗学习的最优结构网络剪枝方法。针对全局动态剪枝方法缺乏松弛性和强标签依赖问题,本论文提出了一种无需标签端对端训练的异构剪枝方法。该方法对每个模型结构引入了软掩码(soft maak),并对其加入稀疏限制,使其表征每个结构的冗余性。为了更好学习模型参数和掩码,本论文构建了新的结构化剪枝目标函数,利用无类别标签生成对抗学习和快速的迭代阈值收缩算法(FISTA)解决该优化问题,从而稳定移除冗余结构。
研究内容
基于闭式低秩分解和知识迁移的全局卷积神经网络压缩方法。传统方法分开考虑卷积层加速和全连接层压缩,无法统一联合处理不同类型层任务,且利用逐层方法进行层内局部压缩,无法统一联合处理不同类型层任务,且利用逐层方式进行层内局部压缩,无法显性对齐最终网络分类准确率。针对此问题,本文提出一种全局的卷积神经网络压缩框架,统一加速与压缩卷积神经网络。该框架首先利用一种带有闭合解的低秩分解技术,分别加速卷积计算和减少内存开销。为了有效提高压缩后模型的准确率及克服网络训练中的梯度消失问题,提出了新的知识迁移方法1,用于对齐压缩网络与原始网络之间的隐层的输出及最终网络输出结果。
基于全局动态剪枝的卷积神经网络加速方法 。虽然低秩分解后产生若干个小矩阵,能够较大压缩网络模型,但也增加了模型计算时对数据的频繁获取操作次数。另外,该类方法无法减少输出特征图数量,导致模型计算通信带宽显著增加。结构化剪枝能够有效移除冗余滤波,同时也能移除相应的输出特征图,有效减少模型计算带宽增加。但现有的结构化剪枝方法裁剪卷积神经网络依赖于层与层且固定的方式裁剪,缺乏自适应性、低效和低准确率等缺点。本论文提出了一种全局的、动态更新的滤波裁剪技术,用于快速离线剪枝滤波并动态恢复误删滤波,提高剪枝后网络的分类准确率。
基于生成对抗学习的最优结构化网络剪枝方法 。为了解决全局动态剪枝的结构化剪枝方法存在的无松弛性、强标签依赖等问题,本论文提出了一种无标签端对端训练的异构剪枝方法。该方法对每个模型结构引入了软掩码,并对其加入稀疏限制,使其表征每个结构的冗余性。为了更好学习模型参数和掩码,本论文构建了新的结构化剪枝目标函数,利用无类别标签生成对抗学习和快速的迭代阈值收缩算法解决该优化问题,从而稳定移除冗余结构。
基于闭式低秩分解和知识迁移的全局卷积神经网络压缩****方法
引言
在卷积神经网络中,最耗时部分来源于卷积层,而大量的模型存储开销来自于全连接层。由于内在结构的不同,卷积层的加速与全连接层的内存缩减被看成两种不同的任务。一方面,为了加速卷积层的计算,移除计算冗余性作为一种广泛使用的解决方案。例如,结构化剪枝、张量分解和二值化网络等。另一方面,为了压缩全连接层的参数,大量方法通过减少参数冗余性来减少模型内存开销。例如,向量量化、hash、循环映射、矩阵分解、参数剪枝等。
目前的压缩框架还缺乏一种统一的框架能同时压缩卷积层和全连接层,特别是低秩分解技术。一方面,在计算过程中,压缩方法经常会引起不规则内存获取,从而影响网络计算效率,所以压缩参数无法保证一定加速网络计算。另一方面,相关文献借助快速傅里叶变换或离散余弦变换加速卷积计算,但无法起到参数压缩的效果。
此外,现有的神经网络压缩与加速方法仍然采用逐层方式压缩,只考虑层内局部压缩,无法显式对齐网络的最终分类准确率。由于卷积网络中存在大量的非线性激活变换函数,局部层内的压缩,经过非线性变换后,使得原始小的重建误差经过传播并逐层扩大,导致巨大的累积误差,严重影响最终的分类结果。
为了处理以上问题,本章提出了一种全局且显性的卷积神经网络统一压缩框架,旨在联合压缩卷积层和全连接层,从而同时加速模型前向预测以及减少模型内存存储。从原则上来看,我们的框架首先设计了一种具有严格闭式保证的层内压缩方法,然后通过重训练对齐原始模型和压缩后模型的输出响应。具体而言,我们首先提出一种基于闭式低秩分解(LRD)的新型压缩方法,用于同时加速卷积层计算和压缩全连接层的内存存储 。不同于Jaberberg等人提出的依赖于数据的搞复杂迭代式优化,我们的方法利用无需任何迭代的快速闭式低秩分解技术,使得压缩后的卷积模型拥有很强的泛化性。另外,为了减少闭式低秩分解权值导致的精度损失,我们进一步提出了新型有效的知识迁移(KT)方法,用于显式对齐教师网络(也称为原始网络)和学生网络(也称为压缩后的网络)的隐层响应和最终输出。新提出的知识迁移框架能够处理层内层外非线性变换,同时以统一的方式最小化局部和全局的重建误差,使其更容易收敛和实现。事实上,我们的知识迁移方法在知识蒸馏的方法上进一步扩展,通过使用来自教师网络隐含层的局部知识知道学生网络的训练,使得知识迁移能够学习更深且窄的学生网络,避免了知识蒸馏方法出现的梯度消失问题。 另外,受梯形网络(ladder network)和 FitNets[106]启发,本章中我们将更为简单 的基于教师网络与学生网络隐层激活的欧式距离作为局部损失函数,无需使用任何 回归器(regressor)能够获得来自教师网络的局部知识。为此,当训练更深的学生网络时,知识迁移使用了此类局部知识能够有效的利用端对端训练提高学生网络的判别性,同时克服训练过程中有可能出现的梯度消失问题。正如图3.1所示,通过有效组合闭式的低秩分解方法和知识迁移策略,构建新的全局卷积神经网络压缩框
架 ------LRDKT。
框架图如下:
贡献总结如下:
• 提出了有效的全局卷积神经网络压缩方法,相比于之前分段压缩方法更加灵
活和准确。
• 新的无需迭代的闭式低秩分解压缩方法不仅能够快速压缩模型,同时压缩后
的卷积模型拥有很强的泛化性。新的知识迁移方法,设计新的局部损失误差,
并结合全局损失进行有效的端对端训练提高学生网络精度,同时克服了训练
过程中的梯度消失问题且提高压缩后模型的判别性。
• 大量实验验证了我们方法相比于现有的卷积神经网络压缩与加速方法在分类
任务上具有更好的有效性。另外,将我们压缩后的模型应用到其它任务上也
取得了很好的效果,有效验证了我们方法具有很强的迁移学习能力。
全局低秩分解与知识迁移
我们首先介绍相关的预备知识;然后,我们提出闭式低秩分解技术作用于卷积张量与全连接层矩阵;最后,利用知识迁移最小化原始网络与压缩后网络的局部和全局累计误差。
预备知识
卷积神经网络是一种前馈多层神经网络,通过将输入图像直接映射成特地的向量形式输出。在卷积层中,每个单元被组织成一个 3D 张量形式,前两维表示空间维度,第三位表示图(map )或通道维度。如果卷积神经网络应用于批量( batch )图像中,那么输入会以 4D 张量表示,其中第四维表示批量大小。由于第四维不会直接影响最后计算和求导,在本章中我们着重考虑 3D 特征图。正如第二章描述的卷积计算,我们考虑单层的计算结果,那么每一个输出特征图 O ∈ R H ′ × W ′ × N 是由所有的输入特征图 I ∈ R H × W × C 与 3D 卷积核 / 滤波( filter )卷积计算的结果,每一个
3D 卷积核形成一个输出特征图。具体地,计算过程可以用以下公式表示:
其中, K ∈ R d × d × C × N 是一系列 3D 卷积核。在卷积核 K 中, d × d 表示卷积核空间的维度------ 高和宽, C 和 N 分别表示输入和输出通道的个数 . 输入的高和宽可分别表示为 h i = h ′ + i − 1 和 w j = w ′ + j − 1 。为了简单表示,在公式 (3.1) 中,我们假定卷积步幅为 1 ,没有进行 0 填充以及忽略了偏置项。图 3.2 左半部分展示了原始卷积计算过程。为了更:好描述冗余性,公式(3.1) 可重写为:
其中 K n 是第 n 个 3D 卷积核,其中 n ∈ [1 , 2 , · · · , N ] 。另外,每个 K n 包含了一系列2D 滤波 K n c ∈ R d × d , c ∈ [1 , 2 , · · · , C ] 组成。在全连接层中,输入与输出之间存在密集连接,主要的计算是矩阵与矩阵的乘积,具体可由以下公式表示:
其中, X ∈ R d × b 为输入矩阵, W ∈ R h × d 为权值, Z ∈ R h × b 为输出矩阵。那么公式(1-3) 可利用我们提出的新的闭式低秩分解方法,分别处理卷积张量和全连接矩阵,从而进行卷积神经网络加速与压缩。
全局的闭式低秩分解
对于公式 (1) 中的张量卷积,我们可以在空间上创建秩 1 的低秩滤波基。那么,每个卷积层可拆分成拥有两个类似于矩形滤波的新的卷积层。第一个卷积层拥有空间大小为 d × 1 的 R 个卷积滤波,形成的滤波器组( filter bank )为 产生输出特征图为 。第二个卷积层拥有空间大小为1 ×d的N个卷积滤波,形成的滤波器组为, 产生了与原始卷积输出大小相同的输出特征图为。因此,原始卷积计算公式(2)可由下列公式近似表示:
其中与原始卷积核 K 近似的卷积核K可以由 r 个可分离的滤波 T n r ∗ V r c 相加形成。
即:
在公式 (5) 中, R 为秩的大小。图 3.2 右半部分展示了上述卷积近似计算过程。经过近似计算后,我们将原始卷积计算复杂度为 变成了 。 假设图像大小 W ≫ d 且变量 R = N = C ,则原始卷积计算可被加速为 d 倍。
我们可通过求解以下优化问题获得近似的低秩滤波基 T 和 V :
代替迭代式优化公式 (3.6) ,我们可以通过以下定理 3.2.1 直接获得其闭式解。得到对应的解 ( T , V ) 也可定义为一系列低秩限制的滤波。
定理 3.2.1 定义一个函数 σ ,可将张量映射成矩阵: σ : R d × d × C × N → R Cd × Nd , K 7→
σ ( K ) ,其中张量索引位置 ( i 1 , i 2 , i 3 , i 4 ) 可映射到矩阵索引位置 ( j 1 , j 2 ) ,使得满足:
另外,定义 。令 K = U Σ V ⊤ 是 K 的奇异值分解( singular value decom
position, SVD )的结果。则我们可以创建以下(,) ,使其成为公式*(3.6)* 的一个解:
证 : 我们首先考虑以下的优化问题:
令 ( T ∗ , V ∗ ) 是公式 (3.6) 的最优解,然后创建如下矩阵:
由于 Frobenius 范数的分离性(separability),有:
由于 rank ( K) ≤ R , 那么是公式(3.8)的可行解。因此,对于公式 (3.8) 任何解 K∗,有:
另一方面,如果 K ∗ 是公式 (3.8) 的一个最优解,利用公式 (3.7) 可以创建公式 (3.6) 的一个可行解,则
结合公式 (3.9) ,得到:
所以,可证(,)是公式(3.6) 的一个闭式解。
事实上,公式 (3.6) 的解并不是唯一的。假如 ( T , V ) 是公式 (3.6) 的一个解,那么 也是公式 (3.6) 的一个解。但是,在实际应用中,取得了几乎一致效果。
利用定理 3.2.1 能够非常快速地且无需任何迭代优化地获得公式 (3.6) 的闭式解文献需要大量时间依赖于训练数据学习近似的卷积核,这使得很容易获得不好的局部最小解。相反地,定理3.2.1 得到的闭式解能大大好于这类迭代的方法。我们后续将在本章实验中进行验证。对于公式(3.3) 全连接层使用的矩阵与矩阵的乘法,我们考虑利用低秩近似的矩阵
逼近原始权值矩阵 W ∈ R h × d 。我们通过解决以下优化问题,获得该低秩近似的矩阵:
公式 (3.11) 的解可通过 SVD [139] 进行低秩分解获得,即, ,其中 和 分别表示 U 和 V 中奇异值排前的 r 个奇异向量形成的子矩阵。 中的对角元素表示 Σ 中排靠前的 r 个最大奇异值。 Σ 则表示为 SVD 分解 W 获得的对角矩阵。这样我们可以获得,其中,。
然而,无需任何重训练直接利用闭式低秩分解应用于所有层,将导致每层近似误差的累积并传递,导致压缩后模型的判别力严重下降。因此需要使用非对称数据重建来缓解此问题。在本章中,我们创建了新的局部损失函数(亦称为局部非对称重建误差),对齐压缩层与原始层之间的输出。最小化这类重建误差,利用随机梯度下降法作为一种可行方法获得子最优解。代替逐层优化局部重建误差,我们提出知识迁移创建了总的损失函数,同时考虑局部非对称重建误差和全局重建误差,减少最后输出层的整体误差。SGD 作为一种简单且有效的优化方法,我们直接将它用于最小化总的损失函数。具体的定义和优化将在下节3.2.3 详细介绍。我们分别对卷积层中的卷积核和全连接层中的权值进行闭式低秩分解,分别得到两个小的张量和两个小的矩阵。经过分解后,我们在卷积层中只需要 R ( CW + NW ′ ) dH ′ 乘加计算( multiplication-addition operations ),在全连接层中只需要 r ( h + d ) 个参数。相比于原公式 (3.1) 和公式 (3.3) ,我们可以得到以下卷积层的加速比 S r 和全连接层的压缩比 Cr: