本文提出一种新的设定,开始和以前一样,使用一个预训练的大网络来指导一个更窄更快的小网络训练,但是用来训练的数据是新的并且标签信息有限,所以这个场景包括了不同数据域的自适应和模型压缩
加入了一个知识投影矩阵,是学习得到的,选择大模型的某处中间层,经过投影,加入到小模型的某处,这个过程也是学习的
整个模型的系统如下
KNOWLEDGE PROJECTION NETWORK
知识投影网络
1、overview
教师网络提前预训练。
卷积网络的计算的成本如下
以下为三种卷积模型组合
左边是标准的卷积,中间为bottleneck Type A,右边为bottleneck Type B,三种计算成本如下,其中卷积核尺寸为K*K。
对比
Type A和type B可以大大减少计算成本,同时保持特征图的信息。所以在教师网络中使用AB结构来减少计算成本。
在KPN中通过优化以下损失来训练。学生网络
LKP代表KPN损失,Lp代表特定问题的损失。Wk代表训练过的老师网络,Ws代表学生网络,R正则化项。
LKP在训练中占到了很重要的作用。
整体的模型结构如下。
2、Knowledge Projection Layer Design
预训练过的教师网络与学生网络同时对输入图片进行分析。为了指导学生网络的学习,采用尺寸为N的教师网络某一层的特征图FT来指导尺寸为M的学生网络特征向量FS,匹配关系如下,线性投影。P为MN的矩阵
可以通过在教师和学生网络之间构建卷积层来学习此线性投影矩阵P。 具体来说,使用卷积层来桥接教师的知识层和学生的注入层。
知识层被定义为教师隐藏卷积层的输出,该输出通过负责规范学生的注入卷积层的输出来指导学生的学习过程。
定义如下损失函数
其中μ和v代表具有网络参数Wk和Ws的知识层和注入层的深层嵌套函数(卷积运算的堆栈)。分别r[]是应用于带有参数WKP的μ[]的知识投影函数,这是本工作的另一个卷积层。
知识投影层为11卷积层
使用卷积适配层不仅有益于降低计算复杂性,而且提供了一种更自然的方法,可以从知识层中筛选出独特的通道方式特征,同时保持空间一致性。知识投影层的输出将通过以下形式生成一个强大而明确的渐变应用于后向通往注入层的路径,从而指导学生网络的训练
LKP为L1损失,更加鲁棒。
3、Multi-Path Multi-Stage Training
在学生网络中,注入层之后的层负责使投影特征适应最终网络输出,必须在整个培训过程中记住这种适应。
注入层之前的那些网络层旨在学习独特的低层功能。
因此采用两个阶段来训练。
1)initialization stage
首先上图中路径2断开,连接路径1,知识投影层与学生网络的下部分一起训练,目标最小化LP损失。学生网络的上部分训练通过最小化LKP
在此阶段,将投影矩阵用作学生网络中上下两部分之间的隐式连接。
上层的学生网络层始终针对投影矩阵解释的特征进行优化,并且无法直接访问目标。这种策略可以防止学生网络在早期训练阶段过拟合,而后期很难纠正。
2)joint training stage
断开路径1,重连路径2。联合训练阶段,最小化以下函数。
联合优化过程旨在建立学生网络内部从输入到最终输出的平滑过渡。
4、Iterative Pruning for Projection Route Selection
知识层和投入层的选择非常重要。
假设Nt和Ns分别为教师网络和学生网络,分别有Lt和Ls层,仅仅选择卷积层作为知识层和注入层。定义Ri,j为转接路线。
则第L层的感受野大小为
对于转移后的感受野,有一个约束,其中β=0.2
如下图中,满足条件的路线有三条。
每一个KPN存储Ws,WKP,Ri,j,而教师参数共享Wt所有的KPN。
目的是为了找到使得联合损失最小的KPN
算法思路
a)根据约束生成不同的KPN,每一个KPN都有学生网络参数Ws,不同的路线Ri,j和其对应得参数WKP
b)经过k轮训练,目标为最小化联合损失,采用随机梯度下降算法。
c)最终在验证集上测试,选择最好的KPN
算法
实验
1、CIFAR-10
教师网络在CIFAR-100上预训练
可以看到网络参数减少为原来的1/10,性能提升。
2、VOC 07
模型大小缩小为原来的一半,同时速度提升原来的4.6倍
3、Ommniglot Dataset
更小的手写字母数据集。
KPN使得错误率降低了1.1%-1.3%
网络尺寸的影响
随着模型减小,准确率下降,参数量减少,速度提升。
T代表教师网络,N-代表一个纤细的网络,N—代表一个更加纤细的网络。
自动路径选择的分析
结果展示选择中间层来桥接效果更好。