查看原文
其他

ICCV 2019 | 无需数据集的Student Networks

CSDN App AI科技大本营 2019-11-27



译者 | 李杰 
出品 | AI科技大本营(ID:rgznai100)



本文是华为诺亚方舟实验室联合北京大学和悉尼大学在ICCV2019的工作。


摘要


在计算机视觉任务中,为了将预训练的深度神经网络模型应用到各种移动设备上,学习一个轻便的网络越来越重要。当我们可以直接访问训练数据集时,现有的深度神经网络压缩和加速方法对于训练紧凑的深度模型是非常有效的,但是现实情况却是,有了隐私保护,法规政策等,数据集的回去越来越困难,为此,本文提出了一种利用生成对抗网络(GANs)训练高效深度神经网络的新框架DAFL(Data-Free Learning)。


该框架无需训练数据集,具体来说,将蒸馏模型中预先训练好的教师网络充当GAN中的判别器的角色,生成器的任务是生成让判别器响应最大的样本,然后利用生成的数据和教师网络,训练出模型尺寸较小、计算复杂度较低的高效网络。实验表明,在CIFAR-10和CIFAR-100中,利用零数据训练的DAFL框架分别达到了92.22%和74.47%的正确率,同时在CelebA中,也获得了80.56%的正确率,证明了DAFL的有效性。


引言


  • CNNs的冗余性


CNNs在计算机视觉中有广泛的应用,但是好的性能表现通常依赖于很深,很宽的网络,这种设计模式对训练提出了高要求,有大量的参数数据需要进行处理,这种情况下,想将网络应用到诸如自动驾驶,边缘计算等内容上,几乎是不可能的。虽然这些预训练好的神经网络有许多参数,但是研究表明,在给定的神经网络中,丢弃85%以上的权值并不会明显损害神经网络的性能,这说明这些神经网络存在显著的冗余。


  • 数据的难获得性


针对CNNs的冗余,有很多压缩和加速算法,但是这些算法都是基于丰富的训练数据的支撑,容易忽视的一个点是,由于隐私和传输限制,训练数据集在现实应用中通常是未知的,例如,用户不想让自己的照片泄露给别人,而且一些训练数据集太大,无法快速上传到云端。


  • Data-Free Learning


本文聚焦无训练数据的情况,提出了一种不需要原始训练数据集的深度神经网络压缩新框架DAFL。具体来说,将给定的大型的教师网络作为生成对抗网络中的判别器部分,在对抗生成过程中,通过从网络中提取信息,建立一个生成网络来代替原来的训练集,从而为学习性能可接受的小网络提供参考。


无数据驱动的学生网络学习


现有的轻量级网络学习方法可分为两类:数据驱动方法(Data-Driven Network)和无数据(Data-Free Network)方法。数据驱动的代表性算法有两个解决思路,一是消除减少原模型中的冗余共结构和参数;二是蒸馏模型,利用教师网络训练学生网络,但是这两种方法都依赖大量训练数据的支撑,一旦数据没有,很难达到预期效果。这时候,就显示出无数据方法的重要性了。本文提出一种新的无数据框架,通过在师生学习范式中嵌入一个生成网络来压缩深度神经网络。


  • 教师网络和学生网络的知识蒸馏


