转载请注明出处:https://www.cnblogs.com/White-xzx/

原文地址:https://arxiv.org/abs/1812.02425

Github: https://github.com/AaronHeee/MEAL

如有不准确或错误的地方,欢迎交流~

  

  本文来自 AAAI 2019, Oral的一篇文章,主要的思想是通过知识蒸馏的方法将不同的已训练的teachers模型,压缩为一个简单的student网络,来学习多种模型的知识而不用产生额外的测试开销。作者使用的是基于对抗的学习策略,设计了一个block-wise training loss引导和优化预先定义的student网络,进行teachers模型知识的蒸馏,并同时提高辨别器网络(discriminator)对学生和老师提取出的特征的区分能力。

【Abstract】

  性能优异的模型通常集成多个基准网络,然而模型的大小和前馈时间限制了这些模型在实际中的应用,尤其是当拥有较大测试集时。本文提出了基于对抗学习策略的模型压缩方法MEAL,该方法包含三个重要的优势:

  ①学生网络和辨别器一起学习知识能够达到比原始模型更好的优化效果;

  ②通过简单的学生网络实现更快的前馈速度,同时不降低性能;

  ③学生可以学习任意结构网络模型的知识。

【Introduction】

  该集成方法主要是集合多个网络,将他们在test阶段的预测通过加权平均或选择进行融合。训练时,将经过数据增强的输入经过不同网络结构网络得到的输出,进行集成预测;测试时,只使用一个简单网络;集成的各个网络拥有预训练模型,所以在集成过程中直接加载了预训练模型,使用的监督标签必须和预训练过程使用的标签是一致的。

  传统集成方法的不足:①知识或信息冗余;②集成模型非常大且慢;

  作者通过不同神经网络的不同输出作为监督来引导目标网络的训练,参考网络作为老师,目标网络作为学生。学生网络训练过程中使用老师网络产生的soft label进行监督训练,作者认为label的信息必须更为翔实,而不是简单地给一张图片提供一个相同的类别,以下是soft label的一个例子:

  

  老师网络给出的soft label提供了不同类别的具体概率分布,使label能提供图片中具有视觉联系场景的信息覆盖。

  同时,为了进一步提高学生网络的鲁棒性,作者还引入了对抗学习的策略来使学生网络产生与老师相同的输出。

【Related Work】

【Overview】

  与孪生网络相似的网络结构,包括两个分支,分别为老师和学生,两个分支的网络结构可以相同也可以不同,但是为了能够利用两个网络的中间输出,所以两个网络分支必须有相同数目的block。MEAL网络结构如下:

  

  MEAL包括学生网络、老师网络、校准层(alignment layers)、相似度损失层和判别器。学生网络和老师网络产生中间输出进行校正,校正层是一个自适应池化的过程,将相同或不同长度的特征向量作为输入并产生固定长度的新特征。学生网络与几个判别器进行对抗训练,使其产生与老师网络相似的输出。

【Adversarial Learning (AL) for Knowledge Distillation】

  【Similarity Measurement】首先,我们在给定的数据集上使用交叉熵损失函数预训练老师网络,label是one-hot类型的图片集标注;学生网络在相同的数据集上进行训练,使用的label是老师网络产生的,即soft label。当学生网络进行训练时,老师网络的参数固定,即不进行学习,同时最小化学生网络输出和soft label的相似度距离。

  

  作者尝试了三种距离度量方式,L1、L2和KL-divergence,下文Table 1比较了三种方法的效果。

  

  

  

  【Intermediate Alignment】自适应池化:目的是对齐学生网络和老师网络的中间输出,该层与普通的池化层类似,但能对不同的输入产生相同长度的输出;由于这个特殊性,我们能将不同老师网络的输出池化为与学生相同长度的输出。中间输出的损失函数:

    

    自适应池化的过程:

    

    由于采用了多个中间输出层,所以最终的相似度损失为

    

  【Stacked Discriminators】判别器主要判断输入的x是老师还是学生产生的,最大化以下公式的值,同时学生网络为了尽可能产生于老师相似的输出,所以追求最小化该公式的值

    

    判别器结构:

    

    多阶段判别器(Multi-Stage Discriminators),使用多阶段判别器能够逐渐提炼学生的输出,如Figure 3所示。最终的对抗损失是多个判别器损失的和

    

    【Joint Training of Similarity and Discriminators】最终的损失

    

