摘要

Rectified activation units (rectifiers)(即:整流激活单元,一般就是ReLU函数,因为在本文中Kaiming还提出了PReLU,所以他这里用的是“rectified activation unit”这个术语)在SOTA的神经网络中至关重要。在本文中,作者从两方面探究了针对图像分类的整流器神经网络。首先,本文提出PReLU,作为传统整流单元的推广形式。其次,作者推导出一种更加鲁棒的初始化方法,尤其是考虑到整流器的非线性。这项方法能够从头开始训练非常深的rectified(整流)模型,并研究更深或更广的网络架构。基于提出的PReLU的网络,本文在ImageNet2012分类数据集上实现了4.94%的top-5测试误差率。这比ILSVRC2014获胜者(GoogLeNet,6.66%【29_GoogLeNet】)提高了26%。据本文所知,本文结果是第一个在此项视觉识别挑战赛中超越人类水平(5.1%,【22_ImageNet2014】)的模型。

1 引言

  CNNs【17_BP_Zip Recognition, 16_AlexNet】在多个视觉识别任务中已经展现出与人类更好或相当的识别精度,包括识别交通标志【3_Multicolumn_DNN】、人脸【30_DeepFace, 28_Learning_Face_Representation】和手写数字【3_Multicolumn_DNN, 31_DropConnect】。本文展示的结果在一个更加通用和更具挑战性的识别任务——1000类ImageNet分类任务【22_ImageNet2014】上超越了人类水平。
  在近几年见证了识别算法性能的巨大提升,主要是由于两个技术方向的进步:构建更加强大的模型,以及设计有效的策略来防止过拟合。一方面,神经网络拟合训练数据的能力越来越强,这是因为复杂度增加(s深度增加【25_VGG, 29_GoogLeNet】,宽度增加【33_Visualize_CNN, 24_OverFeat】和小步长的使用【33_Visualize_CNN, 24_OverFeat, 2_, 25_VGG】),新的激活函数【21_ReLU_Improve_Boltzmann, 20_ReLU_Improve_Models, 34_ReLU_Speech_Processing, 19_Network_In_Network, 27_Compete_To_Compute, 9_Maxout_Networks】和复杂的layer设计【29_GoogLeNet, 11_SPPNet】。另一方面,通过有效的正则化【12_Dropout, 26_Dropout_To_Journal, 9_Maxout_Networks, 31_DropConnect】、积极的数据增广【16_AlexNet, 13_Improve_CNN_2013, 25_VGG, 29_GoogLeNet】和大规模数据【4_ImageNet, 22_ImageNet2014】,可以实现更好的泛化能力。
  在这些进展中, rectifier neuron【21_ReLU_Improve_Boltzmann, 8_ReLU_NN, 20_ReLU_Improve_Models, 34_ReLU_Speech_Processing】如ReLU是深度神经网络【16_AlexNet】取得成功的关键之一。它加快了训练过程的收敛【16_AlexNet】,并且相比传统Sigmoid方式,可以构建出更好的模型【21_ReLU_Improve_Boltzmann, 8_ReLU_NN, 20_ReLU_Improve_Models, 34_ReLU_Speech_Processing】。尽管 rectifier networks盛行,但近期的模型改进【33_Visualize_CNN, 24_OverFeat, 11_SPPNet, 25_VGG, 29_GoogLeNet】和训练它们的理论指导【7_XavierInit, 23_Solutions_Nonlinear_Dynamics】很少关注于整流器的性质。
  本文从两个方面探究了神经网络,主要来自于rectifiers的推动。首先,本文提出了新的ReLU函数的泛化表示,称为 Parametric Rectified Linear Unit(PReLU)。此激活函数可以自适应的学习整流器函数中的参数,并且在微小可忽略的计算量增加下提高精度。其次,本文探究了训练非常深整流器模型的困难指出。通过对整流器(ReLU/PReLU)的非线性进行显式建模,本文推导出一种理论合理的初始化方法,有助于非常深模型(例如,30个权重层)从头训练的收敛。此方法有助于更灵活地探索更加强大的网络架构。
  在ImageNet2012的1000类数据集上,本文提出的PReLU网络(PReLU-net)获得了单模5.71%-top-5误差率的结果,超越了当时已有的多模结果。除此之外,本文的multi-model模型在测试集上实现了4.94%-top-5误差率,相对于ILSVRC2014获胜者(GoogLeNet, 6.66%【29_GoogLeNet】)提升了26%。在当时,本文的结果首次超越了文献报告该视觉比赛的人类水平(【22_ImageNet2014】中的5.1%)。