知识蒸馏模型将强大网络中的知识信息传输到小网络中,期望得到一个体积小,正确率高的网络。定义蒸馏模型中的教师网络NTN_{T} 和学生网络 Ns{,对学生网络的优化可以通过下列损失函数表示:



其中,Hcrosscross} 表示交叉熵函数,ys{S和 yT分别表示学生网络和教师网络的输出,可以通过下式得到:

 


  • 利用GANs生成训练样本


为了在没有原始数据集的情况下学习一个轻量级网络,本文利用GAN生成训练样本。生成对抗网络(GANs)被广泛应用在样本生成领域。GANs包括两部分,一个生成器网络G和一个判别器网络D。G的作用是生成数据,D的作用是判别数据是真实图片数据还是生成图片数据。详细说,GANs的流程可以这样表示:输入一个噪声,z,送入生成器网络G,得到生成的数据x,对于任意一个GANs来说,损失函数可以用下式表示:


 

在对抗过程中,生成器G根据生成器产生的训练误差持续进化,对G的优化可以看做是下列问题的优化:


 

其中,D*是固定最优的判别器。


通过描述GANs的训练流程,我们可以发现生成器很适合用来生成训练数据,但是根据上列GANs的优化函数,判别器的训练需要真实图片,这显然与零样本不相符。


近来的工作已经证明,判别器D可以样本中学习表示的层次,这说明判别器机制有在其它计算机视觉任务中的泛化能力。本文提出将一个深度神经网络直接作为判别器D,这样,生成器G就可以直接进行优化而不用和D同时进行训练,即在训练G时,原网络D的参数是固定的。此外,原始的GANs中,判别器的目的是判定图片是真实还是生成的,但是神经网络是进行分类的,如果用一个训练好的神经网络作为判别器,输出是图像类别,而不是图像的真实性。这样一来,原始GANs中的损失函数也不再适用,需要设计几个新的损失函数。


在图像分类任务中,深度神经网络在训练阶段利用交叉熵作为损失函数,监督分类网络生成与真实标签相同的结果,在多分类任务中,网络输出要接近一个one-hot向量,只有一个类别的概率为1,其余均为0。


one-hot示例


具体过程为:


给定生成器G,教师网络 NT,随机噪声{ z1,z2,……,zn},生成器生成的图像{ x1,x2,……,xn},将这些生成图像送到教师网络中,得到输出结果{ y1,y2,……,yn},然后通过下式计算预测类别标签:

 


我们定义三个子损失来得到最终的损失函数。


  • 交叉熵损失Lcross


如果G生成的图像与教师网络的训练数据分布相同,那么它们的输出也应该与训练数据具有相似的输出。基于此,引入了one-hot loss,激励教师网络对生成器生成图像的输出接近one-hot向量,这样倒逼生成器生成与原始训练集相似的图片。

 


其中, Hcross是交叉熵函数, yi是教师网络预测输出,ti是真实标签。通过one-hot loss,我们期望生成的图像能够以较高的概率被教师网络划分为一个特定的类别。


  • 特征激活损失La


除了教师网络的预测类标签外,卷积层提取的中间特征也是输入图像的重要特征,不同卷积层对应了不同的语义。由于教师网络中的卷积过滤器已经被训练来提取训练数据中的固有模式,因此如果输入的图像是真实的,而不是一些随机的向量,特征图往往会收到更高的激活值。因此,定义教师网络最后一层的提取特征 xi为 fi,定义一个激活损失函数。



其中,||· ||1是l1范数。加负号的原因是想让尽可能多的f被激活。


  • 信息熵损失Linfo 


为了简化深度神经网络的训练过程,每一类训练实例的数量通常是平衡的,以MNIST为例,有60000图片,被分为10类,每一类6000张。1948年,香农提出了“信息熵”的概念,解决了对信息的量化度量问题。通常,一个信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之不确定性就大。本文提出利用信息熵损失来衡量生成图像的类平衡性。


具体来说,给定一个概率向量{p1,p2,......,pk},信息熵会用来衡量信息的混乱程度。p的信息熵计算公式为:


 

H(p)的值表示p携带的信息量,当所有的变量取值为1/k时,取得最大值。这里涉及到信息熵最大值问题,感兴趣的同学可以查阅详细信息,最终证明,当所有概率取值相同且为1/k时,信息熵最大。


我们把信息熵的概念迁移到图像生成中来。给定一组教师网络的输出向量,{ y1,y2,……,yn},对于每一类图像的生成概率我们可以表示为:

 


基于此,我们定义信息熵损失函数如下:

 


当损失取得最小值的时候,向量中的每一项都相等且等于 1/k,这说明,生成器G可以以大致相同的概率生成每个类别的图像。因此,最小化生成图像的信息熵可以得到一组类别均衡的图像。


  • 总损失函数


基于上述三个子损失函数,我们可以得到最终的损失函数:


 

其中,α和 β是平衡三个任务的超参数,通过最小化上述函数,最优生成器G可以生成与之前用于训练教师网络的训练数据分布相似的图像。本文提出的方法可以直接模拟训练数据的分布,更灵活、高效地生成新图像。


  • 优化算法


如下图所示,DAFL算法可以分为两个步骤。

 


首先,将一个预训练好的固定教师网络充当生成对抗网络中的判别器,利用上文中的总损失函数 Ltotal,优化了一个生成器G来生成与原始训练图像分布相似的教师网络图像;其次,利用知识蒸馏的方法直接将知识从教师网络转移到学生网络。对学生网络的优化方法,是利用LKD损失函数:

 


整体流程如下图所示,通过从给定的教师网络中提取有用信息,训练生成器逼近原始训练集中的图像。然后,利用生成的图像和教师网络有效地学习可移植的学生网络。




论文实验


  • 在MNIST数据集上的实验


首先在MNIST数据集上进行实验,MNIST数据集由10个类别(从0到9)的28×28像素图像组成,整个数据集包括6万张训练图像和1万张测试图像。为了选择超参数,从训练图像中选取10,000张图像作为验证集。然后,在全部60,000张图像上训练模型,以获得最终的网络。为了便于比较,设置了两种结构,一种是基于卷积(用LeNet-5作为教师网络,用比教师网络参通道数少一半的LeNet-5-HALF作为学生网络),另一种是基于全连接层(教师网络是有两个隐层,每个隐层1200个节点的HiltonNet,学生网络是有两个隐层,每个隐层800节点的HiltonNet)。我们发现,学生网络的参数量明显少于教师网络。在实验中,设置损失函数中的超参数 α=0.1,β=5,训练200轮。


实验结果如下图所示,在没有原始数据的情况下,DAFL的学生网络分别取得了98.2%和97.91%的正确率,这些数据与利用原始数据训练的教师网络性能相近,但是极大简化了结构和参数量,证明了DAFL的有效性。




  • 在CIFAR数据集上的实验


在CIFAR上同样有很好的性能表现,不再过多赘述。




  • 结果可视化


(1)生成图可视化对比


在研究了DAFL方法的有效性之后,进一步对MNIST数据集进行了可视化实验。如下图所示,(a)图是MNIST数据集上的图像,(b)是生成器生成图像。通过损失函数深度挖掘教师网络的信息,生成了与训练图像较为相似的图像,这表明生成器能够以某种方式学习数据分布。



(2)卷积核可视化


如下图所示,可视化了LeNet-5教师网络和学生网络的过滤器。虽然学生网络是在没有真实数据的情况下训练的,但是通过所提出的方法学习的学生网络的卷积核仍然与教师网络的卷积核相似。可视化实验进一步证明,该生成器可以生成与原始图像模式相似的图像,并且利用生成的样本,学生网络可以从教师网络获取有价值的知识。

 

结论


传统的方法需要原始的训练数据集来微调压缩后的深度神经网络,使其具有可接受的精度。然而,由于一些隐私和传输限制,给定深度网络的训练集和详细的体系结构信息通常是不可用的。在本文中,我们提出了一个新的框架来训练一个生成器来逼近原始数据集而不需要训练数据。然后通过知识蒸馏方案有效地学习可移植网络。在分类数据集上的实验表明,该方法能够在不需要任何训练数据的情况下学习可移植的深度神经网络并取得很好的性能。


Paper link:

https://arxiv.org/abs/1904.01186


Code link:

https://github.com/huawei-noah/DAFL


(*本文为AI科技大本营投稿文章,转载请微信联系 1092722531



精彩推荐




12月6-8日,深圳!2019嵌入式智能国际大会,集聚500+位主流AIoT中坚力量,100+位海内外特邀技术领袖!9场技术论坛布道,更有最新芯片和模组等新品展示!点击链接或扫码,输入本群专属购票优惠码CSDNQRSH,即可享受6.6折早鸟优惠,比原价节省1000元,学生票仅售399元



推荐阅读

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存