PReLU——Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification

1. 摘要

ReLU 的基础上作者提出了 PReLU,在几乎没有增加额外参数的前提下既可以提升模型的拟合能力,又能减小过拟合风险。

针对 ReLU/PReLU 的矫正非线性,作者设计了一个鲁棒的的参数初始化方法。

2. 介绍

在过去几年,随着更强大网络模型的构建和有效防止过拟合策略的设计,我们在视觉识别任务上取得了长足的进步。一方面,由于网络复杂性的增加(比如增加深度、扩大宽度)、小步长的使用、新的激活函数和更成熟的网络层设计,神经网络变得更加能够拟合训练数据。另一方面,有效的正则化技术、数据增广和大规模的数据让网络获得了更好的泛化能力。

其中,激活函数 ReLU 是其中一个非常关键的因素,本文在此基础上做了两点主要改进。首先,我们提出了一个新的激活函数 PReLU (Parametric Rectified Linear Unit),该激活函数可以自适应地学习矫正线性单元的参数,并且能够在增加可忽略的额外计算成本下提高准确率。其次,我们研究了模型训练的难度,得出了一种理论上合理的初始化方法,有助于深层网络模型的收敛。

3. PReLU

我们设计的激活函数定义如下:

其中,y_i 是非线性激活函数 f 在第 i 个通道的输入,a_i 负责控制负半轴的斜率。在这里,我们允许不同通道的激活函数不一样。当 a_i=0 时,PReLU 就变成了 ReLU,而且 a_i 是一个可以学习的参数。

如果 a_i 是一个小的固定值,那么 PReLU 就变成了 LReLU(Leaky ReLU)。LReLU 的动机是为了避免零梯度,实验表明 LReLU 相较 ReLU 对准确率几乎没有提高。但是,作者希望模型能够自适应地学习 PReLU 的参数,从而能够得到更专门的激活函数。

另外,作者也设计了一个通道共享的变体,也就是同一层网络所有通道共享同一个参数,这样,每一层仅仅引入了一个额外的参数。

在反向传播过程中,{a_i} 的更新公式可以通过链式法则求出,\varepsilon 代表目标函数。

然后,采用动量的方法来更新 {a_i}

作者没有使用权重衰减(L2 正则化),因为这样会让 {a_i} 趋向于 0。在实验中,即使没有正则化,学习到的系数幅度也很少会大于 1。而且,对 {a_i} 的范围也未做限制,因此激活函数也可能是非单调的。

作者设计了一个简单的网络来验证 PReLU 的有效性,学习到的系数如下表所示。

这其中,有两个有意思的现象。一,第一个卷积层的系数远远比 0 要大(0.681, 0.596),因为这一层的卷积核大部分是类 Gabor 过滤器,比如说边缘、纹理检测器,学习到的结果表明卷积核的正负响应都被接受。这在卷积核数量有限的情况下,可以被认为是一个更加经济地利用低层次信息的方式。二,对于通道独立的激活函数,较深的卷积层通常具有较小的系数。 这意味着激活函数在深度增加时逐渐变得“更加非线性”。 换句话说,学习模型倾向于在较早阶段保留更多信息,并在更深层次阶段变得更具辨别力。

针对通道共享的版本,PReLU 仅仅引入了 13 个额外的参数,却取得了相对于基线情况 1.1% 的提升,这也表明了自适应学习激活函数形状的重要性。

4. 卷积核权重的初始化

近来,深层卷积神经网络的权重都是用正态分布来初始化的。若采用固定的标准差,非常深的模型很难收敛。对此,我们可以采取预训练的方式来初始化模型,但这样就需要更长的训练时间。先前的学者也提出了一个 Xavier 初始化方法,但它针对的是激活函数满足线性的情况, ReLU/PReLU 却不满足这个特性。

4.1. 前向传播情况

针对一个卷积层,其前向传播为:

x 是一个 k^2c*1 的向量,代表 c 个通道 k×k 区域的像素,k 是卷积核的大小,n=k^2c 代表一个激活值局部连接的像素个数。W 是一个 d×n 的矩阵,d 是卷积核的个数,W 的每一行代表一个卷积核的权重。我们用 l 来标识某一层,则有 x_l=f(y_{l-1})f 是激活函数,且有 c_l=d_{l-1}

