深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks及其PyTorch实现
Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks
PDF: https://arxiv.org/pdf/2201.03299.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

Regularization

  • 第一:是“数据正则化”,其中所有的方法都专注于对于输入数据的更改
  • 第二:是“结构正则化”,主要是修改神经网络或核函数生成特征映射的过程
  • 最后:是“标签正则化”,主要是对给定输入的标签进行转换和修正

1 Regularization based on data augmentation

1-1 Cutout, 2017

Cutout是一种直接而强大的数据增强的技术。在训练过程中,它在输入神经网络之前随机去除图像的区域。理想的大小根据每个类的实例的数量和给定数据集的类的数量而变化。

Improved Regularization of Convolutional Neural Networks with Cutout

1-2 RandomErasing, 2017

RandomErasing是在Cutout技术的基础上进一步的发展。Cutout是对图像的随机裁剪,而RandomErasing关注的是在空白空间中去除并随机添加信息,例如噪声。

Random Erasing Data Augmentation

1-3 AutoAugment, 2019

AutoAugment将寻找最佳数据增强策略的问题形式化为一个离散搜索问题。在搜索空间中,一个主要策略由5个子策略组成,每个子策略依次应用2个图像操作,每个图像操作都有两个参数:应用它的概率和操作的幅值(如70%的概率执行旋转30度的操作)

操作的搜索空间(一共有16个操作):
ShearX/Y,  TranslateX/Y, Rotate,  AutoContrast,  Invert,  Equalize,  Solarize, Posterize,  Contrast,  Color,  Brightness,  Sharpness, Cutout, Sample Pairing

Autoaugment: Learning augmentation policies from data

1-4 PBA, 2019

Population Based Augmentation(PBA)不仅提出了一种新的增强算法,而且展示了可以调度的增强策略而不是固定的增强策略。在每3步中,它改变了一半的策略,即1/4的权重变化,另外1/4的超参数变化。

Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules

1-5 RandAugment, 2019

RandAugment使用了在之前的工作中发现的14个最常见的策略,并在训练期间对每个策略的大小进行搜索,从而避免了AutoAugment初步探索步骤的需要,而且可以根据需要适当放大以适应当前的训练的CNN。结果表明,该方法不仅比以往的方法更快,而且显著改善了结果。

RandAugment: Practical automated data augmentation with a reduced search space

1-6 Mixup, 2017

Mixup:将随机的两张样本按比例混合,分类的结果按比例分配;
Cutout:随机的将样本中的部分区域cut掉,并且填充0像素值,分类的结果不变;
mixup是一种用于解决过拟合问题的数据增强的方式,也可以理解为对离散样本空间进行连续化,提高邻域内的平滑性。

mixup: BEYOND EMPIRICAL RISK MINIMIZATION

1-7 CutMix, 2019

CutMix:就是将一部分区域cut掉但不填充0像素而是随机填充训练集中的其他数据的区域像素值,分类结果按一定的比例分配

Cutmix: Regularization strategy to train strong classifiers with localizable features

1-8 CutBlur, 2020

CutBlur,它的工作原理是用来自类似区域的低分辨率(LR)版本替换高分辨率图像(HR)上的给定区域。主要用于超分辨率领域。

Rethinking data augmentation for image superresolution: A comprehensive analysis and a new strategy

1-9 BatchAugment, 2019

BatchAugment认为在一个mini-batch学习来自同一个图像的不同增强版本能让模型更容易学习到增强不变的特征。因此BatchAugment在同一个batch中,一半使用正常的数据增强策略,另外一半通过复制这一半数据但是使用不同的数据增强策略。

BatchAugment不仅可以提升性能,而且可以加快收敛。
Augment your batch: better training with larger batches

1-10 FixRes, 2019

ImageNet数据集分类模型通常采用的数据增强方式会导致训练时和测试时的模型看到的目标尺寸出现差异。即训练分辨率的降低可以一定程度上提高测试阶段的精度。

FixRes具体的实现方法是用小分辨率的图片训练模型,之后用稍大的分辨率的图片微调模型。

Fixing the train-test resolution discrepancy

1-11 Bag-of-Tricks, 2018

Bag-of-Tricks研究通过结合几种已知的正则化方法,如Mixup、Label Smoothing和Knowledge Destilation进行组合。实验表明,如果应用一定的方法,最终结果可以得到显著提升。

Bag of tricks for image classification with convolutional neural networks

2 Regularization based on internal structure change

2-1 Dropout, 2014

Dropout在训练阶段的每一步,通过伯努利分布(Bernoulli’s distribution)来估计每个神经元的dropping out概率,从而在训练过程中增加了一些随机性。最初的研究表明,带有Dropout的神经网络可以比标准的神经网络更好的泛化能力。

