1. 概述
这篇文章提出了结构系数学习(Structured Sparsity Learning,SSL)的方法去正则网络的结构(filter,channel,filter shape,网络的深度),SSL的特点是:
- 1)从大的DNN网络去学习一个的紧密结构,减少计算花销;
- 2)获得一个硬件友好的DNN稀疏结构去加速网络。在实验中使用SSL方法对AlexNet在CPU与GPU上分别加速了5.1与3.1倍。精度降低大约为1%;
- 3)使用SSL方法之后给网络带来了正则的作用,提升了网络的性能。实验中将20层的ResNet裁剪成为了18层的,同时还提升了网络的精度。
论文地址:Learning Structured Sparsity in Deep Neural Networks
论文代码:Caffe for Sparse and Low-rank Deep Neural Networks
下面这幅图中展示的是AlexNet前面5个卷积层使用L1范数进行non-structurally剪裁的结果,可以看到网络已经很稀疏了(大于95%),但是加速的幅度确实很小的。
在最近提出的低秩近似方法中,首先对DNN进行训练,然后对每个训练的权值张量进行分解,并用较小因子的乘积进行近似。最后,通过finetune来恢复模型的精度。低秩逼近在稠密矩阵中协调模型参数,避免了非结构化稀疏正则化的局部性问题,能够实现实际的加速。然而,低秩近似只能得到各层内部的紧凑结构,并且在微调过程中,各层的结构是固定的,需要花费大量的时间进行分解和微调,才能找到最优的权值近似,从而提高性能和保持精度。
在文章中基于这样的事实:
- 1)在filter与channel上存在冗余;
- 2)过滤器的形状通常固定为长方体,但启用任意形状可以潜在地消除这种固定带来的不必要的计算;
- 3)一般来讲网络越深分类效果越好,但是会存在梯度问题。
对此,这篇文章提出了SSL方法通过在训练中使用group Lasso回归来压缩网络的结构,这里包括了filter、channel、filter的形状与网络的深度。SSL方法将结构正则化(网络的分类精度)与本地最优化(内存访问的计算效率),最后结果并不只是正则化之后提升精度的原始网络,而且还加速了计算过程。
2. Structured Sparsity Learning Method for DNNs
2.1 Structured Sparsity Learning的通用结构
在CNN网络中对于第 l , l ∈ 1 ≤ l ≤ L l, l\in1\le l \le L l,l∈1≤l≤L层的卷积参数为 W ( l ) ∈ R N l ∗ C l ∗ M l ∗ K l W^{(l)}\in R^{N_l*C_l*M_l*K_l} W(l)∈RNl∗Cl∗Ml∗Kl,这写权重的不同维度就可以代表filter、channel和spatial上了,因而得到了网络的空间结构正则化通用优化目标,可以将其表示为:
E ( W ) = E