HyperAIHyperAI

Command Palette

Search for a command to run...

深入探究整流器:在 ImageNet 分类任务上超越人类水平性能

Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun

摘要

整流激活单元(整流器)对于最先进的神经网络至关重要。本文从两个方面研究用于图像分类的整流神经网络。首先,我们提出参数化修正线性单元(PReLU),该单元对传统修正单元进行了泛化。PReLU 以几乎为零的额外计算开销和较小的过拟合风险改善了模型的拟合能力。其次,我们推导了一种特别考虑整流非线性特性的鲁棒初始化方法。该方法使我们能够从零开始直接训练极深的整流模型,并探索更深层或更宽的网络架构。基于可学习的激活函数和先进的初始化策略,我们在 ImageNet 2012 分类数据集上实现了 4.94% 的 Top-5 测试错误率。相比 ILSVRC 2014 冠军(GoogLeNet,6.66%),这是 26% 的相对提升。据我们所知,该结果首次超越了该数据集上已报道的人类水平性能(5.1%)。

一句话总结

Microsoft Research 提出 PReLU,该方法以可学习斜率推广传统整流激活,并将其与针对整流非线性量身定制的稳健初始化方法结合,从而从头训练极深整流网络,在 ImageNet 分类上实现 4.94%4.94\%4.94% top-5 错误率,并成为首个在该数据集上超过已报道人类水平性能的结果。

核心贡献

  • 论文提出 PReLU,它是 ReLU 的可学习泛化,通过自适应调节整流器参数来改善模型拟合,几乎不增加额外计算成本,且过拟合风险较小。

  • 论文通过显式建模整流激活的非线性和不对称响应,推导出稳健初始化方法,使得能够直接从头训练极深整流网络,包括具有 30 个权重层的模型。

  • 在 ImageNet 2012 分类数据集上,单模型网络达到 5.71% top-5 错误率,多模型集成达到 4.94% top-5 错误率,相比 GoogLeNet 相对提升 26%,并且是首个报告超过 5.1% 人类水平性能的结果。

引言

卷积神经网络已成为视觉识别的重要方法,应用包括交通标志、人脸和手写数字识别等,近期模型甚至可以在 ImageNet 等大型图像分类任务上接近或超过人类性能。这一进展主要来自更大且更具表达力的网络,并结合正则化、数据增强和大数据集。然而,许多现代网络高度依赖 ReLU 激活,其非对称输出特性在以往设计和训练指导中未得到充分处理,使得非常深的整流网络更难稳定地从头训练。作者通过提出 PReLU 解决这一问题,PReLU 是 ReLU 的自适应扩展,以较低成本提升准确率,并基于 ReLU/PReLU 的非线性推导初始化方法,以帮助直接从零开始训练非常深的网络。

方法

作者将方法围绕两个紧密耦合的模块组织:一个自适应整流激活单元,以及一个遵循整流器统计行为的权重初始化方案。这些模块被嵌入到配备空间金字塔池化和实用多 GPU 训练过程的深层卷积架构中。总体设计目标是使非常深的整流网络更容易优化,同时保持额外计算和参数开销最小。

第一个关键组件是参数化整流线性单元,即 PReLU,它通过学习激活负部分的斜率来推广固定 ReLU。对于第 iii 个通道上的输入值 yiy_iyi​,激活定义为