【Multi-Model Ensemble via Adversarial Learning (MEAL)】

    【Learning Procedure】为了理解学生网络的学习的内容,作者使用了两种形式:①学生老师使用相同的结构;②选择一种学生网络的结构,在每次迭代的时候随机选择一种网络结构作为老师。

    学习过程分两个阶段:①预训练几个老师网络形成model zoo;②最小化公式(11)的值

    

【Experiments and Analysis】

    

    

    

    

【论文阅读】MEAL: Multi-Model Ensemble via Adversarial Learning的更多相关文章

  1. 论文翻译:2021_Towards model compression for deep learning based speech enhancement

    论文地址:面向基于深度学习的语音增强模型压缩 论文代码:没开源,鼓励大家去向作者要呀,作者是中国人,在语音增强领域 深耕多年 引用格式:Tan K, Wang D L. Towards model c ...

  2. #论文阅读# Universial language model fine-tuing for text classification

    论文链接:https://aclweb.org/anthology/P18-1031 对文章内容的总结 文章研究了一些在general corous上pretrain LM,然后把得到的model t ...

  3. 论文阅读 | BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

    BadNets: 识别机器学习模型供应链中的漏洞 摘要 基于深度学习的技术已经在各种各样的识别和分类任务上取得了最先进的性能.然而,这些网络通常训练起来非常昂贵,需要在许多gpu上进行数周的计算;因此 ...

  4. 论文阅读:Deep Attentive Tracking via Reciprocative Learning

    Deep Attentive Tracking via Reciprocative Learning 2018-11-14 13:30:36 Paper: https://arxiv.org/abs/ ...

  5. 【CV论文阅读】An elegant solution for subspace learning

    Pre: It is MY first time to see quite elegant a solution to seek a subspace for a group of local fea ...

  6. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  7. 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision

    论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...

  8. [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks

    [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...

  9. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

随机推荐

  1. 【版本管理】git分支管理

    创建与合并分支: 首先,我们创建dev分支,然后切换到dev分支: git checkout -b dev,命令加上-b参数表示创建并切换, 相当于以下两条命令: git branch dev: gi ...

  2. selenium_UI自动化——篇1(基础)

    元素定位的几种方式: (1)driver.find_element_by_id("idname") (2)driver.find_element_by_name("nam ...

  3. 在PE32位下安装64位2003、2008系统

    步骤 1.进PE(这里是老毛桃为例) 2.将系统(这里windows2008 r2 为例)拷到本地硬盘 3.将ios镜像出来 4.在PE桌面找到 “windows系统安装”,浏览 系统文件  \sou ...

  4. 洛谷P2480 古代猪文

    这道题把我坑了好久...... 原因竟是CRT忘了取正数! 题意:求 指数太大了,首先用欧拉定理取模. 由于模数是质数所以不用加上phi(p) 然后发现phi(p)过大,不能lucas,但是它是个sq ...

  5. 笔记 freemark list标签迭代Map<Map<String,Object>集合排序问题

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. 工作中出现一个比较特殊的问题,在模板ftl文件中,一般用list迭代map 举例: 后台: // 传入的参数 ...

  6. SPOJ 8222 NSUBSTR - Substrings

    http://www.spoj.com/problems/NSUBSTR/ 题意: F(x)定义为字符串S中所有长度为x的子串重复出现的最大次数 输出F[1]~F[len(S)] 用字符串S构建后缀自 ...

  7. CF876 F 思维 枚举

    给你n个数,问有几个区间满足,区间内或操作大于区间内的任意数. 首先可以知道,两数或操作的结果必定不会小于两者间的最大值,也就是说对于一个区间中,不合法的状态只有两值或相等.那么我们可以考虑枚举每个数 ...

  8. 获取web页面xpath

    1. Open Chrome 2. Right click the element that you want to get xpath 3. select "Inspector" ...

  9. tclsh 用法

    set foo "a bc" # 定义变量 set b {$a}; # 转义 b的值为" $a " ,而不是变量结果 ; incr a ; # 数字的自增. 将 ...

  10. Linux 网络操作

    Linux 基础网路操作  ifconfig eth0 down # 禁用网卡 ifconfig eth0 up # 启用网卡 ifup eth0: # 启用网卡 mii-tool em1 # 查看网 ...