神经网络压缩算法目前根据有无原始数据的参与分为两种。
Data-Driven类
Hinton等提出了一种知识蒸馏方法(knowledge distillation,KD),该方法提炼出经过预训练的teacher网络的信息,以学习portable (student )网络【Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distillingthe knowledge in a neural network. arXiv preprintarXiv:
1503.02531, 2015】。
Denton等利用低秩分解(SVD)来处理全连接层的权重矩阵【Emily L Denton, Wojciech Zaremba, Joan Bruna, Yann Le- Cun, and Rob Fergus. Exploiting linear structure within convolutional networks for efficient evaluation. In NIPS, 2014】。
Han等采用修剪、量化和霍夫曼编码来获得紧凑的深度CNN,使之具有较低的计算复杂度【Song Han, Huizi Mao, and William J Dally. Deep compression:
Compressing deep neural networks with pruning, trained quantization and huffman coding. arXiv preprint arXiv:
1510.00149, 2015】。
Li等进一步提出了一种特征模拟框架,以训练有效的卷积网络进行目标检测【Quanquan Li, Shengying Jin, and Junjie Yan. Mimicking very efficient network for object detection. In CVPR, pages 7341-7349. IEEE, 2017】。
上述方法在大多数据集上取得了良好的效果,但如果没有原始训练数据集,则很难应用。
Data- Free类
Lopes等利用原始训练数据集记录的 “元数据”(meta-data)(例如,每层激活的平均值和标准偏差),但大多数训练过的CNN很难提供此数据【Raphael Gontijo Lopes, Stefano Fenu, and Thad Starner.Data-free knowledge distillation for deep neural networks.arXiv preprint arXiv:
1710.07535, 2017】。
Srinivas和Babu提出在完全连接的层中直接合并相似的神经元来压缩网络,但这很难应用于未详细说明结构和参数信息的卷积层和网络【Suraj Srinivas and R Venkatesh Babu. Data-free parameter pruning for deep neural networks. arXiv preprint arXiv:
1507.06149, 2015】。
实际上,由于如涉及隐私、传输限制等因素,原始训练数据集和详细的网络结构、参数等很难获取,这就意味着上述两类方法难于应用。