当前位置: 首页 > news >正文

A Gift from Knowledge Distillation: Fast Optimization,Network Minimization and Transfer Learning论文初读

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_37665984/article/details/103288582

目录

摘要

引言

相关工作

  知识迁移

  快速优化

  迁移学习

方法

  提出观点

  数学表达式

  FSP Matrix的损失

  学习步骤

实验

  快速优化

  性能的提升

  迁移学习

结论


摘要

提出了将蒸馏的知识看作成一种解决问题的流,它是在不同层之间的feature通过内积计算得到的

这个方法有三个好处:

  student网络可以学的更快

  student网络可以超过teacher网路的性能

  可以适用于迁移学习(teacher和student属于不同的任务)

引言

  • 之前的工作

​​​​​​​KD

Fitnets(hint)

  • 本文的创新点

​​​​​​​将知识看作如何解决问题的流,所以将要蒸馏知识看作解决问题的流

流被定义为在两个不同层上的features上的关系

Gram matrix是通过计算特征间的内积得到的,可以表示输入图像的纹理信息,本文也是通过计算Gram matrix来得到流,不同点在于原本的Gram matrix是计算一个层的特征间的内积,而本文是结算不同层特征间的内积

Figure1是计算FSP的概念图,FSP就是flow of solution procedure

  • 本文的贡献

​​​​​​​提出了一种好的知识蒸馏的方法

这种方法对快速优化有帮助

这种方法可以显著提升student网络的性能

这种方法适用于迁移学习

相关工作

  知识迁移

KD

Fitnets

Net2Net根据teacher网络的参数,用一种函数保留的迁移方式初始化student网络的参数

  快速优化

Gaussian noise初始化

Xavier初始化

还有一些初始化方法

优化的新方法

  迁移学习

加载训练好的参数,微调

方法

  提出观点

将输入和输出看作是问题和答案,中间层看作是解决问题的一个步骤,按照Fitnets的思路,会学习中间这个步骤,然而解决这个问题可以有很多路径,中间这个步骤不一定是这种,所以Fitnets给了太多的限制,我们提出学习输入和输出的关系,而不是直接学习中间的步骤

  数学表达式

  • 表达式

F1,F2是学生网络中两个不同层的特征

i,j表示F1和F2的通道号

这个式子其实就是不同通道的特征的相互内积

  • 计算G的位置

​​​​​​​

  FSP Matrix的损失

n代表在student中选择的层对数

N表示样本数量

T,S分别代表teacher和student

本论文的lamda对于所有的层对相同

  学习步骤

实验

  快速优化

  • 关于Student与FitNet的分析

​​​​​​​由于本文提出的结构是学习一种输入和输出的关系,本文是通过FSP实现的,所以多个FSP之间可以相对独立一些,整个模块可以解耦;

而对于FitNet,假设加入三个中间层,在第二个中间层和第三个中间层不好去学习,因为要想学习好他们,首先要保证前边的一层中间层学习好,所以FitNet这种直接用特征做监督信息的方式不能解耦多个loss层;

FSP想比FitNet,赋予了网络更大的自由。如果student与teacher网络有相同的中间层,那么肯定有相同的FSP,但反过来确不成立,FSP的相同并不限制中间层的具体表示。

  • 关于加强多个Student的不相关性,从而提升集成模型的准确率

​​​​​​​Table1的倒数第二行说明了虽然student网络的单体能力已经超过了teacher网络,但是集成的student网络确没有集成的teacher的集成效果好,这是因为多个student网络的FSP矩阵是一致的,导致他们的相关性太大

本文提出了将生成的FSP矩阵的行和列进行重新洗牌,得到新的几个FSP,用新的FSP训练student得到的集成效果要好。其实这相当于将生成FSP的两个不同层的特征的通道打乱而得出的FSP,本质上没有改变信息的内容。

  性能的提升

本次实验student网络的深度要小于teacher网络的深度

  迁移学习

Teacher-fine tuning是在34层的网络上进行迁移学习得到的结果,Proposed Method是在20层的网络上进行FSP学习得到的结果,可以看出,已经很接近了。

结论

提出了以解决问题的流的方式来进行知识蒸馏

从三个方面验证了提出的方法的有效性

相关文章:

  • 瞭望|工业软件之忧
  • 创建有模式对话框
  • 超时时杀死python subprocess子进程?
  • 正反向建图——kuangbin最短路专题总结(2)
  • 别再瞎猜了!“携号转网”后谁是赢家?看完这篇便知晓...
  • 安卓ssss定位
  • SpringBoot 导出 Excel
  • 剑指offer第14题:链表中倒数第k个结点
  • res下raw和assets的区别
  • CodeBlocks运行程序时弹出360等杀毒软件木马拦截警告提醒
  • 金鸡百花电影节星光熠熠,成龙走红毯和机器人过招
  • roscore和conda都打不开
  • static和this关键字
  • 条款10:令operator=返回一个reference to *this——82
  • 自学编程、玩 vlog,90 后程序员们的冠军之路
  • Pytorch迁移学习
  • PHP 注释规范
  • namenode: Unknown command
  • git 命令收集
  • android.view.InflateException: Binary XML file line #