摘要
现有的知识蒸馏方法都是手工的启发式方法,这些方法旨在预先定义好目标学生网络,由于需要花费大量精力去找到一个合适的学生网络,这样的做法可能会导致出现次优解。 因此,这篇文章提出了一种教师网络指导的神经网络搜索方法,可以直接通过通道数和层数对学生网络进行搜索。 通俗的来说就是将搜索空间定义成通道数/层数(通过概率分布进行采样),然后将loss最小化进行学习。最终将每个分布中概率最大的值作为学生网络的深度和宽度。
一、介绍
这里作者列举了现有的一些方法,比较特别的有:
- Wang团队2019年提出的:教师网络使用原有的训练集,学生网络使用LR图像训练集
- Peng团队2019年提出的:使用概率一致性知识,不仅传递实际层级之间的参数信息,而且传递实例间的相关性。
但现有的这些方法都需要预先定义学生网络,而本文提出的方法是基于概率优化提出的。
主要贡献:
- 特征信息灵活且有效,因此对于人脸识别模型的蒸馏提取来说十分适合。为此本文利用特征拟合作为搜索目标以搜索合适的学生网络。
- 提出了TNAS框架,将搜索空间定义为学生网络的宽度和深度,并以可学习的概率不断的附加不同的候选层/通道。(?)
- 算法性能验证
二、相关工作
- 人脸识别: 人脸识别通常使用的是基于margin的softmax loss(关于人脸识别中的margin损失函数总结可以看这篇文章:点我点我~)、度量学习的损失函数或者两者共同使用。
- 知识蒸馏: 2015年有团队首次提出了基于软化概率一致性(?)的知识蒸馏算法。
- 神经网络架构搜索: 神经网络架构搜索可以将预定义的架构转换成一个需要学习的过程。本文通过经验观察到,相对于网络的拓扑结构(具体某层的设计)来说,网络的规模对于人脸识别蒸馏来说更加关键。通过改善现有方法的规模,它们大多数都获得了性能方面的提升。Dong的团队在2019年提出了一种基于概率的可微分方法,用于缩小CNNs的规模。(?)本文提出的方法就是将神经网络架构搜索与人脸识别相结合实现的。
三、研究方法
神经网架构搜索包括两个重点概念:搜索目标、搜索空间。
3.1 知识蒸馏
对于人脸识别问题上的知识蒸馏来说,一般情况下我们有一个训练好的教师网络,并且需要根据它蒸馏出学生网络,但问题是我们往往并不知道这个教师网络是怎么训练的(包括训练集,loss函数以及训练策略等),这时一般有以下几种情况:
- One-hot标签: 如果学生网络的训练集有很完备的标签时,可以直接用one-hot标签进行训练,且在保证通用性的前提下可以使用AM-softmax损失进行监督。但这种方法并没有利用教师网络。
- 概率知识蒸馏(PKD): 令最终的softmax输出为
z
z
z,教师网络的soft标签可以表示为
P
T
τ
=
(
z
T
/
τ
)
P_T^\tau =(z_T/\tau)
PTτ?=(zT?/τ),这里
τ
\tau
τ是温度参数;学生网络的soft标签可以表示为
P
S
τ
=
(
z
S
/
τ
)
P_S^\tau =(z_S/\tau)
PSτ?=(zS?/τ)。现有的知识蒸馏方法往往利用了概率知识蒸馏方法:
L
P
K
D
=
L
(
P
T
τ
,
P
S
τ
)
=
L
(
(
z
T
/
τ
)
,
(
z
S
/
τ
)
)
L_{PKD}=L(P_T^\tau,P_S^\tau)=L((z_T/\tau),(z_S/\tau))
LPKD?=L(PTτ?,PSτ?)=L((zT?/τ),(zS?/τ))其中
L
L
L表示的是交叉熵损失
|