Private Model Compression via Knowledge Distillation 论文笔记

  • 摘要

  对智能移动应用的需求飙升需要在移动设备上部署强大的深度神经网络(DNN)。然而,DNN的出色性能众所周知地依赖于越来越复杂的模型,而这反过来又与计算开销的增加相关,远远超过了移动设备的容量。更糟糕的是,应用服务提供商需要收集和利用包含敏感信息的大量用户数据来构建复杂的DNN模型。在公共移动设备上直接部署这些模型会带来过高的隐私风险。为了从没有容量和隐私问题的设备深度学习中受益,我们设计了一个私有模型压缩框架RONA。遵循知识蒸馏范式,我们联合使用提示学习,蒸馏学习和自学习来训练紧凑而快速的神经网络。从繁琐的模型中提取的知识被自适应地限制并且被小心地扰乱以实施差异隐私。我们进一步提出了一种优雅的查询样本选择方法,以减少查询次数并控制隐私丢失。一系列实证评估以及Android移动设备上的实施表明,RONA不仅可以有效地压缩繁琐的模型,还可以提供强大的隐私保障。例如,在SVHN上,当保证有意义的(9.83; 10-6) - 差异隐私时,由RONA训练的紧凑模型可以获得20倍压缩比和19倍加速,只有0.97%的准确度损失。

  • 简介

  近年来,各个领域的深度学习取得了令人瞩目的突破。 由于大量数据和计算资源的易用性,定制的深度学习模型获得了前所未有的性能,超过了传统机器学习算法的许多记录。

  另一方面,深度学习的重大进步因其依赖于需要大量数据来学习其数百万个参数的繁琐模型而臭名昭着。 这一主要缺点限制了深度学习应用程序的大规模部署,特别是深度神经网络在智能手机,可穿戴设备和医疗监视器等移动设备上的可部署性(Cao等人2017; Sun等人2017)。 移动应用服务提供商面临着在其移动应用中广泛采用DNN的一系列挑战。

  容量瓶颈尽管移动芯片和移动电池取得了巨大进步,但移动设备的容量有限性仍然存在固有的瓶颈,使得资源要求苛刻的应用仍然受限制(Wang等,2018)。 具有数百万个参数的现代DNN通常需要在计算受限的设备上执行禁止的运行时间。 更糟糕的是,执行过程中的大规模浮点运算加剧了处理芯片的负担,并且很容易控制整个系统的能耗,从而扩大了DNN与移动设备可部署性之间的鸿沟。 到目前为止,很难在移动系统上直接采用强大的DNN(Lee 2017)。

  数据隐私和智力盗版问题开发强大的预测性DNN需要丰富的数据。 可访问的数据越多,DNN就越有效和强大。 在实践中,应用服务提供商通常收集和利用来自用户的大量数据,这些数据通常包含敏感信息,以构建其复杂的DNN模型。 直接发布由用户数据训练的这些模型存在潜在的隐私问题,因为攻击者可以恢复公共模型中编码的敏感信息(Abadi等人,2016)。 在医学等许多领域直接分享个人数据或模型是非法的(Claerhout和DeMoor,2005)。 除了数据隐私之外,由于智能盗版,发布DNN模型可能会侵犯应用服务提供商的权利。 对于应用服务提供商来说,分享他们有价值且高度调整的模型有时并不吸引人(Osia等人2017)。

  为了在移动设备上部署有效的DNN,学术界和工业界提出了许多模型压缩方法,其中知识蒸馏起着关键作用(Bucilua,Caruana和Niculescu-Mizil,2006)。 在知识蒸馏中,嵌入在繁琐模型中的知识(称为教师模型)被提炼出来以指导训练称为学生模型的较小模型。 学生模型具有不同的体系结构和较少的参数,但可以通过模仿繁琐模型的行为来实现相当的性能。 其他压缩方法,如量化和低秩分解(Han,Mao和Dally 2016;Howard等人2017)是知识蒸馏的补充,也可用于进一步缩小学生模型的大小,这超出了 这篇报告。 尽管压缩率令人鼓舞,但目前的知识蒸馏方法还没有完全解决隐私问题。

  在本文中,我们介绍了严格的差异隐私标准(Dwork 2011),并设计了一个名为RONA的隐私模型压缩框架,以克服上述挑战并促进在移动应用中采用深度学习。

  建议的框架中考虑了模型压缩和数据隐私。我们假设应用服务提供商已根据敏感数据和公共数据训练了一个功能强大的繁琐模型。根据知识蒸馏范例,RONA仅使用公共数据来训练小型学生模型,其特征表示被鼓励与繁琐模型的特征表示类似。然后将小型学生模型发布给移动应用程序用户,同时由应用程序服务提供商保留繁琐的模型以及敏感数据。直观地,保留了隐私,因为学生模型的训练不依赖于敏感数据;繁琐的模型和敏感数据都不会暴露给公众或对手可以访问。然而,纯粹的直觉是不够的。为了提供可证明的隐私保障,我们会仔细扰乱从繁琐模型中提取的知识,以满足差异隐私的标准。

  联合压缩大型DNN,保护隐私和控制模型性能损失是一个非常重要的问题。 提出了一套新方法来解决这个问题。 我们的主要贡献有四方面:

  促进移动应用程序深度学习的框架我们考虑了在移动应用中采用DNN的关键约束,即隐私,性能和开销,并设计了一个私有规划框架,用于通过知识蒸馏训练紧凑神经网络。 据我们所知,提出的RONA是第一个将知识蒸馏应用于具有有意义隐私保证的压缩模型的框架。

  差异化的隐私知识蒸馏为了在理论上保证隐私,我们提出了一种新的机制来从差异隐私的意义上扰乱知识蒸馏。 与现有的逐个样本查询模式不同,我们提出的机制以批处理模式进行查询以减少查询数量。 由教师模型响应的批量损失被自适应范数限制,然后仔细扰动以保护隐私。

  一种用于知识蒸馏的查询样本选择方法隐私损失取决于查询的数量。 为了控制学生模型对教师模型的访问,应减少知识蒸馏期间使用的样本数量。 因此,我们提出了一种查询样本选择方法来选择样本子集,使得在子集上提取的知识在整个样本中具有竞争性。

  彻底的实证评估我们通过使用广泛用于知识蒸馏工作的三个标准基准来评估所提出的RONA。 结果证明了上述新方法的有效性,通过严格的隐私保证为小型模型的训练带来了显着的改进。 我们的代码在https://github.com/jwanglearn/Private_Compress上开源。

  •  初步及相关工作

  深度神经网络压缩。为了将DNN压缩到移动设备中,DNN压缩引起了人们的极大关注。压缩方法可大致分为四类:参数共享,网络修剪,低秩分解和知识蒸馏(Han,Mao和Dally 2016; Howard等人2017; Chen等人2017)。前三种方法主要尝试减小给定模型的size,而不会显着改变模型的体系结构。最后一个,知识蒸馏,利用繁琐模型捕获的知识来指导教师 - 学生范式中较小模型的训练(Bucilua,Caruana和Niculescu-Mizil,2006)。 Hinton等人 (Hinton,Vinyals和Dean 2014)使用教师生成的分类概率作为训练学生模型的软目标。罗梅罗等人(Romero等人,2015)通过训练学生模仿教师的中间代表来扩展这项工作。基于这两项工作,Chen等人设计了一个压缩物体检测模型的框架(Chen et al.2017),试图解决阶级失衡问题。现有的模型压缩方法很少考虑到隐私问题。在训练期间可以根据需要多次查询教师模型,如果我们想要保护隐私,那么这是不可行的。

  差异私人深度学习。 由于尊重隐私的迫切需要,隐私保护数据分析已成为一个新兴的话题。 一个最先进的隐私标准是差异隐私(Dwork 2011),它提供了可证明的隐私保障。

  通常,除了仅一个数据项外,d和d是相邻的输入。 参数ε表示隐私预算(Dwork 2011),控制M的隐私损失。 较小的值可以强制实施更强大的隐私保障。

   对于确定性函数f,高斯机制由下式给出,

 

   差异化隐私提供有保障的隐私,不受任何算法的影响(Dwork 2011)。它越来越多地被用作隐私的标准概念(Beimel等人,2014)。阿巴迪等人(Abadi等人,2016年)提出了一种差异化的隐私SGD,并设计了一种跟踪隐私损失的新技术。 Papernot等(Papernot等人,2017; 2018年)提出了逐个样本模式下的隐私知识转移的一般框架,其中训练学生预测教师中噪声投票产生的输出。该框架仅使用输出标签来训练学生,不能用于有效地压缩DNN。除了隐私训练,Triastcyn等人(Triastcyn和Faltings 2018)在GAN的鉴别器中添加了高斯噪声层以生成差分隐私数据。最近,王等人(Wang et al.2018)设计了一个跨移动设备和云服务器的隐私推理框架,以使移动设备免于复杂的推理任务。但是,这个框架在很大程度上取决于网络的可访问性。目前很少有工作应用差异隐私和模型压缩来实现设备上的深度学习以及保护隐私。

  • 提出的框架

  RONA框架在本节中介绍。 我们首先概述RONA。 然后我们详细介绍了三个关键模块:(1)基于知识蒸馏的模型压缩,(2)差异隐私知识扰动,以及(3)查询样本选择。

  • 整体结构

  RONA的概述如图1所示。为了更好地捕捉繁琐的教师模型中的知识,我们共同使用提示学习(Romero等人2015),蒸馏学习(Hinton,Vinyals和Dean 2014), 和自学习训练小的学生模型。 同时,提示损失和蒸馏损失都受到与差异隐私一致的随机噪声的严格限制和扰动。 由于对教师模型的更多查询导致更高的隐私损失,因此在RONA中设计了优雅的查询样本选择方法以从整个公共样本中选择样本的子集。

  敏感数据仅用于训练未向公众发布的复杂教师模型。 很明显,由于学生模型无法访问隐私,因此敏感数据不会受到隐私的明显侵犯。 此外,由教师模型产生的信息,即提示损失和蒸馏损失,受到附加噪声的干扰。 在发布之前,所有与敏感数据和教师模型相关的信息都是隔离的或受到良好保护的。

  • 模型压缩

  为了学习可在移动应用中采用的紧凑且快速的DNN模型,我们提出了阶段性知识蒸馏方法。 这种方法使小型学生模型不仅可以捕获ground truth标签中的信息,还可以捕获从繁琐的教师模型中提取的信息。

  提示学习阶段:我们首先教授学生模型如何从输入数据中提取特征。 教师模型的中间表示用作指导学生模型训练的提示。 类似地,从教师指导中学习的引导层作为学生模型的隐藏层。 我们通过最小化L2损失函数来训练学生模型的第一个隐藏层:

  

  其中g(·; Θg)表示带有参数Θg的引导层的学生模型,xq表示查询样本,zh是教师在查询样本上的提示层的输出。 由于引导层的比例通常不同于提示层的比例,我们在引导层的顶部引入适应层以匹配引导层和提示层的比例。 适应层由r(·; Θa)表示,其中参数Θa在提示学习期间被学习。 如果引导层和提示层都是完全连接的层,我们添加一个完全连接的层作为适配层。 如果引导层和提示层都是卷积的,我们添加1X1个卷积来减少参数的数量。

  引入提示学习来教学生如何提取一般特征。 它使学生模型缺乏选择更高隐藏层作为引导层的灵活性。 因此,在我们的案例中,我们选择学生的中间层作为引导层。

  蒸馏和自学阶段:我们在这个阶段通过蒸馏和自学习来训练整个学生模型。 让zt成为查询样本上教师最终隐藏层(也称为logits)的输出,我们使用软化概率(Hinton,Vinyals和Dean 2014)P t作为知识:P t = softmax(zt /T ),温度参数T通常设置为1.更高可以使教师模型生成软化概率,使得正常概率接近零的类不会被忽略。 软化概率包含关于不同类之间潜在关系的知识。 通过最小化查询样本的蒸馏损失,训练学生模型以学习这些知识:

  

  其中H是交叉熵,Θs是学生模型的参数。 这里,Ps是学生在查询样本xq上的软化概率,P s = softmax(zs /T),其中zs是学生的logit。

  与传统知识蒸馏的使用不同,我们引入自我学习过程,其中所有公共样本的ground truth标签用于通过最小化自我损失来训练学生模型:

 

  其中xp和yp分别是公共样本和ground truth标签,Ps是学生模型生成的正常概率,T= 1。

  出于隐私保护的原因,应控制蒸馏学习时期的数量(详见下一节)。 尽管如此,自学习并不使用与敏感数据相关的任何信息,因此它不会聚合隐私损失。 自学习时期的数量可以任意大。 将蒸馏损失和自身损失结合起来作为训练的一般损失是不合适的。 为了共同应用这两种学习方法,我们模仿真实学生从老师那里学到的方式。 学生模型首先自学,以最大限度地减少自我损失。 然后,它选择一些样本来查询教师模型,并通过最小化蒸馏损失从教师学习。 此过程重复直到收敛或超出隐私预算。 我们的实验结果表明,自学习不仅可以加速学生模型的训练,而且可以使蒸馏学习避免局部极小。

  算法1提出了两阶段知识蒸馏。 学生模型以逐批模式查询教师模型。 在提示学习期间,学生模型学习提取一般特征。 因此,我们从公共样本中随机选择查询样本,而不是使用建议的样本选择方法。

  • 隐私保护

  为了实施理论隐私保证,我们将随机扰动注入与敏感数据相关的信息中并由学生模型使用,即提示损失和蒸馏损失。 算法2概述了隐私保护功能隐私消毒。 对于每个批次损失L(i),我们首先将批次损失限制在阈值B,确保灵敏度不大于B; 然后我们将高斯噪声注入有界批量损失。

  

  过大的B会产生过大的噪音,而过小的B会导致批次损失的过度截断,这两者都导致消毒的批次损失的效用低。 为了解决这个问题,我们建议使用自适应范数界。 特别地,我们基于公共数据训练辅助教师模型。 我们在训练期间不断监控辅助教师模型与学生模型之间的辅助批量损失,并将辅助批次损失的平均值设置为标准界限。 以这种方式,标准界限B在训练期间自适应地改变。 实证研究表明,这种自适应规范界限带来了相当大的性能提升。 由于规范界限与敏感数据无关,因此不会通过削减批量损失来消耗隐私预算。

  • 查询样本选择

  样本选择问题可以归类为主动学习问题。 与传统设置不同,传统设置中逐个选择样本进行查询,我们提出的学生 - 教师查询以批处理模式工作。 我们尝试选择一组查询样本,以便查询样本和整个公共样本的蒸馏知识尽可能接近。 在形式上,我们尽量减少查询样本的蒸馏损失与整个公共样本之间的差异:

  

  因为我们没有P t的先验知识,所以上述优化目标是不易处理的。 相反,我们尝试优化此目标的上限,如下所示。

  • 实验评估

  框架RONA基于三个流行的图像数据集进行评估:MNIST(LeCun等人1998),SVHN(Netzer等人2011)和CIFAR-10(Krizhevsky和Hinton 2009)。 我们首先使用CIFAR-10来检查不同参数的性能影响以及RONA中提出的技术的有效性。 然后,我们基于MNIST,SVHN和CIFAR-10验证隐私保护和压缩性能。实验详细信息与代码一起报告在GitHub中。

  • 参数的影响

  我们在这组实验中使用CIFAR-10。 CIFAR-10包含属于10个等级的50K训练样本。 我们随机选择80%的训练样本作为公共数据,而重置20%作为敏感数据。 我们通过标准化每个样本来预处理数据集。 广泛使用的卷积深度神经网络,Conv-Large(Laine 2017; Park等人,2017),在公共数据和敏感数据上被预先训练为繁琐的教师模型。 修改后的Conv-Small网络用作紧凑型学生模型,将根据RONA进行训练。 紧凑型学生模型的性能受多个参数的影响。 我们单独检查它们,保持其他不变,以显示它们的效果。

  提示学习epochs从图2(a)可以看出,当提示学习时期上升时,学生模型的准确性增加。 但随着提示学习时期变大,增加减少,特别是当RTd,即蒸馏学习的总时期很小时。 由于提示学习消耗了隐私预算,因此设置一个过大的提示学习时间值是不合适的。

  蒸馏学习的迭代蒸馏学习的总时期由迭代轮次R和每次迭代的时期Td确定。 通常,如图2(b)所示,较大的RTd值带来了更有效的学生模型,因为学生模型可以从教师那里学到更多知识。 当RTd固定时,R应设置为中等值。

  批量大小图2(c)显示学生的表现随批量增加而下降。 在RONA中,学生以逐批模式查询教师。 较小的批量大小表示教师将被查询更多次,因此隐私损失会很高。为了在性能和隐私之间取得平衡,我们在实验中将批量大小设置为512。

  噪音当噪声标度适中时,学生模型受益于附加噪声,如图2(d)所示。 由于DNN通常会受到过度拟合问题的影响,因此规范约束和额外噪声在训练期间充当正规化角色。 即使当噪声标度相对较大(σ= 20)时,精度降低也小于1%。 此属性令人鼓舞,因为可以注入更多噪音,以便为每个查询提供更强大的隐私保障。

  查询样本数图2(e)中的实验结果表明,当有更多查询样本可用时,学生的表现会上升。 尽管如此,更多查询样本意味着更高的隐私损失。 我们工作中提出的查询样本选择方法只需使用20%的公共样本作为查询样本即可获得不错的性能。 我们将其与其他三种选择方法进行比较:随机,margin(Wang et al.2017)和多样化(Wang和Ye 2013)。 图2(e)展示了我们提出的查询样本选择方法的优越性。

  自适应范数界限。我们绘制了图2(f)中蒸馏和自学习阶段的测试精度。 与预先设定的范数界限训练相比,自适应范数约束方法带来了显着的性能提升。 它极大地加速了训练过程,以更少的查询时期获得更高的准确性(即,更少的隐私损失)。 此外,我们可以发现自学习也有助于训练加速。 在这个阶段的开始阶段,通过自学习可以快速提高准确性,而不会消耗隐私预算。

  • 隐私保护

  我们验证了MNIST,SVHN和CIFAR-10的隐私保护。 MNIST和SVHN是分别由60K和73K训练样本组成的数字图像数据集。 我们随机选择40%SVHN训练样本和MNIST训练样本作为公共数据。 对于MNIST,我们使用修改后的Conv-Small网络作为教师。 对于SVHN,我们使用Conv-Middle网络作为教师。

  RONA在MNIST和SVHN上的准确度达到98.64%和92.90%,(7.68;10-5)和(7.03;10-6)差异隐私。 它优于(Papernot et al.2017)的结果,其在(8.03;10-5)保证MNIST和(8.19;10-6)保证SVHN的准确率达到98.10%和90.66%。 它与(Papernot et al.2018)的最新结果相当,在(1.97;10-5)保证MNIST和(4.96;10-6)保证SVHN达到98.5%和91.6%的准确率,但是使用更好和更大的基线网络。 在CIFAR-10上,我们获得了81.69%的准确率(8.87;10-5)隐私,其在(8.00;10-5)隐私方面的表现优于73%(Abadi等人2016)。 RONA的性能甚至优于最新的基于云的解决方案,该解决方案在CIFAR-10上的准确率达到了79.52%(Wang et al.2018)。

  我们使用三个数据集上的不同隐私预算来验证性能。 图3表明,三个数据集的准确性通常随着隐私预算的增加而增加。 由于这项工作中提出的技术,即使知识受到强大隐私的保护,学生仍然可以从知识蒸馏中受益

  在上述实验中,我们从原始训练样本中随机选择公共数据。 我们在MNIST上进一步测试RONA的条件非常困难,我们将数字6和9的所有训练样本视为敏感数据。 当某些特定类型的样本高度敏感时,这种数据掩蔽模拟了实际可能的偶然性。 对于学生模型,6和9是从未见过的神话数字。 如表1中所列,在没有老师的知识的情况下,学生无法识别6和9,准确度为0.即使学生从未见过6和9,RONA在训练中有合理的隐私损失可以显着提高学生在6和9的准确度

  • 压缩性能

  我们随机选择80%的训练样本作为公共数据,以验证三个数据集的压缩性能。 对于MNIST,SVHN和CIFAR-10,我们分别执行(9.60;10-5),(9.83;10-6)和(9.59;10-5)差异隐私。 为了检查移动设备上的运行时间,我们在配备ARM Cortex-A53@2.3GHz和Cortex-A53@1.81GHz的HUAWEI HONOR 8上部署这些DNN,以连续处理100个图像。

  表2中列出的结果表明,尺寸较大的模型可以获得更好的性能。 在所有三个数据集中,尽管使用了更少的容量和更少的训练数据,但由RONA训练的学生模型获得了与教师模型相当的准确度。 在MNIST上,学生达到15倍压缩比和11倍加速,精度降低仅0.2%。 在SVHN上,学生模型获得的结果略差(<1%),而比教师模型的结果参数要少20倍,运行时间要少19倍。 在CIFAR-10上,精度降低不到2%,而型号尺寸小6倍。 上述结果表明,RONA可以以可接受的精度损失私下压缩大型模型。

 

 

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/dushuxiang/p/10421861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模型压缩是指通过一系列技术手段来减小神经网络模型的尺寸和计算复杂度,以便在资源受限的设备上进行部署和推理。其中,知识蒸馏是一种常用的模型压缩方法之一。知识蒸馏的过程分为两个阶段:原始模型训练和精简模型训练。在原始模型训练阶段,训练一个复杂的"Teacher模型",它可以由多个分别训练的模型集成而成,对输入进行分类并输出相应类别的概率值。在精简模型训练阶段,训练一个参数量较小、模型结构相对简单的"Student模型",它同样可以对输入进行分类并输出相应类别的概率值。通过将"Teacher模型"的知识转移到"Student模型"中,"Student模型"可以在尺寸和计算复杂度上得到压缩,同时保持较高的性能。除了知识蒸馏,模型压缩的其他方法还包括网络剪枝、量化和低秩分解等。另外,神经网络二值化是一种更为极致的模型压缩方法,它将所有的权值用二进制数表示,从而大大减小模型尺寸。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [模型压缩(Model compression)](https://blog.csdn.net/weixin_38072029/article/details/111357992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [深度学习网络压缩模型方法总结(model compression)](https://blog.csdn.net/weixin_30617737/article/details/98228382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值