用张量分解的方法压缩神经网络模型这一方向还有哪些坑可以挖呢?这是我研究生以来一直研究的问题。看了很多论文,感觉大体可以分为两条line:
(一)基于低秩近似的张量分解方法。也就是对原有的模型参数做低秩张量分解,用分解后得到的因子替换原有的大张量。这一过程后通常还需要一个fine-tune的过程。其中的难点就是怎么从大的张量中保留最有价值的参数留下来,作为一个很好的初始参数值。(二)用张量分解得到的因子重新定义新的网络结构,新的张量计算方法代替原来的卷积操作或全连接层的矩阵运算。
这一方法姑且就叫张量化网络吧,下面是该方向的论文汇总,按时间顺序排列。
- 《Tensorizing Neural Networks》(NIPS2015)
- 《Ultimate tensorization compressing convolutional and FC layers alike》(NIPS2016 workshop)
- 《Compressing recurrent neural network with tensor train 》(IJCNN2017)
- 《Tensor-Train Recurrent Neural Networks for Video Classification》(ICML2017)
- 《Learning Compact Recurrent Neural Networks with Block-Term Tensor Decomposition》(CVPR2018)
- 《Sharing Residual Units Through Collective Tensor Factorization》(IJCAI2018)
- 《Tensor Regression Networks》(2018)
- 《Tensor Regression Networks with various Low-RankTensor Approximations》(2018)
- 《Wide Compression,Tensor Ring Nets 》(CVPR2018)
- 《Compressing Recurrent Neural Networks with Tensor Ring for Action Recognition》(AAAI2019)
- 《Bayesian Tensorized Neural Networks with Automatic Rank Selection》(2019)
- 《Robust deep networks with randomized tensor regression layers》(2019)
- 《Compressing Deep Neural Networks via AdaptiveDimension Adjustment Tucker Decomposition》(2019)
- 《Compression and Interpretability of Deep NeuralNetworks via Tucker Tensor Layer》(2020)
从时间顺序上来看这条line的发展脉络还蛮清晰的
1,2是这个方向的开篇之作,用tensor train分解方法分别重新定义了全连接层和卷积层,都是先将它们reshape成更高维的张量
3,4都是基于1 做的,方法基本相同,只不过扩展到了RNN网络中。
5同样是对RNN网络做压缩,只不过换了一种分解方法block-term分解。
6和之前的思想不是十分相同,它利用了block-term分解后的参数形式对各种resnet残差网络用一个框架表示。tucker分解后的参数可以转化为1*1,3*3,1*1的卷积层,早在2016年就有。而block-term分解是tucker分解的一种泛化形式,可以看做多个tucker的集成。
7,8是一组,它们针对的神经网络中的最后一层分类层。
9用了一种新提出的tensor ring分解方法,对卷积和全连接层都进行了重新的表示。
10和9的方法一样,只不过任务不一样,不过10这篇论文写的真好,一读就懂。
11用了贝叶斯推理法,看不懂。。
12是7,8的后续工作,将随机的思想添加了进来。
13主要研究的是分解前将参数reshape成哪种维度比较好,并且core tensor的维度怎么取比较好。
14试图通过张量对神经网络模型的可解释性进行探索,主要通过对tucker分解后的因子求偏导,比较大小。
总结下来,其实并没有很大的飞跃,基本就是有了新的更好的张量分解方法就将其应用在网络的参数上;或是应用在不同的神经网络模型上;或是研究一下分解之前把全连接层的矩阵和卷积层的四维张量reshape成多大维度的张量。难点主要是秩的选择。因为张量分解中的秩决定分解后因子的维度,也就是决定了张量化后的网络模型的结构。而目前几乎所有的工作都是凭经验指定的或者通过实验挑选最优的。
未来能刨的坑还有很多
以上转载自博客 [link](https://blog.csdn.net/sinat_38856440/article/details/104450094/).