很久没看到这么精彩的提升小模型精度的文章了,细细品味。

Large Model vs Tiny Model

本文明确指出大模型过拟合,需要通过dropout等正则化技术和数据增强来提升精度;而小模型是欠拟合的,需要增强网络技术,正则化技术对小网络是有害的。

如上图所示ResNet50(大模型)正则化后,精度都有所提升,NetAug会掉点;而MobileNetV2-Tiny(小模型)正则化会掉点,NetAug会提升精度。

Formulation

标准的随机梯度下降公式为:

因为小模型的容量受限,比起大模型更容易陷入局部最优,最终导致不能得到最佳性能。为了提升小模型的精度,就需要引入额外的监督信号(比如KD和multi-task learning方法)。dropout方法鼓励模型的子集进行预测,而本文提出的NetAug则鼓励小模型作为一组大模型的子模型进行预测(这组大模型通过增强小模型的width构建的)。总的loss函数可以写成:

表示一个增强的大模型(包含需要的小模型  ,参数共享),  是缩放系数。

Constructing Augmented Models

如左图所示,构建一个最大的增强模型(包含需要的小模型,参数共享),其他增强模型从最大增强模型中采样。这种参数共享构建supernet的方式,之前在one-shot NAS中非常流行,详细可以看我之前的文章:https://zhuanlan.zhihu.com/p/74985066。

如右图所示,NetAug通过调整width构建其他增强模型,比起通过调整depth构建增强模型,训练开销更小。构建增强模型引入augmentation factor r和diversity factor s两个超参数,假设我们需要的小模型其中一个卷积宽度是w,最大增强模型的卷积宽度就是rxw,s表示从w到rw宽度之间等间距采样s个增强模型卷积宽度。比如r=3,s=2,那么widths=[w, 2w, 3w]。

训练阶段,NetAug在每个step采样一个增强模型进行辅助训练。NetAug训练额外开销相比baseline增加了16.7%,推理额外开销为0。

Experiments

1.Effectiveness of NetAug for Tiny Deep Learning

可以看到,NetAug和KD是正交的,可以在KD基础上继续提升性能。

在流行的小模型和NAS模型基础上,NetAug可以继续提升性能,但是对于大模型(ResNet50)来说,NetAug是有害的。

2.Comparison with Regularization Methods

正则化技术对于小模型来说是有害的。

3.Combined with Network Pruning

在Pruning的基础上,NetAug也能提升性能。

4.Large Model vs Tiny Model

上图清晰的揭示了本文提出的结论,小模型欠拟合,NetAug可以提升性能;大模型过拟合,NetAug是有害的。

5.The Number of Augmented Model

实验表明,每个step采样一个augmented model是最有的,r和s超参数都设置为3最优。

总结

NetAug vs OFA

NetAug和之前的OFA非常相似,OFA先构建一个大模型,然后训练这个大模型,最后通过搜索的方式得到小模型。

从上表可以看到,在OFA搜索得到模型的基础上,NetAug还可以继续提升性能,也验证了NetAug可以进行网络增强的作用。

OFA和NetAug其实是一体两面:一个是自上而下通过supernet搜索最好的子网络,另一个是自下而上通过supernet辅助训练小网络。一个是终点未知,找最优终点(类似搜索);另一个是终点已知,增强终点性能(类似动态规划)。

OFA的问题在于,大量的时间资源花费在可能跟最终目的无关的子模型上,而NetAug的优势在于,已知想要的小模型,通过supernet来提升小模型的精度。

小模型欠拟合,需要增加而外的监督信息(NetAug、KD、multi-task learning);大模型过拟合,需要正则化。

NetAug和KD的差别在于,KD是通过outer network来辅助训练(提供信息),而NetAug是通过inner network来辅助训练(共享参数)。

正如标题所言,NetAug(网络增强)是Dropout的反面。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

Reference

1.https://zhuanlan.zhihu.com/p/74985066

2.ONCE-FOR-ALL: TRAIN ONE NETWORK AND SPE- CIALIZE IT FOR EFFICIENT DEPLOYMENT

3.NETWORK AUGMENTATION FOR TINY DEEP LEARNING