[Dropout: a simple way to prevent neural networks from overfitting](Dropout: a simple way to prevent neural networks from overfitting)

2-2 MaxDropout, 2020

Dropout随机去除训练阶段的神经元,Maxdropout则根据神经元的激活情况去激活神经元。它首先将张量s值归一化,然后将每一个大于给定阈值p的输出设置为0,因此这个值越高,它就越有可能失活。

MaxDropout: Deep Neural Network Regularization Based on Maximum Output Values

2-3 DropBlock, 2018

DropBlock表明,去除给定张量(即特征图)的整个区域可以帮助模型更好地泛化。DropBlock应用在CNN的每个feature map上,从一个小的比例开始训练,然后慢慢的增加它的值。

Dropblock: A regularization method for convolutional networks

2-4 TargetDrop, 2020

TargetDrop将注意力机制与DropBlock结合在一起。在训练过程中,它允许整个系统去除给定通道上的最有判别性的区域。

TargetDrop: A Targeted Regularization Method for Convolutional Neural Networks

2-5 AutoDrop, 2021

Dropout缺乏选择掉哪个神经元的空间信息。
DropBlock的策略是 去掉隐藏层的整个随机区域,而不是单一的神经元,是的CNN能够学习更好的空间信息。但是DropBlock的Drop策略是手动设计,并且是固定的。

AutoDrop在DropBlock的基础上,使用一个控制器逐层学习最佳的Drop模式。

AutoDropout: Learning Dropout Patterns to Regularize Deep Networks

2-6 LocalDrop

用Rademacher复杂性被用来重新定义Dropout和DropBlock,得到LocalDrop

LocalDrop: A Hybrid Regularization for Deep Neural Networks

2-7 Other methods, 2016

“identity mapping”的结构引入,对原始输入进行了重建。残差连接使得模型能够学习如何构造这些结构。

Identity mappings in deep residual networks

2-8 Shake-Shake, 2017

Shake-Shake通过在训练期间为残差连接的每个分支赋予不同的权重来提供正则化。
在训练过程中,Shake-shake作用于3个分支的ResNets,在前传时改变每个分支的乘因子,在后传时乘以不同的值,从而改变每个分支对最终结果的影响。对于推理,它将每个分支乘以0.5倍。

Shake-Shake方法有两个问题:1、只适用于ResNeXt网络, 2、Shake-Shake有效性的原理还未鉴定
Shake-shake regularization

2-9 ShakeDrop, 2018

ShakeDrop不仅适用于ResNeXt架构,也适用于ResNet、Wide ResNet和PyramidNet。
通过混合Shake-Shake和RandomDrop,就变成了ShakeDrop。

ShakeDrop Regularization for Deep Residual Learning

2-10 Manifold Mixup, 2018

manifold mixup是对mixup的扩展,把输入数据(raw input data)混合扩展到对中间隐层输出混合。
这种混合带来了三个优势:平滑决策边界、拉大低置信空间(拉开各类别高置信空间的间距)、展平隐层输出的数值。
Manifold mixup: Better representations by interpolating hidden states

3 Label regularization

结构正则化定义为在训练过程中改变权值而不改变输入kernel值的方法。

3-1 Label Smoothing, 2014

Label Smoothing提出了一种在标签编码过程中的正则化技术,通过修改hone-hot表示的每个位置上的值来实现正则化。smoothing factor通常设置为0.1。

Label Smoothing主要缓解2个问题:

  • 过拟合问题 (overfitting)
  • 对于不确定结果的过度自信问题 ( overconfidence)

Going deeper with convolutions

3-2 TSLA (Two-Stage Label Smoothing), 2020

两阶段标签平滑(TSLA)表明,梯度下降结合Label Smoothing技术只能提高性能到到一定的训练点,之后最好将类别的值设置为0和1。

Towards understanding label smoothing

3-3 SLS (Structural Label Smoothing), 2020

结构标签平滑(SLS)提出通过贝叶斯估计误差来为Label Smoothing因子定义适当的值, 定义每个实例的边界.

Regularization via Structural Label Smoothing

3-4 JoCor, 2020

JoCor提出了一种避免噪声标签对神经网络的影响的新方法。JoCoR在同一数据集上训练2个相似的神经网络,并试图关联2个不同的标签。该方法通过将2个网络的交叉熵损失加上它们之间的对比损失来计算损失,然后只使用批处理上最可忽略的损失来更新架构的参数。

Combating Noisy Labels by Agreement: A Joint Training Method with Co-Regularization

