本文提出了一种新的卷积网络权重初始化方法,它的思路是利用FSP矩阵来表示相邻两层输出之间的关系,这种关系能告诉我们“神经网络解决问题的思路”,然后训练学生网络来最小化FSP矩阵的L2距离,以此初始化学生网络权重,之后再接着训练。该方法在cifar10、cifar100数据集上被证明具有收敛快、精度高、适于迁移学习的效果。
一、基本信息
会议/期刊 | CVPR |
---|---|
年份 | 2017 |
机构 | KAIST |
一作 | Junho Yim,Donggyu Joo,Junmo Kim |
领域 | Knowledge Distillation,Transfer Learning |
二、做了什么?针对什么应用场景?
本文提出了一种新的卷积网络权重初始化方法,它的思路是利用FSP矩阵来表示相邻两层输出之间的关系,这种关系能告诉我们“神经网络解决问题的思路”,然后训练学生网络来minimize L2(FSP_teacher, FSP_student),以此初始化学生网络权重,之后再接着训练。该方法在cifar10、cifar100数据集上被证明具有收敛快、精度高、适于迁移学习的效果。
主要针对场景:
1)手上有一个超大的模型,但部署环境不支持计算量/存储/功耗,因此需要训练一个小一点的模型or多个小型模型的集成,
2)手上有一个预训练模型,但新任务样本量较少、从头训练效果不好,因此需要在新任务上进行fine-tune,
3)追求模型的快速收敛,需要好的初始化策略,
三、这么做有什么好处?(纵向比较)
第一次从“flow of solving problems”的角度看待知识蒸馏,具有启发意义。(之前的方法过于注重让student模仿
将知识蒸馏技术引入了迁移学习领域。
四、为什么做这个工作?(横向比较)
vs 普通的KD(Romero/FitNets):
其他知识蒸馏方法只追求student模仿teacher的结果输出/中间层输出,只重视结果而不重视解决问题的过程,
训练过程低效,本方法多个模块可以独立训练,效果仍然很好,
不利于产生迁移性好的学生网络,因为没有学习过程只强调模仿
vs 其他快速收敛的方法:选择一个好的初始化策略能使深度网络优化地更快,选择一个好的优化器能使深度网络更易于达到全局/局部最优
simple init:Gaussian noise、Xavier
complicated init:he normal、he uniform
optimizer:sgd、adam
五、方法上有什么创新之处?(实验方法/评价指标/谋篇布局/制图)
核心问题:
- 如何定义teacher网络所含的信息? => FSP矩阵
- 如何让student网络学习到teacher所含信息? => 最小化两个网络的FSP矩阵距离
- 如何减少students之前的关联性、引入差异性?(好做集成分类器) => 打乱teacher网络的通道,生成新的FSP matrices
- 如何比较初始化策略 vs 简单的知识迁移?=> 用相同的架构做kd,一种init student=trained teacher,另一种init student=FSP trained(trained teacher)
- 怎么证明收敛更快?=> student只用 1/3 的迭代次数,达到和teacher相似的精确度
六、思路上有什么创新之处?(新发现/新论断/新猜想)
- 定义了一种high level knowledge => flow of solving problems => relationship between outputs of 2 connected layers
- 借鉴了Gramian matrix的思想(A neural algorithm of artistic style),提出了FSP矩阵(flow of solving problems)
七、有什么我可以借鉴的?
对CIFAR10数据集,可以先padding到40x40再训练。
八、缺点有哪些?
语言描述过于累赘,实验部分思路不够清晰。