f(yi)={yi,if yi>0,aiyi,if yi≤0.f(y_i)= \begin{cases} y_i, & \text{if } y_i>0,\\ a_i y_i, & \text{if } y_i\le 0. \end{cases}f(yi​)={yi​,ai​yi​,​if yi​>0,if yi​≤0.​

等价表达式为

f(yi)=max⁡(0,yi)+aimin⁡(0,yi).f(y_i)=\max(0,y_i)+a_i\min(0,y_i).f(yi​)=max(0,yi​)+ai​min(0,yi​).

这里 aia_iai​ 是控制负斜率的可学习系数。当 ai=0a_i=0ai​=0 时,该单元退化为标准 ReLU。当 aia_iai​ 可训练时,模型可以根据数据和每个通道或层的角色自适应调整激活形状。参考下图中的形状。

作者考虑两种变体。在逐通道变体中,每个通道有自己的系数 aia_iai​,因此激活形状可以随特征图变化。在通道共享变体中,一个系数 aaa 由层中所有通道共享:

f(yi)=max⁡(0,yi)+amin⁡(0,yi).f(y_i)=\max(0,y_i)+a\min(0,y_i).f(yi​)=max(0,yi​)+amin(0,yi​).

第二种变体每层只引入一个额外参数。作者认为,即使是逐通道版本增加也非常少参数,因为新增系数数量与通道数成正比,相比总卷积权重数量极小。该设计允许网络学习更专门化的非线性,同时不显著增加模型容量或过拟合风险。

PReLU 的训练通过网络其余部分的反向传播联合完成。对于某一层,损失 E\mathcal{E}E 关于系数 aia_iai​ 的梯度由链式法则导出:

∂E∂ai=∑yi∂E∂f(yi)∂f(yi)∂ai,\frac{\partial \mathcal{E}}{\partial a_i} = \sum_{y_i} \frac{\partial \mathcal{E}}{\partial f(y_i)} \frac{\partial f(y_i)}{\partial a_i},∂ai​∂E​=yi​∑​∂f(yi​)∂E​∂ai​∂f(yi​)​,

其中求和覆盖特征图的所有位置。激活关于系数的导数为

∂f(yi)∂ai={0,if yi>0,yi,if yi≤0.\frac{\partial f(y_i)}{\partial a_i} = \begin{cases} 0, & \text{if } y_i>0,\\ y_i, & \text{if } y_i\le 0. \end{cases}∂ai​∂f(yi​)​={0,yi​,​if yi​>0,if yi​≤0.​

对于通道共享变体,梯度通过求和该层所有通道得到。作者使用动量更新系数:

Δai:=μΔai+ϵ∂E∂ai,\Delta a_i := \mu \Delta a_i + \epsilon \frac{\partial \mathcal{E}}{\partial a_i},Δai​:=μΔai​+ϵ∂ai​∂E​,

其中 μ\muμ 是动量,ϵ\epsilonϵ 是学习率。他们避免对 PReLU 系数使用权重衰减,因为正则化会使 aia_iai​ 偏向零,并将该单元推回 ReLU。在其设计中,PReLU 使用较小但非零的负斜率初始化,通常为 ai=0.25a_i=0.25ai​=0.25,然后在训练期间自由学习。

PReLU 的核心动机来自整流器的不对称行为。ReLU 只输出非负值,这会在激活后产生正的平均响应。PReLU 可以通过允许受控负响应部分抵消这种偏置。这一效应体现在训练后模型的逐层平均响应中,PReLU 通常产生比 ReLU 更小的平均激活值。因此,学习到的激活不再像固定硬阈值,而更像数据自适应非线性。

学习到的整流器也会改变优化轨迹。由于负斜率可训练,来自未激活或近未激活单元的梯度仍可参与更新激活形状和前序层。这使得一阶随机梯度过程在经验意义上更接近条件更好的二阶优化。其实际效果在训练曲线中可见,在相同优化计划下,PReLU 比 ReLU 更快地降低验证误差。

第二个主要方法论组件是整流网络的初始化规则。标准权重初始化方案通常假设近似线性激活,并在线性传播下保持方差。对于 ReLU 和 PReLU,该假设不成立,因为整流会使有效信号方差减半。作者通过跟踪前向激活和后向梯度的方差推导初始化规则。

对于卷积层,预激活响应为

yl=Wlxl+bl.\mathbf{y}_l = W_l \mathbf{x}_l + \mathbf{b}_l.yl​=Wl​xl​+bl​.

令 nl=k2cln_l=k^2 c_lnl​=k2cl​ 表示单个响应的输入连接数,其中 kkk 是空间滤波器大小,clc_lcl​ 是输入通道数。第 lll 层的输入是上一层的激活输出:

xl=f(yl−1).\mathbf{x}_l=f(\mathbf{y}_{l-1}).xl​=f(yl−1​).

如果权重以零均值和独立元素初始化,并假设输入独立,则

Var⁡[yl]=nlVar⁡[wl]Var⁡[xl].\operatorname{Var}[y_l] = n_l \operatorname{Var}[w_l]\operatorname{Var}[x_l].Var[yl​]=nl​Var[wl​]Var[xl​].

由于激活是整流器而非线性函数,激活信号的方差与预激活的方差不相同。对于 ReLU,如果预激活近似关于零对称,则

E[xl2]=12Var⁡[yl−1],E[x_l^2] = \frac{1}{2}\operatorname{Var}[y_{l-1}],E[xl2​]=21​Var[yl−1​],

因此得到

Var⁡[yl]=12nlVar⁡[wl]Var⁡[yl−1].\operatorname{Var}[y_l] = \frac{1}{2} n_l \operatorname{Var}[w_l]\operatorname{Var}[y_{l-1}].Var[yl​]=21​nl​Var[wl​]Var[yl−1​].

在许多层中,总前向传播因子因此是形如 12nlVar⁡[wl]\frac{1}{2} n_l \operatorname{Var}[w_l]21​nl​Var[wl​] 的项的乘积。为避免信号指数级衰减或爆炸,作者对每个整流层施加条件

12nlVar⁡[wl]=1\frac{1}{2} n_l \operatorname{Var}[w_l] = 121​nl​Var[wl​]=1

这相当于用标准差为

σ=2nl.\sigma = \sqrt{\frac{2}{n_l}}.σ=nl​2​​.

的零均值高斯分布初始化权重。该缩放显式考虑了 ReLU 平均丢弃负半空间一半方差这一事实。

作者对反向传播重复相同逻辑。通过卷积层反向传播的梯度取决于转置权重结构。令 n^l=k2dl\hat{n}_l=k^2 d_ln^l​=k2dl​ 表示输出连接数,其中 dld_ldl​ 是第 lll 层的滤波器数量。在类似独立性假设下,反向方差关系变为

Var⁡[Δxl]=12n^lVar⁡[wl]Var⁡[Δxl+1].\operatorname{Var}[\Delta x_l] = \frac{1}{2} \hat{n}_l \operatorname{Var}[w_l]\operatorname{Var}[\Delta x_{l+1}].Var[Δxl​]=21​n^l​Var[wl​]Var[Δxl+1​].

为防止梯度随深度消失或爆炸,反向条件为

12n^lVar⁡[wl]=1.\frac{1}{2} \hat{n}_l \operatorname{Var}[w_l] = 1.21​n^l​Var[wl​]=1.

这得到另一种标准差为

σ=2n^l.\sigma = \sqrt{\frac{2}{\hat{n}_l}}.σ=n^l​2​​.

的零均值高斯初始化。

对于 PReLU,方差因子受负斜率期望幅值修改。如果初始系数为 aaa,前向条件变为

12(1+a2)nlVar⁡[wl]=1,\frac{1}{2}(1+a^2)n_l\operatorname{Var}[w_l]=1,21​(1+a2)nl​Var[wl​]=1,

反向条件变为

12(1+a2)n^lVar⁡[wl]=1.\frac{1}{2}(1+a^2)\hat{n}_l\operatorname{Var}[w_l]=1.21​(1+a2)n^l​Var[wl​]=1.

当 a=0a=0a=0 时,这些条件退化为 ReLU 情形。当 a=1a=1a=1 时,初始化接近标准线性激活条件。该公式使初始化规则依赖于实际整流器族,而不是在初始化时将网络视为线性。

所得初始化设计对极深整流网络尤其重要。基于线性激活的标准初始化可能导致非常深的模型停滞,因为有效信号或梯度被过多小因子相乘。相比之下,考虑整流器的缩放稳定了方差传播,使作者能够直接从头训练深层架构。这种差异在比较非常深模型的收敛行为时尤其明显。

这些方法论组件被嵌入到面向高容量图像分类的卷积网络设计中。基线架构与常规 19 层网络相比采用更深且更紧凑的卷积阶段排列。第一层使用较大的 7×77\times 77×7 滤波器,步幅为 2。额外卷积层位于更小的特征图上,而不是位于最大的早期特征图上,这在保持计算复杂度相近的同时降低了处理大空间分辨率的实际运行开销。

在第一个全连接层之前,网络使用空间金字塔池化。金字塔有四个层级,池化 bin 大小分别为 7×77\times 77×7、3×33\times 33×3、2×22\times 22×2 和 1×11\times 11×1,从可变空间范围生成固定长度表示。这使得网络能够结合局部和全局上下文,而无需在测试时要求固定裁剪尺寸。作者进一步通过增加卷积层或滤波器数量构建更深和更宽的变体,同时保留使用整流单元和所提出初始化的总体设计原则。

训练流程有意直接。不同于先预训练较浅模型再将权重迁移到较深模型,作者使用所提出初始化从头训练完整深层架构。训练过程依赖激进的数据增强,包括随机裁剪、在整个训练过程中应用的随机尺度抖动(而非仅在微调期间)、水平翻转和颜色变换。该增强策略支持具有大量参数的大型网络的稳定优化。

优化过程使用基于动量的随机梯度下降。权重衰减较小,动量设置为较高值,在前两个全连接层应用 dropout,并固定小批量大小。当验证误差进入平台期时,分阶段降低学习率。由于 PReLU 系数是模型的一部分,它们在相同的前向和反向传播过程中被优化,无需单独训练阶段。

在推理阶段,架构使用稠密滑动窗口测试过程。将卷积层应用于缩放后的整张图像,生成特征图。然后对该特征图上的许多窗口应用空间金字塔池化,全连接层计算这些池化区域的类别分数。对多个空间位置和多图像尺度的分数进行平均,并使用水平翻转图像聚合预测。该设计将网络转变为高效利用卷积特征图的稠密评估系统。

实现还包含一个简单但有效的多 GPU 并行化策略。卷积层通过数据并行在多个 GPU 上并行化。在第一个全连接层之前,GPU 之间进行同步。随后全连接层在单个 GPU 上执行,因为相对于卷积栈,其计算成本较小。这种选择使实现比模型并行更简单,同时仍允许在固定小批量大小下高效训练深度卷积网络。

实验

ImageNet 分类和迁移到 PASCAL VOC 检测的实验评估了学习到的 PReLU 激活和稳健权重初始化如何影响深度卷积网络。结果表明,PReLU 相比 ReLU 始终改善优化行为和泛化能力,同时保持所学特征质量,而固定 leaky 斜率效果较差。该初始化方法使非常深的整流网络能够可靠训练,不过一旦模型已足够深,仅增加深度未必提升 ImageNet 准确率。总体而言,使用学习激活和有原则初始化端到端训练的更深且更宽的整流模型实现了强分类和迁移性能,领先的多模型系统在基准上超过已报道的人类水平准确率。

上下文描述一个紧凑的 14 层网络,其层使用 7×7 和 2×2 卷积,并列出每层学习到的 PReLU 系数。学习到的负斜率不为零,表明 PReLU 为负输入赋予有效斜率,而非像 ReLU 一样丢弃它们。逐通道平均值也与共享斜率不同,表明激活形状可以按层和按通道自适应。该架构首先使用较大的 7×7 步幅为 2 的卷积,然后使用重复的 2×2 卷积层,并配备 128 个滤波器。学习到的 PReLU 系数随层变化,首层和较后层比中间卷积块表现出更大的负斜率。周围实验指出 PReLU 相比 ReLU 改善分类和迁移性能,这与学习到的非零斜率一致。

结果在小规模 ImageNet 分类器上比较固定负侧激活斜率和学习到的负侧激活斜率。学习到的 PReLU 变体相比 ReLU 和固定 leaky ReLU 实现更低的 top-1 和 top-5 错误率,其中逐通道斜率表现最佳。这种增益几乎不增加额外计算成本。PReLU 在 top-1 和 top-5 指标上均优于 ReLU。逐通道 PReLU 略优于通道共享 PReLU。固定 leaky 斜率相比 ReLU 提升很小。

这些架构将 VGG-19 与模型 A、B 和 C 进行比较,它们都由卷积块和池化阶段构成,用于 224 输入。模型 A 将卷积移至更小特征图以加速执行,同时保持总体开销接近 VGG-19;模型 B 在不显著改变宽度的情况下增加深度。模型 C 保留 B 的更深结构但加宽网络,这大幅增加计算成本并带来更高准确率。模型 A 将工作负载转移到更小特征图以提高运行速度,同时保持复杂度接近 VGG-19。在模型 A 基础上增加深度得到模型 B,但更深模型与较浅模型表现相近。将模型 B 加宽为模型 C 会显著增加复杂度并提升准确率。

对于在 ImageNet 2012 稠密测试上评估的大模型,在每个测试输入尺度下,PReLU 始终实现比 ReLU 更低的 top-1 和 top-5 错误率。当跨多个尺度组合预测时,PReLU 在两个错误指标上均带来适度但清晰的下降。比较还表明 PReLU 收敛更快,并在整个训练过程中保持更低的训练和验证误差。在大模型上,PReLU 相比 ReLU 同时提升 top-1 和 top-5 性能。单尺度和多尺度评估均观察到准确率提升。这种收益几乎不增加额外计算成本。

单模型 ImageNet 验证结果表明,在相同架构下,PReLU 始终比 ReLU 降低 top-1 和 top-5 错误。在 PReLU 模型中,最宽的变体实现最低错误率,而两个深度相似的模型表现接近。这表明仅增加深度带来的收益有限,而增加宽度仍可提升准确率。在可比较的单模型设置下,PReLU 相比 ReLU 给出更低的 top-1 和 top-5 错误。最宽的 PReLU 模型在比较中产生最强单模型结果。当模型已经足够深时,加宽模型可进一步提升准确率。

在紧凑和大型 ImageNet 网络上的实验表明,PReLU 中学习负激活斜率始终提升分类准确率,优于 ReLU 和固定 Leaky ReLU,其中逐通道自适应在可忽略计算开销下表现最佳。架构消融实验揭示,仅增加深度带来的收益有限,而增加宽度可提升准确率,尤其在已经足够深的模型中。总体而言,结果验证了 PReLU 的自适应激活形状是对深度卷积网络的一种有效低成本改进。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供