KaimingInit论文的译读笔记

摘要

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函数,可提高分类精度。

定义

理论上,本文定义了一个新的激活函数:
在这里插入图片描述
这里 y i y_{i} yi是激活函数 f f f在第 i i i个通道的输入, a i a_i ai是控制负数部分斜率的系数。 a i a_i ai中的下标 i i i表示允许不同通道上可以有不同的非线性激活。当 a i = 0 a_i=0 ai=0时,此函数成为ReLU;当 a i a_i ai为可学习的参数时,则将公式(1)称为参数 Parametric ReLU(PReLU)。图1展示了ReLU和PReLU的形状。
在这里插入图片描述
公式(1)等价于 f ( y i ) = max ( 0 , y i ) + a i min ( 0 , y i ) f(y_i)=\text{max}(0,y_i)+a_i\text{min}(0,y_i) f(yi)=max(0,yi)+aimin(0,yi)
  如果 a i a_i ai较小且为固定值,则PReLU变成【20_ReLU_Improve_Models】中的 Leaky ReLU(LReLU)(文中 a i = 0.01 a_i=0.01 ai=0.01)。LReLU的出发点是为了避免零梯度。【20_ReLU_Improve_Models】中的实验表明,LReLU 对精度的影响可以忽略不计。与之不同,本文的方法自适应地与整个模型联合学习PReLU参数。本文期望端到端学习可以获得更加特别的激活函数。
  PReLU会引入很少量的额外参数。额外参数的数量与通道总数相等,在考虑权重总数时几乎是可以忽略不计的。因此,本文预计不会有过拟合的额外风险。本文也考虑了一种通道共享的变体: f ( y i ) = max ( 0 , y i ) + a min ( 0 , y i ) 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同时进行优化。 { a i } \left\{a_i\right\} {ai}的更新公式可以简单地用链式法则推导出来。一个layer中 a i a_i ai的梯度为
在这里插入图片描述
其中 ε \varepsilon ε表示目标函数。 ∂ ε ∂ f ( y i ) \frac{\partial \varepsilon}{\partial f\left(y_i\right )} f(yi)ε项是从更深层传过来的梯度。激活函数的梯度为:
在这里插入图片描述
求和运算 ∑ y i \sum_{y_i} yi会计算特征图的每个位置。对于channel-shared变体, a a a的梯度为 ∂ ε ∂ a = ∑ i ∑ y i ∂ ε ∂ f ( y i ) ∂ f ( y i ) ∂ 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ε=iyif(yi)εaf(yi),其中 ∑ i \sum_i i会在当前layer的所有通道上求和。PReLU的时间复杂度在前向和反向运算中是可以忽略的。
  本文在更新 a i a_i ai时采用基于动量的方法:
在这里插入图片描述
其中, μ \mu μ是动量, ϵ \epsilon ϵ是学习率。值得注意的是,本文在更新 a i a_i ai时没有使用权重衰减(weight decay, l 2 l_2 l2 regularization)。Weight decay倾向于将 a i a_i ai推向零,从而使PReLU偏向ReLU。即使没有正则化(regularization),本文的实验中学习到的系数(指 a i a_i ai),其大小也很少超过1。此外,本文没有限制 a i a_i ai的范围,以至于激活函数可能会是非单调的。本文中统一使用 a i = 0.25 a_i=0.25 ai=0.25作为初始化。

对照实验

本文在一个较深但高效的模型上进行比较,该模型有14个带权值的层。这个模型在【10_CNN_Constrained_Time】中使用过(【10_CNN_Constrained_Time】中的模型E),且其架构如表1所示。
在这里插入图片描述
本文选择这个模型是因为它足以表示一类较深的模型,并且使实验切实可行。
  作为baseline,本文训练了这种代表网络,其中在卷积层和前两个FC层上使用了ReLU函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值