稀疏卷积神经网络
【原创翻译】
摘要
深度神经网络花费了大量的特征和计算复杂度,在图像分类和目标识别方面取得了前所未有的进步。在本次工作中,我们提出如何使用稀疏分解的方法减少神经网络中的冗余特征。通过利用信道间和信道内的冗余来获得最大稀疏性,并通过一个微调步骤,最大限度地减少由于稀疏性最大化而导致的识别损失。本程序零点超过了特征的90%,在ILSVRC2012数据集的精度小于1%。同时,我们为稀疏卷积神经网络(SCNN)模型提供了一个可以在CPU上运行有效的稀疏矩阵乘法算法。CPU实现并证明了该模型比现成的稀疏矩阵库更有效,在原始的密集网络上实现了显著的加速比。另外,我们使用SCNN模型解决目标检测问题,连接一个级联模型和稀疏全连接层,取得了显著的加速比。
1. 介绍
在本论文中,我们展示了如何在一个卷积神经网络中用稀疏分解的方法进行滤波步骤,大大降低计算成本,同时又能保持原模型的准确性。
与前期工作相关的贡献
正如下面第2节所讨论的那样,例如,[4][12]使用低秩近似来表示基于少数量的滤波器的网络计算的前期工作。现在本文提出的方法,不是低秩近似方法,而是通过使用一个稀疏分解的滤波步骤,获得额外的有效性。正如将在6.2节介绍的那样,这样会导致有效性和准确度的组合,不能仅仅是使用低秩分解来匹配。
2. 相关工作
对深度神经网络冗余的研究已经有很多中尝试了。
3. 我们的方法
3.1 稀疏卷积神经网络
考虑到输入特征图 I 在 Rh*w*m ,其中h、w和m是高、宽和输入特征图信道的数量,卷积核 K 在 Rs*s*m*n, 其中s是卷积核的大小,n是输出信道的数量。我们假设卷积是没有零点设置和步长为1。然而,卷积层的输出特征图O属于R(h-s+1)*(w-s+1)*n = K * I ,具体等式如下:
我们的目标是通过基于稀疏矩阵乘法的快速稀疏版本,取代昂贵的公式(1)中卷积复杂计算 O = K * I。
为了达到目的,首先将张量 I 转换为 J属于Rh*w*m,卷积核 K 转换为 R 属于Rs*s*m*n,用矩阵 P属于Rm*m 获得O约等于R*J:
然后,对于每一个信道 i = 1,2,...,m,分解张量 R(., ., i, .)属于Rs*s*n 为矩阵的乘积
注意到,
网友评论