北大、华为联合提出无需数据集的Student Networks。本文将对ICCV2019会议论文《Data-Free Learning of Student Networks》进行解读,这篇论文在神经网络压缩领域有相当高的实用价值。
作者从难以获取teacher网络原始训练集的角度出发,提出了一种将teacher网络用作固定的判决器,利用GAN(Generative Adversarial Networks)的生成器来产生模拟原始训练集的训练样本,进一步训练、获得具有较小尺寸和复杂度的student(portable)网络。
实验结果表明,作者所提出的DAFL(Data-Free Learning)方法在MNIST、CIFAR、CelebA等数据集上具有很好的性能,相对于KD(Knowledge Distillation)等方法具有更好的实用性。
神经网络压缩算法目前根据有无原始数据的参与分为两种。
Data-Driven类Hinton等提出了一种知识蒸馏方法(knowledge distillation,KD),该方法提炼出经过预训练的teacher网络的信息,以学习portable(student)网络。Denton等利用低秩分解(SVD)来处理全连接层的权重矩阵。Han等采用修剪、量化和霍夫曼编码来获得紧凑的深度CNN,使之具有较低的计算复杂度。
Li等进一步提出了一种特征模拟框架,以训练有效的卷积网络进行目标检测。上述方法在大多数据集上取得了良好的效果,但如果没有原始训练数据集,则很难应用。
Data-Free类Lopes等利用原始训练数据集记录的“元数据”(meta-data)(例如,每层激活的平均值和标准偏差),但大多数训练过的CNN很难提供此数据。
Srinivas和Babu提出在完全连接的层中直接合并相似的神经元来压缩网络,但这很难应用于未详细说明结构和参数信息的卷积层和网络。实际上,由于如涉及隐私、传输限制等因素,原始训练数据集和详细的网络结构、参数等很难获取,这就意味着上述两类方法难于应用。
GAN有一个生成器和一个判决器,给定的teacher网络同时作为GAN的判决器,不对其进行任何更新。Random Signals(随机信号)输入到GAN的生成器,变换为模拟的原始数据,由判决器进行识别。生成器生成一组数据后,再通过KD方法对student网络的参数进行更新。
作者设计的学习过程可以分为两个训练阶段。首先,将teacher网络作为固定判决器。使用上述的L_Total损失函数,优化生成器G。其次,我们利用KD方法将知识直接从teacher网络转移到student网络。使用KD的损失L_KD来优化具有较少参数的student网络。在MNIST、CIFAR等数据集上的实验表明,作者所提出的DAFL方法可获得性能较好的portable网络,显示了一定的实用价值。