2 方法

本章将首先描述PReLU激活函数(章节2.1)。之后推导用于深层整流网络的新型初始化方法(章节2.2)。最后本文将讨论提出的架构设计(章节2.3)。

2.1 带参数的整流器函数

本文将展示用带参数的激活函数替换无参数的ReLU函数,可提高分类精度。

定义

理论上,本文定义了一个新的激活函数:

这里yiy_{i}yi​是激活函数fff在第iii个通道的输入,aia_iai​是控制负数部分斜率的系数。aia_iai​中的下标iii表示允许不同通道上可以有不同的非线性激活。当ai=0a_i=0ai​=0时,此函数成为ReLU;当aia_iai​为可学习的参数时,则将公式(1)称为参数 Parametric ReLU(PReLU)。图1展示了ReLU和PReLU的形状。

公式(1)等价于f(yi)=max(0,yi)+aimin(0,yi)f(y_i)=\text{max}(0,y_i)+a_i\text{min}(0,y_i)f(yi​)=max(0,yi​)+ai​min(0,yi​)。
  如果aia_iai​较小且为固定值,则PReLU变成【20_ReLU_Improve_Models】中的 Leaky ReLU(LReLU)(文中ai=0.01a_i=0.01ai​=0.01)。LReLU的出发点是为了避免零梯度。【20_ReLU_Improve_Models】中的实验表明,LReLU 对精度的影响可以忽略不计。与之不同,本文的方法自适应地与整个模型联合学习PReLU参数。本文期望端到端学习可以获得更加特别的激活函数。
  PReLU会引入很少量的额外参数。额外参数的数量与通道总数相等,在考虑权重总数时几乎是可以忽略不计的。因此,本文预计不会有过拟合的额外风险。本文也考虑了一种通道共享的变体:f(yi)=max(0,yi)+amin(0,yi)f(y_i)=\text{max}(0,y_i)+a\text{min}(0,y_i)f(yi​)=max(0,yi​)+amin(0,yi​),其中系数是被一个layer中所有通道共享的。这种变体仅会在每个layer中引入一个额外参数。

优化

PReLU可以使用反向传播【17_BP_Zip Recognition】来训练,并且同时跟其它layers同时进行优化。{ai}\left\{a_i\right\}{ai​}的更新公式可以简单地用链式法则推导出来。一个layer中aia_iai​的梯度为

其中ε\varepsilonε表示目标函数。∂ε∂f(yi)\frac{\partial \varepsilon}{\partial f\left(y_i\right )}∂f(yi​)∂ε​项是从更深层传过来的梯度。激活函数的梯度为:

求和运算∑yi\sum_{y_i}∑yi​​会计算特征图的每个位置。对于channel-shared变体,aaa的梯度为∂ε∂a=∑i∑yi∂ε∂f(yi)∂f(yi)∂a\frac{\partial \varepsilon}{\partial a}=\sum_{i}\sum_{y_i}\frac{\partial \varepsilon}{\partial f\left(y_i\right )}\frac{\partial f\left(y_i\right )}{\partial a}∂a∂ε​=∑i​∑yi​​∂f(yi​)∂ε​∂a∂f(yi​)​,其中∑i\sum_i∑i​会在当前layer的所有通道上求和。PReLU的时间复杂度在前向和反向运算中是可以忽略的。
  本文在更新aia_iai​时采用基于动量的方法:

其中,μ\muμ是动量,ϵ\epsilonϵ是学习率。值得注意的是,本文在更新aia_iai​时没有使用权重衰减(weight decay, l2l_2l2​ regularization)。Weight decay倾向于将aia_iai​推向零,从而使PReLU偏向ReLU。即使没有正则化(regularization),本文的实验中学习到的系数(指aia_iai​),其大小也很少超过1。此外,本文没有限制aia_iai​的范围,以至于激活函数可能会是非单调的。本文中统一使用ai=0.25a_i=0.25ai​=0.25作为初始化。

对照实验