我们让 W_l 初始化的元素互相独立且同分布,然后假设 x_l 中的元素也是互相独立并且同分布的,而且 x_lW_l 互相独立,那么有:

Var[X_1+X_2+\cdots+X_n] = Var[X_1] + Var[X_2] + \cdots +Var[X_n],如果 X_1,X_2,\cdots,X_n 互相独立,这里每个 w_l^i*x_l^i 是互相独立的,总共对 n_l 项求和。

w_l 具有零均值,然后有:

Var[X]=E[X^2]-(E[X])^2
Var[w_l] = E[w_l^2]-(E[w_l])^2=E[w_l^2]
E[w_l]E[x_l] = 0*E[x_l]=0
Var[w_lx_l]=E[(w_lx_l)^2]-(E[w_lx_l])^2=E[w_l^2]E[x_l^2]-(E[w_l]E[x_l])^2=Var[w_l]E[x_l^2]

这里,E[x_l^2] \not = Var[x_l],因为 ReLU 激活函数关于原点不对称,x_l 均值不为 0。

如果让 w_{l-1} 关于原点对称分布并且 b_{l-1}=0,那么 y_{l-1} 也具有对称分布并且均值为 0。那么有:

Var[y_{l-1}] =E[y_{l-1}^2]-(E[y_{l-1}])^2=E[y_{l-1}^2]

经过 ReLU 激活函数后,一半的 y_{l-1} 变成了 0,所以有:

E[x_l^2]=\frac{1}{2}E[y_{l-1}^2]=\frac{1}{2}Var[y_{l-1}]

代入前面的式子,可得:

L 层网络放在一起,则有:

这个乘积是初始化参数的关键。一个合适的初始化方式应该避免指数级减少或者放大输入信号的幅度,因此我们期望上面的乘积有一个合理的尺度,比如 1。

这就是一个零均值标准差为 \sqrt{2/n_l} 的正态分布,也就是作者提出的参数初始化方式,同时,初始化偏置 b=0

针对第一层网络,对输入我们没有应用激活函数,因此应该有 n_1Var[w_1]=1,但这只有一层,为了简化,所有层的参数我们都按照上面的式子来初始化。

4.2. 反向传播情况

同理,一个卷积层的反向传播可以表示为:

这里,为了简化,\Delta x\Delta y 就代表相应变量的梯度。

\Delta y 代表 d 个通道 k×k 区域的像素,被调整为了一个 k^2d*1 的向量。\hat n=k^2d\not =n\hat W 是一个 c×\hat n 的矩阵,\Delta x 是一个 c*1 的向量,代表这一层每个像素的梯度值。

假设 w_l\Delta y_l 互相独立,w_l 关于原点对称且具有零均值,那么 \Delta x_l 也具有零均值。同时,我们有:

\Delta y_l=f'(y_l)\Delta x_{l+1}

如果激活函数是 ReLU,那么 f'(y_l) 要么为 0 要么为 1,而且概率相等,因此有:

因子 \frac{1}{2} 的出现都是因为激活函数是 ReLU,把 L 层网络放在一起,则有:

如果梯度不会指数级增大或者缩小的话,需要有:

这是一个零均值标准差为 \sqrt{2/\hat n_l} 的正态分布,和前面唯一不同的是 \hat n_l=k_l^2d_ln_l=k_l^2c_l=k_l^2d_{l-1}。针对第一层网络,对输入我们不需要求梯度,但同理为了简化,所有层的参数我们都采用一样的方式来初始化。

通过前向传播得到的式子和通过反向传播得到的式子都是可行的,因为二者只是相差了一个因子。也就是说如果初始化能够适当地缩放后向信号,那么前向信号也是如此; 反之亦然。对于作者实验的所有模型,两种形式都可以使它们收敛。

针对 PReLU,我们则很容易得到:

5. 实验

5.1 和 Xavier 初始化方法的对比

针对一个 22 层的模型,用本文提出的初始化方式比 Xavier 能更快收敛。

针对一个 30 层的模型,用本文提出的初始化方式可以使模型收敛,但用 Xavier 则无法收敛。

5.2 ReLUPReLU 的对比

5.3 和其他模型的对比

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容