主要贡献:
在对深度卷积神经网络的参数压缩及前向加速上:
1.提出全局监督低秩分解算法,有效解决了对卷积层进行低秩分解时,精度损失较大的问题,同时使用输入数据标签信息作为其收敛目标;
2.提出了自适应剪枝算法,有效的缓解了传统剪枝算法,对网络各层剪枝阈值设置太大导致性能急剧下降,或阈值太小导致压缩倍数不足的问题,采用自适应动态增加的阈值,使网络各层冗余的连接逐渐被移除;
3.提出了连接冗余度分析的概念,其可以在给定的精度损失阈值下,分析各层的连接度,从而指导网络各层砍连接的比例。
在对深度神经前向计算的工程实现上:
1.对深度神经网络的有关图优化进行了有关图优化进行了相关的介绍,其中主要包括对激活函数层的融合,以及如何将对 BN 层和 scale 层,通过参数的预处理,将这两层的计算融入到上一层的计算当中,等效于忽略这两层的计算;
2.分别对深度卷积神经网络和深度递归神经网络的前向计算做了具体的分析,以及通过采用 循环展开,利用 BLAS 库以及稀疏的矩阵乘法,将网络的前向时间逐渐优化。
主要内容:
1.全局监督低秩分解的具体做法:在对第二个卷积层进行低秩分解的时候,把第一个卷积层以及第二个卷积层以后所有层的参数,用原始分解之前模型,对其进行初始化,在训练时,将这些层的参数固定住,也就是将其学习率设为 0,对低秩分解的 Conv2_de1 和 Conv2_de2 层参数进行随机初始化,在输入数据的标签信息作为监督信息,采用反向传播和随机梯度下降对网络进行训练,直至网络收敛。
2.自适应剪纸算法:首先,通过对每层进行剪枝,设置精度丢失阈值,得到每层剪枝比例;然后对每层进行剪枝,同时每层砍连接的阈值也会逐渐增长,为p+riNiI/T1,当达到剪枝比例时,固定砍连接阈值,继续进行训练直到迭代到T2.
3.剪枝后的聚类与稀疏存储;
4.连接冗余度分析:将该层权值的绝对值大小进行排序,找到中间数,作为阈值,然后将绝对值小于该中间数的连接从该层移除,然后测试网络的精度,最后可以知道将该层一半连接权值较小的连接移除后,网络的精度会下降多少。然后,对每一层都单独的做敏感度分析,最后就可以知道哪一层参数对网络精度的影响做大,从而就认为该层的参数就越重要。但是,这种做法,只能知道各层参数分别对网络性能的影响,不能分析出各层有多少的连接是冗余的。在网络做连接冗余度分析,我们需要对每层单独进行实验。当对其中的某一层做冗余度分析时,会将其他层的参数固定住,单独对这层的参数进行自适应剪枝。由于采用的是自适应剪枝算法,每层中冗余的连接会逐渐从网络中移除,由此会让网络的精度逐渐下降。当网络精度的下降达到预定容忍度时,此时该层被移除连接的比例为ci,该层最终的剪枝比例ri将由ci来决定。