NetAug(网络增强)—Dropout的反面相关推荐

  1. 【深度学习】NetAug(网络增强)—Dropout的反面

    很久没看到这么精彩的提升小模型精度的文章了,细细品味. Large Model vs Tiny Model 本文明确指出大模型过拟合,需要通过dropout等正则化技术和数据增强来提升精度:而小模型是 ...

  2. 电信 IPRAN 设备组网方案_国内首家5G核心网电信设备进网许可证;电信5G网络增强方案获认可;美国最大规模毫米波拍卖...

    点击上方"通信人才网" 订阅! 导读:今日热点 华为荣获国内首家5G核心网电信设备进网许可证近日,华为获得工业和信息化部颁发的"5G核心网电信设备进网许可证". ...

  3. Nature论文解读:用于改善加权生物网络信噪比的网络增强方法

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. 风格迁移 图像合成 图像重构 更换姿态和图像背景(使用交叉注意控制进行提示到图像编辑)GAN网络增强版

    顺人性而为:你们最想要的是代码--------> 代码链接:[(https://download.csdn.net/download/ALiLiLiYa/86784427) 也可私信本人获取. ...

  5. GCB:西农韦革宏团队-土壤多营养级网络的复杂度增强农田系统生物多样性和多功能性的联系...

    土壤多营养级网络的复杂度增强农田系统生物多样性和多功能性的联系 Soil multitrophic network complexity enhances the link between biodi ...

  6. LE-MSFE-DDNet:基于微光增强和多尺度特征提取的缺陷检测网络--论文笔记

    论文的英文名称为:LE–MSFE–DDNet: a defect detection network based on low‑light enhancement and multi‑scale fe ...

  7. 一文解决机器学习中的过拟合与欠拟合问题(正则化,数据增强,Dropout)

    一文解决机器学习中的过拟合与欠拟合问题(正则化,数据增强,Dropout,提前终止) 生活中的过拟合与欠拟合现象 过拟合与欠拟合的概念 解决过拟合与欠拟合问题的四大金刚 正则化 数据增强 Dropou ...

  8. pytorch空间变换网络

    pytorch空间变换网络 本文将学习如何使用称为空间变换器网络的视觉注意机制来扩充网络.可以在DeepMind paper 有关空间变换器网络的内容. 空间变换器网络是对任何空间变换的差异化关注的概 ...

  9. 深度学习中的Dropout简介及实现

    在训练神经网络模型时候,如果模型相对复杂即参数较多而训练样本相对较少,这时候训练出的模型可能对训练集中的数据拟合的比较好,但在测试集上的表现较差,即出现了过拟合的情况.这种情况下可以使用Dropout ...

最新文章

  1. .Net面试题(1)
  2. vs插件ZunKoIDE
  3. TVS 管性能及选型总结
  4. 如何自定义SAP Spartacus 产品明细的url pattern
  5. 空格的ascii码_美国信息交换标准代码ASCII
  6. Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)
  7. binaryformatter java_Java,C#使用二进制序列化、反序列化操作数据
  8. vue时间过滤器filter
  9. kafka数据不丢失不重复_如何配置 KAFKA 使其消息不会丢失
  10. LWIP之UDP协议
  11. Python天天美味(21) - httplib,smtplib
  12. leetcode 1221 python
  13. AcWing 890. 能被整除的数(容斥原理)
  14. GWR(地理加权回归)预测分析中国各省份开关窗情况(R语言)
  15. UnityShader[3]屏幕后处理学习笔记
  16. The endpoint reference (EPR) for the Operation not found 可能问题以及解决办法
  17. linux的grub是什么意思,grub是什么意思
  18. IETester(DebugBar)的安装与使用
  19. C++基础部分-学习笔记
  20. 20 行 Python 代码批量抓取免费高清图片!

热门文章

  1. 暑假周进度总结报告7
  2. bootstrap时间格式化
  3. 5-去掉a标签下划线,禁止a标签的跳转
  4. C 输入 输出——Day03
  5. spring boot之security
  6. C++中的string
  7. java 如何判断操作系统是Linux还是Windows
  8. Spring与SpringMVC的区别
  9. oracle查锁及解锁命令
  10. finder怎么才能找到library