| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【CVPR 2021】Revisiting Knowledge Distillation: An Inheritance and Exploration Framework -> 正文阅读 |
|
[人工智能]【CVPR 2021】Revisiting Knowledge Distillation: An Inheritance and Exploration Framework |
【CVPR 2021】Revisiting Knowledge Distillation: An Inheritance and Exploration Framework论文地址:https://arxiv.org/abs/2107.00181 主要问题:作者认为直接推动学生模型模拟教师模型的概率/特征,在很大程度上限制了学生模型学习未被发现的知识/特征 如图所示,使用KD训练的学生模型与训练良好的教师相比学习到非常相似的模式(更多的结果将在补充材料中显示) 在这种情况下,“猎豹”被教师模型错误地归类为“鳄鱼”,也被KD训练的学生模型错误地归类 该模型将其大部分预测归因于“猎豹”的尾巴,而“猎豹”类似于一条“鳄鱼”,而学生网络没有在耳朵和嘴上加入新的相关模式来区分“猎豹”和“鳄鱼” 因此我们需要一种机制来找到被教师网络忽略更有用的特征
主要思路:作者提出了一种新的继承和探索知识蒸馏框架(IE-KD),其中将学生模型分为继承和探索两部分。该算法用相似性损失学习遗传部分,将现有的学习知识从教师模型转移到学生模型,同时鼓励探索部分学习不同于有相似性损失的遗传知识的表征。 在的IE-KD中,知识是由一致性和多样性这两个原则来传递的。一致性确保了学生网络成功地在教师网络中继承,多样性确保了学生网络可以探索与继承特征互补的新特征。 受遗传和进化模型的启发,作者将算法分成两个部分:一个通过一致性/遗传损失(相似性)继承教师网络由因素(factors)编码的紧凑有效的知识,另一个通过多样性/探索损失(不相似性)来生成不同的特征。监督任务(分类/检测)损失起自然选择的作用,引导探索部分则负责使得模型收敛到不同而有效的特征。 同时受Q-learning的启发,作者鼓励模型通过探索新的和未被发现的知识,来改善学生网络的训练。 具体实现:如上图所示,其中一部分(由橙色表示)使用继承损失来模拟教师网络的紧凑特征,而另一部分(蓝色)被鼓励通过探索损失来学习不同于教师网络的新特征,监督任务的损失(分类/检测)负责指导探索部分收敛到不同但有效的特征 总的来说,学生网络接受了继承损失、探索损失以及传统的监督目标损失的训练 Compact Knowledge Extraction:我们将教师的特征表示为 f T f_T fT?,继承部分和学生网络的探索部分的特征分别表示为 f i n h f_{inh} finh?和 F e x p F_{exp} Fexp? 衡量这些特征之间的相似性的问题在于它们通常有不同的形状和大小,为了解决这个问题,作者通过编码器将它们编码到相同维的共享潜在特征空间中,编码的特征分别由 F T 、 F i n h F_T、F_{inh} FT?、Finh?和 F e x p F_{exp} Fexp?表示。作者使用了论文 Paraphrasing complex network: Network compression via factor transfer 中的factor-based子的编码模块,用于从教师网络的特定卷积块中提取知识 具体来说就是采用了一种由几个卷积层和反卷积层组成的自动编码器,从教师网络中提取可转移因子 F T F_T FT?。作者使用了三个卷积层和三个反卷积,所有的六层卷积和反卷积的卷积核大小为 3 × 3 3×3 3×3,步长为 1 1 1,填充为 1 1 1,并加上 Batch-Normalization 和 Leaky-ReLU( r a t e = 0.1 rate=0.1 rate=0.1) 只有在第二次卷积时,输出特征映射的数量才被压缩为因子特征映射的数量。类似地,第二个转置卷积层会被调整大小,以匹配教师网络的特征图 自动编码器使用常见的重构损失进行训练: L r e c = ∣ ∣ f T ? R ( f T ) ∣ ∣ 2 L_{rec}=||f_T-R(f_T)||^2 Lrec?=∣∣fT??R(fT?)∣∣2 其中 f T f_T fT?是教师模型的特征图, R ( f T ) R(f_T) R(fT?)是自解码器的输出 Inheritance and Exploration:IE-KD的目标是利用教师网络的紧凑特性 f T f_T fT?来增强学生网络的特征 f S f_S fS?,然而直接推动学生模型模仿教师模型的特征会限制学生模型学习未发现的特征 因此作者没有将处理和训练 f S f_S fS?作为一个整体,而是将其随机地分为两个部分: f i n h f_{inh} finh?和 f e x p f_{exp} fexp?,并分别调节它们与两个对应的损失,一个继承损失 L i n h L_{inh} Linh?尽可能多地模拟 f T f_T fT?,另一个探索损失 L e x p L_{exp} Lexp?允许 f e x p f_{exp} fexp?学习不同的或不相关的特征 类似地,作者使用两个独立的编码器将 f i n h f_{inh} finh?和 f e x p f_{exp} fexp?编码到与 F T F_T FT?具有相同维度的因子 F i n h F_{inh} Finh?和 F e x p F_{exp} Fexp?中,从而减轻了学生网络直接学习教师网络输出的负担 Inheritance loss:L i n h L_{inh} Linh?被设计为通过最小化 F i n h F_{inh} Finh?和 F T F_{T} FT?之间的差异来从教师模型中继承现有的知识,并表示为: L i n h = ∣ ∣ F i n h ∣ ∣ F i n h ∣ ∣ 2 ? F T ∣ ∣ F T ∣ ∣ 2 ∣ ∣ 1 L_{inh}=||\frac{F_{inh}}{||F_{inh}||_2}-\frac{F_{T}}{||F_{T}||_2}||_1 Linh?=∣∣∣∣Finh?∣∣2?Finh???∣∣FT?∣∣2?FT??∣∣1? 作者使用了L1标准化,我们也可以用其他方法,如L2、余弦距离、部分L2距离等 Exploration loss:L e x p L_{exp} Lexp?的作用跟Linh相反,用于学习不同于遗传的表征 受 Universal adversarial attack on attention and the resulting dataset damagenet 的启发,一个直接的选择是最小化 F e x p F_{exp} Fexp?和 F S F_S FS?之间的负差异: L e x p = ? ∣ ∣ F e x p ∣ ∣ F e x p ∣ ∣ 2 ? F S ∣ ∣ F S ∣ ∣ 2 ∣ ∣ 1 L_{exp}=-||\frac{F_{exp}}{||F_{exp}||_2}-\frac{F_{S}}{||F_{S}||_2}||_1 Lexp?=?∣∣∣∣Fexp?∣∣2?Fexp???∣∣FS?∣∣2?FS??∣∣1? 探索损失的符号变化不同于推动 F e x p F_{exp} Fexp?学习一个负的教师输出 ? F T ?F_T ?FT?,而是旨在鼓励探索部分专注于图像的其他区域,探索与继承的特征互补的新特征 同样我们也可以使用不同的度量来测量差异,如比如负L2距离、正交测度、CKA、负部分L2距离等 训练模型:训练首先对教师网络的因子自动编码器进行重构损失的训练 然后再对学生网络的因子编码器和主干网络与目标损失(分类、检测等)、继承损失和探索损失同时进行训练: L = L g o a l + λ i n h L i n h + λ e x p L e x p L=L_{goal}+\lambda_{inh}L_{inh}+\lambda_{exp}L_{exp} L=Lgoal?+λinh?Linh?+λexp?Lexp? 深度相互学习:在上述章节中作者提出了一个新的框架,通过以继承和探索的方式从教师网络转移知识来改进学生网络 一个直接的想法是,我们可以通过更好的学生网络进一步改善教师网络 因此,作者提出IE-KD方法可以扩展到深度相互学习方式(称为IE-DML),使师生网络都受益于IE-KD机制 在最初的深度相互学习策略中,两个对等网络( Θ 1 Θ_1 Θ1?和 Θ 2 Θ_2 Θ2?)通过KL距离同时进行优化,以衡量两个网络预测的一致性 在IE-DML中,作者用两个方向相反的IE-KD过程代替KL正则化,即网络 Θ 1 Θ_1 Θ1?到 Θ 2 Θ_2 Θ2?和网络 Θ 2 Θ_2 Θ2?到 Θ 1 Θ_1 Θ1? 例如,在网络 Θ 1 Θ_1 Θ1?到网络 Θ 2 Θ_2 Θ2?的过程中,通过将网络 Θ 1 Θ_1 Θ1?作为教师网络来训练网络 Θ 2 Θ_2 Θ2? 此外,由于这两个网络都是从头开始训练的,因此自动编码器需要与主干网络一起训练 最后,两个网络按照四个步骤交替更新,直到收敛:
实验结果:图像分类:目标检测:联系作者:微信号:Sharpiless 作者的其他主页:
我的公众号: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 20:36:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |