知识迁移在深度学习上的实现与优化文献综述

 2022-09-26 05:09

文献综述(或调研报告):

深度神经网络在计算机视觉、语音识别等领域取得了巨大成功。然而, 目前的深度神经网络模型需要消耗大量的计算资源和存储空间, 限制了在移动终端和车载设备等低存储、低延迟需求环境下的应用。因此, 需要在保证准确率的前提下对神经网络进行压缩、加速和优化。文章[8]对此作出了总结,并说明了知识蒸馏几种方法,主要涉及[2][3][4][5]四篇论文。

虽然人们对知识蒸馏最深的印象来自论文[2]的作者Hinton,是他将知识蒸馏发扬光大,但最早提出知识蒸馏这一想法的其实是论文[1]的作者Caruana。

一般来说,深层的神经网络,所能实现的函数比浅层网络更复杂,准确性越高,但是深层网络的可移植性非常的差,构造非常的复杂。在Caruana的论文[1]中,他基于对深层网络的功能是否可以由浅层网络实现的想法进行了研究。他采用了一种模型压缩(model compression)的方法模拟深度网络并用其训练浅层网络,即先训练一个复杂的优秀的神经网络,然后利用该深度网络对浅层网络进行训练(他使用教师模型的回归对数值的L2损失函数代替了传统深度模型训练所用的cross-entropy函数进行模型学习)。新的浅层模型的准确率能够达到和深度模型几乎一样的效果,而用原始数据对相同的浅层网络进行训练得到的结果远远不如深度模型的效果。他的实验证明了浅层网络也拥有较好的表达能力,之所以浅层网络无法直接从原始数据得到这样的一个解是因为其结构简单,所能实现的算法无法从原始的数据集上发现某种规律(欠拟合),而深层模型可以找到,并将其传输给浅层模型。

在Caruana的基础上,Hinton提出了一种新的训练方法[2],将知识从复杂模型蒸馏出来。神经网络通常使用“softmax”输出层生成类概率,Hinton在此基础上添加了一个温度参数T,以得到更为平滑的分类概率,这也是蒸馏这一说法的由来。在[2]中,Hinton在MNIST上进行了一系列的实验后发现,通过将模型集合中的知识提炼到单个模型中,我们可以显著改善在被大量使用的商业系统的声学模型。Hinton还介绍了一种由一个或多个完整模型和许多学会区分完整模型混淆的细粒度类的专业模型组成的新型集合。与专家混合模型不同,这些专业模型可以被快速并行地训练。这一论文的诞生,这极大的缩减了学者们训练网络所耗费的时间。

深度作为深度神经网络得以发挥作用的基石,在Hinton等学者的论文中并没有针对这一概念进行研究。在Adriana Romero的论文[3]中,他针对深度提出了新的知识蒸馏方法,旨在蒸馏一个更深但是复杂度比较小的网络。由于教师模型与学生模型的深度不同,直接训练会比较困难,Romero提出通过在中间层加入loss的方法来进行训练,这样就可以训练层数更深的学生模型。Romero发现这些学生模型可以更好地推广教师模型的功能或比教师模型运行得更快,具体的性能可以由选择的学生模型能力控制。例如,在CIFAR-10上,Romero发现具有近10.4倍参数的深度学生网络优于更大,更先进的教师网络。

与别的学者把大模型的输出当成小模型要去拟合的目标不同,Junho Yim认为小模型不应去拟合大模型的输出,而应拟合大模型与小模型层与层之间的关系[4],并认为这才是真正要转移和蒸馏的知识。在他的实验中,先根据大模型的 FSP 矩阵调整小模型参数,使得小模型层间关系也和大模型的层间关系类似;然后直接用原损失函数(如交叉熵)继续精调小模型参数。Junho Yim独特的想法训练出的学生DNN优化得比原始模型快得多,并且优于原深度神经网络。他还发现学生DNN可以从在不同任务中训练的教师DNN学习提取的知识,并且学生DNN优于从头开始训练的原始深度神经网络。换句话讲,Junho Yim的思路就是将知识具体的得到的办法教给学生网络,而不是单纯的告诉学生一个结果。

在论文[5]中,Zehao Huang在KD的基础上增加了NST方法对知识蒸馏进行改进。按照深度学习分布式特征的特点,每个神经元按照任务从输入提取某(几)种特定的特征,这是神经元的选择性。反过来说如果一个神经元被某些样本或者图像某些区域激活(文中以猴脸和字符为例),那么这些区域/样本就是有共同语义特征的。通过最小化这些分布之间的最大平均差异(MMD)度量来设计新的KT损失函数。结合原来的损失函数,显著地提高学生网络的性能,扩大了KD的应用范围。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。