本文将对NeurIPS 2019会议论文《Positive-Unlabeled Compression on the Cloud》进行解读,这篇论文在神经网络压缩(network compression)方面有所创新。现有的网络压缩和加速方法通常需要完整的原始训练集(例如ImageNet)来对模型微调,但上传这些数据到云端往往是非常耗时的。
为此,作者提出了一种基于正类与未标记样本(PU)的云端网络压缩方法。只需要原始训练集的一小部分作为正类(positive)样本,通过带有基于attention的多尺度特征提取器的PU分类器,就可从云端大量未标记(unlabeled)的数据中获得更有用的训练样本。再进一步使用改进的鲁棒知识蒸馏(Robust Knowledge Distillation)方法解决新增训练集中的类别不平衡问题。
实验表明,可以使用ImageNet中8%的数据来获得性能与基准ResNet-34相当的高效模型。为了与现实应用中的各种运行环境(如手机和自动驾驶)兼容,需要对受过训练的神经网络进行相应的压缩和加速。考虑到云提供的可伸缩计算资源(例如GPU和RAM),因此有望为最终用户提供网络压缩服务。现有的方法,例如量化方法【1】,修剪方法【2】和知识蒸馏方法【3】,并不能轻易部署到云端以压缩客户提交的复杂网络。
主要原因是:为了避免精度损失,大多数方法都要求用户提供原始训练数据,再对压缩网络进行微调。但是,与CNN模型规模相比,整个训练集将大得多。例如,ResNet-50 [8]参数的存储空间约为95MB,而其训练数据集(即ImageNet [14])包含超过一百万张图片且文件大小超过120GB。因此,由于传输速度的限制(例如10MB/s),会降低用户体验。
实验CIFAR-10 teacher网络是基于attention多尺度特征提取器的ResNet-34网络,并使用SGD对网络进行了200个epochs的预训练。student网络是ResNet-18。如下表所示为实验结果,是从CIFAR-10中每个类中选择的样本数,是用于训练student网络的样本数。
Baseline-1方法是手动选择正类数据,Baseline-2方法是随机选择50000个数据(不可避免地包含许多负类数据),PU-s1是选择通过PU方法产生的所有正类数据,PU-s2是随机选择50000个正类数据。实验结果表明,有CIFAR-10中1000个样本,并从ImageNet中选择约110k训练样本,与Baseline-1方法相比,精度会更高。
现有的大多数网络压缩方法通常需要原始训练集,但上传这些数据到云端成本过高。因此,作者提出了一个two-step框架的神经网络压缩方法。首先,使用基于云端给定的标记数据和大量未标记数据训练具有基于attention的多尺度特征提取器的PU分类器。再通过组合给定数据和PU分类器选择的正类数据来生成新的数据集。其次,提出了鲁棒知识蒸馏(RKD)方法来解决扩展数据集中带有噪声的类别不平衡问题。
在MNIST、CIFAR-10和ImageNet数据集上的实验表明,该方法效果较好。