本文在一个较深但高效的模型上进行比较,该模型有14个带权值的层。这个模型在【10_CNN_Constrained_Time】中使用过(【10_CNN_Constrained_Time】中的模型E),且其架构如表1所示。

本文选择这个模型是因为它足以表示一类较深的模型,并且使实验切实可行。
  作为baseline,本文训练了这种代表网络,其中在卷积层和前两个FC层上使用了ReLU函数。

KaimingInit论文的译读笔记相关推荐

  1. CBNetV2论文的译读笔记

    论文名称 CBNetV2: A Composite Backbone Network Architecture for Object Detection 摘要 如今性能最好的目标检测器在很大程度上依赖 ...

  2. MABN论文的译读笔记

    摘要 BN是深度学习领域使用最广泛的方法之一:但是其性能会因为batch-size不足而严重下降.这个缺点限制了BN在某些计算机视觉任务上的应用,例如:检测和分割,某些情况下由于内存使用的限制batc ...

  3. ShuffleNetV2论文译读笔记

    论文 Ma, Ningning, et al. "Shufflenet v2: Practical guidelines for efficient cnn architecture des ...

  4. MobileNetV3论文译读笔记

    论文 Searching for MobileNetV3 摘要 本文提出了新一代的MobileNets模型,基于互补搜索技术的组合,同时这也是一种新型的架构设计.(实际上就是加入了NAS方法)Mobi ...

  5. PicoDet论文译读笔记

    PP-PicoDet: A Better Real-Time Object Detector on Mobile Devices 摘要 在目标检测中如何实现更好的精度-速度均衡是一个具有挑战性的问题. ...

  6. 【NIPS 2020】Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for...译读笔记

    论文名称 Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Dete ...

  7. 【CVPR 2021】VarifocalNet: An IoU-aware Dense Object Detector的译读笔记

    论文 VarifocalNet: An IoU-aware Dense Object Detector 摘要 准确排序大量候选框对dense检测器获得高精度是十分重要的.之前的工作使用类别分数或者类别 ...

  8. 【IEEE Transactions NNLS】DSAN: Deep Subdomain Adaptation Network for Image Classification译读笔记

    笔记 摘要 对于标注数据难以获取的目标任务来说,域自适应能够将知识从一个不同的源域中将知识迁移过来.之前的深度域自适应方法主要学习全局域漂移,即在全局上对齐源分布和目标分布,而不考虑两个同类别不同域的 ...

  9. 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记

    论文信息 Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention 摘要 使用SAR进行 ...

最新文章

  1. 为何你叫妹子笑,却拍出无数黑照?
  2. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
  3. 深入理解计算机系统学后感,深入理解计算机系统(读书笔记)
  4. 《Python快速入门》基础知识扫盲课
  5. 归纳一下:C#线程同步的几种方法
  6. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(2) - 32位EFLAGS - 80386(386, Intel386)/80486(486, Intel486)
  7. 多线程怎么保证数据安全_Python threading实现多线程 提高篇 线程同步,以及各种锁...
  8. 【PL/SQL】异常处理
  9. 17. PHP 表单处理
  10. GEE、USGS、地理空间数据云上下载武汉地区的影像数据
  11. 十进制转换成十六进制
  12. HTML特效代码汇总
  13. 手写数字识别--Android Studio 加载tensorflow模型
  14. 使用mpvue实现动态图片波浪图效果
  15. 浏览器加载网页的过程
  16. 记录Google被和谐的日子
  17. 三星EMMC选型常识
  18. 光盘显示0字节可用_HT光盘刻录管理系统~一套光盘智能管理的系统解决方案
  19. 华为 Ascend Mate 初体验|主流跑分软件测试|特色功能体验|拍照能力对比
  20. Cadence Allegro如何生成PCB截面图

热门文章

  1. FCKEditor 打开页面总是得到焦点问题处理 FCKConfig.StartupFocus=false;
  2. javascript forEach方法
  3. Android大学课件SQLite3 数据库操作
  4. mybatis的拦截器及分页机制
  5. 园子装修 | 打造自己的直男审美博客园(施工中,持续更新)
  6. python之列表生成式
  7. 统一横轴墨卡托投影(UTM)
  8. 在被打击后的心里变化
  9. 【matplotlib笔记】plt.subplot()绘制子图
  10. 使用枚举创建枚举常量池