深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks相关推荐

  1. 【论文解读】Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks

    Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks 论文地址:http://cadlab.c ...

  2. 【论文笔记】Question Answering over Freebase with Multi-Column Convolutional Neural Networks

    一.概要   该文章发于ACL 2015,作者提出了一个基于Freebase,使用multi-column convolutional neural networks(MCCNNs)的自动问答模型,分 ...

  3. 【论文阅读笔记】Ristretto: Hardware-Oriented Approximation of Convolutional Neural Networks

    概念 MAC:multiplication-accumulation operations 2. Convolutional Neural Networks 2.2.1 Normalization l ...

  4. 【深度学习论文阅读】TCN:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence

    2018年人工智能十佳论文之一:TCN 论文地址:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for ...

  5. 论文翻译:LP-3DCNN: Unveiling Local Phase in 3D Convolutional Neural Networks

    引言 传统的3D卷积神经网络(CNN)计算成本高,内存密集,容易过度拟合,最重要的是,需要改进其特征学习能力.为了解决这些问题,我们提出了整流局部相位体积(ReLPV)模块,它是标准3D卷积层的有效替 ...

  6. 深度学习(六十九)darknet 实现实验 Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffma

    本文主要实验文献文献<Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization ...

  7. coursera 吴恩达 -- 第一课 神经网络和深度学习 :第三周课后习题 Key concepts on Deep Neural Networks Quiz, 10 questions

    有两道题没有图片...难受

  8. NBJL 2020论文导读14:How Much Position Information Do Convolutional Neural Networks Encode ?

    论文下载地址:https://openreview.net/pdf?id=rJeB36NKvB 发表时间:2020 会议名称:ICLR 作者:Md Amirul Islam.Sen Jia.Neil ...

  9. 深度学习论文阅读列表

    deep_learning_paper_read_lists 同步更新与github https://github.com/chenmeiya/deep_learning_paper_read_lis ...

  10. 深度模型压缩论文(01)- Meta Filter Pruning to Accelerate Deep Convolutional Neural Networks

    文章目录 1.摘要和介绍 1.1摘要部分 2.背景和方法 2.1 背景 2.2 贡献 2.3 方法 3.实验和结果 3.1 实验 3.2 结果 4.总结和展望 4.1 总结 4.2 展望 本系列是在阅 ...

最新文章

  1. 一个ASP.NET中使用的MessageBox类
  2. 洛谷 2680 (NOIp2015) 运输计划
  3. 图解在emu8086中学习汇编语言数字比较程序
  4. Android --- 两种设置字体加粗的方法
  5. 小米手机60帧录屏_手机录屏怎样只录手机内部声音不录入外部声音?教你三种方法,一定能帮到你...
  6. Mysql 会导致锁表的语法
  7. win启动linux iso文件位置,安装Linux之后如何进入win系统?
  8. 中两个数做减法_人生下半场,学会做减法
  9. 关于TCP协议的大部分,面试常问的几点都在这理里了
  10. git笔记(廖雪峰版本)
  11. 直接学python3_学习python用python2还是python3
  12. maven 在pom.xml 中指定仓库位置
  13. Oracle中varchar2(20)和varchar2(20 byte)区别
  14. 清华大学python视频_涨见识了,清华大学全套Python642集视频教程泄露,拿走玩去...
  15. mac系统自带python开发环境吗_Mac OS搭建Python开发环境的几个误区
  16. iOS_SN_深浅拷贝( 百度的)_转载
  17. 快速排序(Quick Sort)附C语言代码
  18. python控制键盘游戏内无效_关于python的游戏《兔子和獾》代码写到用键盘输入WASD控制兔子移动时,兔子移动不了。但是。。。...
  19. EXCEL实现文本类型数字字符串递增
  20. 雷曼 疯狂兔子 java_《雷曼:疯狂兔子》详细流程攻略+个人心得分享

热门文章

  1. Python原生爬虫 --- 50行代码爬取某直播网站主播名和人气值
  2. hadoop-bigdata-v2.2 版本shell脚本一键部署 master、slaver1、slaver2三个节点源代码.
  3. 设计模式——设计模式名中英文对照
  4. Intellij Idea插件开发点滴记录
  5. 这个世界不会因为你有多惨,就一下子对你有多好
  6. 全球与中国泄漏吸收枕头市场深度研究分析报告
  7. AI 生成歌曲《醒来》(可试听)
  8. Word替换特殊字符
  9. Android 11 正式发布:更方便的操作和更安全的隐私
  10. 我喜欢的学科计算机 英文作文,我喜欢的学科写英语作文40字