低秩分解(张量分解)
神经网络的 filter 可以看作是四维张量:宽度 w高度 h通道数 c卷积核数 n,由于 c 和 n 对网络结构的整体影响较大,所以基于卷积核(w*h)矩阵信息冗余的特点及其低秩特性,可以利用低秩分解方法进行网络压缩。低秩分解是指通过合并维数和施加低秩约束的方式稀疏化卷积核矩阵,由于权值向量大多分布在低秩子空间,所以可以用少数的基向量来重构卷积核矩阵,达到缩小存储空间的目的。
低秩分解方法在大卷积核和中小型网络上有不错的压缩和加速效果,过去的研究已经比较成熟,但近两年已不再流行。原因在于:除了矩阵分解操作成本高、逐层分解不利于全局参数压缩,需要大量的重新训练才能达到收敛等问题之外,近两年提出的新网络越来越多地采用 1*1 卷积,这种小卷积核不利于低秩分解方法的使用,很难实现网络压缩与加速!
高光谱影像是收集及处理整个跨电磁波谱的信息,不像是人类的眼睛,只能接触到可见光。
数学基础:低秩分解 - weilongyitian - 博客园 (cnblogs.com)
CNN 模型所需的计算力(flops)和参数(parameters)数量是怎么计算的? - 知乎 (zhihu.com)
利用卷积的直接实现,将单通道输入图像与N个大小为d × d的2d滤波器进行卷积的复杂度为O(d**2*N*H*W)。
一 2014 BMVC Speeding up Convolutional Neural Networks with Low Rank Expansions
目的:该论文提出了一种基于张量分解和判别微调的两步加速大型卷积神经网络中卷积层的方法。
步骤:
- 给定一层,首先使用非线性最小二乘法计算4D卷积核张量的低秩CP分解为少量秩1张量的和。
- 在第二步,用分解出的具有小内核的四个卷积层序列替换原始卷积层。
- 替换之后,使用标准反向传播过程对整个网络的训练数据进行微调。
结果:
- 在两个网络中较小的网络以较低的精度下降为代价获得更高的CPU加速比。
- 对于36类字符分类CNN,我该方法获得了整个网络8.5倍的CPU加速,而准确率仅略有下降(1%从91%降至90%)。
- 对于标准ImageNet体系结构(AlexNet),该方法将第二个卷积层的速度提高了4倍,但代价是总体前5名分类错误增加1%。
二 2016 TPAMI Accelerating Very Deep Convolutional Networks for Classification and Detection
用于分类和检测的超深卷积网络的加速