A04 · 第 5 章 · 第三编 训练基础与综合复习

参数初始化与梯度流

在独立、零均值和宽层近似下分析前向与反向方差传播,解释 Xavier 与 He 尺度及其前提,并用激活饱和、归一化、残差路径和逐层统计诊断梯度消失或爆炸。

报告页面错误
预备知识反向传播与反向模式自动微分激活函数期望、方差与协方差矩阵乘法

本章目标

  1. 在权重独立零均值近似下推导仿射层前向方差与扇入关系。
  2. 解释 Xavier 与 He 初始化分别匹配哪些激活近似,并列出失效前提。
  3. 用激活导数乘积识别 sigmoid、tanh、ReLU 网络的消失、爆炸与死亡单元。
  4. 说明归一化和残差恒等路径如何改变尺度传播,同时保留其局限。
  5. 设计包含激活、梯度、更新比例、随机种子和小批量对照的训练诊断。
页面阅读位置0% · 仅保存在此浏览器
章节未开始
本册完成进度0/6 章 · 0%
本页目录

初始化先决定信号处在哪个尺度

深层网络在第一次更新前已经执行许多矩阵乘法与非线性。权重太小会让激活和梯度逐层衰减,太大会让它们放大、饱和或溢出。所有权重初始化为零还会让同层神经元保持完全对称,接收相同梯度,宽层退化为重复单元;因此需要随机破坏对称,同时控制尺度。

初始化不是独立于架构的常数表。激活函数、扇入扇出、残差缩放、归一化位置、偏置、数据尺度和损失都影响传播。Xavier 或 He 公式是在特定近似下的起点,不是对任意网络保证“方差永远不变”的定理。

仿射层前向方差来自扇入求和

考虑单个预激活

zj=i=1ninWjiai+bj.z_j=\sum_{i=1}^{n_{\mathrm{in}}}W_{ji}a_i+b_j.

WjiW_{ji} 相互独立、均值为零,与 aia_i 近似独立;aia_i 也近似同分布且交叉协方差可忽略,偏置初始为零,则

Var(zj)ninVar(Wji)E[ai2].\operatorname{Var}(z_j) \approx n_{\mathrm{in}}\operatorname{Var}(W_{ji})\mathbb E[a_i^2].

若激活均值也为零,二阶矩等于方差;ReLU 输出均值不为零,继续传播时应使用二阶矩而不是机械替换成方差。实际训练中权重和激活很快相关,卷积共享、注意力和残差又破坏独立假设,因此该式是尺度近似。

例 1:线性与 ReLU 的前向二阶矩

扇入一百,输入独立、零均值、方差一。若权重方差为 1/1001/100,预激活方差约为一,适合近线性的传播。若预激活近似对称高斯,ReLU 保留正半轴,E[ReLU(z)2]12E[z2]\mathbb E[\operatorname{ReLU}(z)^2]\approx\tfrac12\mathbb E[z^2],输出二阶矩约为二分之一。

下一层若仍用 1/1001/100,二阶矩会继续近似减半。改用权重方差 2/1002/100 时,预激活二阶矩约为二,经过 ReLU 后回到约一,这就是 He 尺度中的因子二来源。它依赖对称输入和约一半门开启;强偏置或非对称数据会改变比例。

Xavier 在近线性激活中折中前向与反向

对线性或工作在零附近的 tanh,若希望前向方差保持,可取 Var(W)1/nin\operatorname{Var}(W)\approx1/n_{\mathrm{in}}。反向梯度从下一层按 WW^\top 求和,希望梯度方差保持则倾向 1/nout1/n_{\mathrm{out}}。扇入扇出不同无法同时精确满足,Xavier 常用折中

Var(W)=2nin+nout.\operatorname{Var}(W)=\frac{2}{n_{\mathrm{in}}+n_{\mathrm{out}}}.

高斯初始化使用相应标准差;均匀分布 [a,a][-a,a] 的方差为 a2/3a^2/3,因此令 a=6/(nin+nout)a=\sqrt{6/(n_{\mathrm{in}}+n_{\mathrm{out}})} 得同一方差。比较初始化必须比较方差而非把不同分布的“范围”直接相等。

tanh 只有在预激活靠近零时导数接近一;尺度过大使输出靠近正负一、导数接近零,Xavier 的线性近似失效。sigmoid 在零处最大导数也只有四分之一,且输出均值约二分之一,深层无中心化传播更容易偏移和衰减。

He 尺度补偿 ReLU 门控

对称预激活和 ReLU 的近似下,约一半单元导数为一、另一半为零。为了补偿前向二阶矩与反向梯度二阶矩的二分之一,常取

Var(W)=2nin\operatorname{Var}(W)=\frac{2}{n_{\mathrm{in}}}

作为前向优先的 He 初始化;若从扇出角度保护反向,也有使用 2/nout2/n_{\mathrm{out}} 的变体。带负斜率 cc 的 leaky ReLU 可将因子改为约 2/(1+c2)2/(1+c^2) 再除以相应扇数。

卷积层的扇入通常是输入通道数乘核空间大小,分组卷积还要除以组数;转置卷积和特殊张量布局需要按实际每个输出汇聚的独立输入数定义。错误地只用通道数,会让尺度差一个核面积倍数。

例 2:卷积核的扇入与标准差

一个二维卷积有六十四个输入通道,核为三乘三,不分组。每个输出位置汇聚的扇入为 64×3×3=57664\times3\times3=576。ReLU 前向 He 高斯权重方差为 2/576=1/2882/576=1/288,标准差约 0.05890.0589

若误把扇入写成六十四,标准差为 2/640.1768\sqrt{2/64}\approx0.1768,约大三倍,预激活方差约大九倍。对于八组卷积,每个输出只连接八个输入通道,扇入应为 8×9=728\times9=72;公式必须跟实际连接图,而不是层名走。

反向方差还乘激活导数

z(l)=W(l)a(l1),a(l)=ϕ(z(l))z^{(l)}=W^{(l)}a^{(l-1)},a^{(l)}=\phi(z^{(l)}) 的反向近似为

δ(l1)=(W(l))δ(l)ϕ(z(l1)).\delta^{(l-1)}=(W^{(l)})^\top\delta^{(l)}\odot\phi'(z^{(l-1)}).

在类似独立近似下,梯度二阶矩每层乘上扇出、权重方差和 E[(ϕ)2]\mathbb E[(\phi')^2]。这些因子长期小于一产生消失,大于一产生爆炸;它们不是常数,随预激活分布和训练状态变化。

例 3:sigmoid 饱和如何截断梯度

sigmoid 导数为 σ(z)(1σ(z))\sigma(z)(1-\sigma(z))。在 z=0z=0 时导数为 0.250.25;在 z=8z=8σ(8)0.999665\sigma(8)\approx0.999665,导数约 0.0003350.000335。若十层都处在零附近,仅激活导数乘积上界也为 0.25109.5×1070.25^{10}\approx9.5\times10^{-7};进入八附近则衰减更剧烈。

这不是说任何 sigmoid 网络都无法训练,权重矩阵、归一化、跳连和损失结构也参与 Jacobian。但诊断若发现大量预激活绝对值很大、导数均值接近零,应先修正输入中心、初始化尺度或架构,而不是只把学习率无限增大。

ReLU 正区间导数一,不会像 sigmoid 持续乘小于一的平滑导数,却可能因预激活长期为负而成为死亡单元。大负偏置、过大学习率或不合适数据中心会让某单元对所有样本梯度为零。leaky ReLU 保留负侧小斜率,但也会改变合适方差因子。

Jacobian 的方向性比单个方差更完整

方差稳定只控制平均二阶尺度,不能保证每个方向都稳定。深网络总 Jacobian 是多层局部 Jacobian 的乘积;若奇异值分布很宽,有些方向爆炸、另一些消失,即使总体方差看似正常。正交权重、合适尺度和残差路径可改善方向传播,但非线性门控、宽度变化和训练更新仍会改变谱。

实践中不必为大网络显式形成完整 Jacobian。可以用随机 JVP/VJP 估计范数放大,或记录层输入梯度与输出梯度的均方根比。方差推导用于提出初始尺度,真实计算图统计用于验证。

归一化重新控制中间尺度

批归一化使用小批统计标准化每个通道,再应用可学习缩放和平移;层归一化在每个样本的指定特征轴上归一。它们能减轻中间均值和尺度漂移,让更宽初始化范围可训练,但并不让初始化无关:归一化前的溢出、极小方差、可学习缩放和非归一化首尾层仍受影响。

批归一化依赖批组成,并在推理时使用运行统计;小批、非独立序列或训练推理分布变化会造成差异。层归一化不依赖批统计,却改变的是每样本内部尺度。选择归一化轴必须匹配张量语义。归一化还会改变梯度耦合,不能把它当作单纯除以标准差的固定常数层。

残差路径提供接近恒等的梯度通道

残差块写成

hl+1=hl+Fl(hl),h_{l+1}=h_l+F_l(h_l),

其局部 Jacobian 为 I+JFlI+J_{F_l}。即使残差分支梯度较小,恒等项仍提供直接路径,缓解纯乘积链的衰减。若维度变化,需要投影分支,直接路径不再严格恒等;若 FlF_l 初始幅度很大,I+JFI+J_F 的反复乘积仍可能爆炸或扭曲。

例 4:标量残差链保留直接导数

考虑二十层标量主链,每层导数为 0.10.1,总导数为 0.120=10200.1^{20}=10^{-20}。若改成残差块 hl+1=hl+0.1hl=1.1hlh_{l+1}=h_l+0.1h_l=1.1h_l,每层导数为 1.11.1,二十层总导数约 1.1206.731.1^{20}\approx6.73,不再消失,但已经有所放大。

若残差分支系数改为一,每层导数二,二十层达到约一百万,说明恒等路径不保证绝不爆炸。深残差网络常结合分支缩放、归一化或特定末层零初始化,使初始块更接近恒等,再用真实梯度统计确认。

偏置与输出层需要任务特定处理

隐藏层偏置常初始化为零,以免无依据移动激活;但 ReLU 偏置小正值是否有益取决于数据与归一化,不能通用化。类别极不平衡的二元输出层可把初始偏置设为目标先验对数优势 log(p/(1p))\log(p/(1-p)),使初始概率接近基线,减少早期巨大损失;这要求先验来自训练数据且部署比例稳定。

回归输出层尺度应匹配目标标准化。若目标数值很大而输出权重极小,初始残差和梯度可很大;先对训练目标中心化缩放并在输出反变换,通常更容易诊断。任何训练统计只能由训练集估计。

逐层统计把公式变成可核验假设

在更新前取一个固定小批,记录每层预激活与激活的均值、标准差或均方根、最小最大值、ReLU 零比例、sigmoid 或 tanh 饱和比例。执行一次反向后记录参数梯度和激活梯度的均方根、范数、非有限值、零梯度比例,以及更新量与参数量之比。

例 5:用逐层统计定位尺度故障

一个十层 ReLU 网络在固定批上,第一层激活均方根为一点一,第五层为五点八,第十层为四十二;反向梯度均方根从输出层零点二增长到首层三十,并出现非有限损失。趋势说明前向与反向都在爆炸,而不是“首层学得更快”。

完整处理先核对输入是否标准化、损失是均值还是求和、卷积扇入是否含核面积;再将错误的 2/通道数2/\text{通道数} 改为 2/实际扇入2/\text{实际扇入},用相同批和多个固定种子重跑未训练统计。若尺度恢复近似平稳,再做一个优化步并检查更新比;不能同时改初始化、学习率和归一化后把改善归因于某一项。

统计要跨多个随机种子重复,因为单次宽层近似也会波动。全局梯度范数正常可能掩盖早层接近零和末层很大,应画逐层对数尺度。梯度裁剪能阻止一次爆炸更新,却不修复持续错误的传播机制;它应作为明确优化策略并记录裁剪频率。

训练诊断按最小变更推进

第一步固定数据批、模型模式、精度和种子,只做前向,检查形状、输出基线和激活分布。第二步做一次反向,检查损失有限、梯度存在、逐层尺度和共享参数累加。第三步在极小数据上用无正则设置尝试过拟合,确认模型与优化器有足够能力。第四步才比较初始化、归一化、残差缩放和学习率,每次只改一个因素。

损失不下降可能来自错误标签、停止梯度、学习率过小、饱和或优化器没有参数;损失震荡或发散可能来自尺度爆炸、学习率过大、归约从均值误成求和或低精度溢出。初始化只是候选原因,必须由统计证据定位。

Xavier适合所有激活函数
它基于近线性和独立方差近似,ReLU门控、饱和与残差会改变合适尺度。
有归一化就不需检查初始化
归一化前数值、缩放参数、首尾层和训练推理统计仍可能失稳。
全局梯度范数正常就说明梯度流良好
不同层可同时消失与爆炸后在总量中被掩盖,需要逐层统计。

练习

练习 1:前向方差
推导单个仿射神经元的前向方差近似。
查看提示
独立零均值项的方差相加。
查看解答
扇入 n、输入二阶矩 q、权重方差 s2s^{2} 时,预激活方差约 ns2qns^{2}q。要保持 q 且线性激活,可取 s21/ns^{2}\approx 1/n;这依赖交叉协方差可忽略。
练习 2:均匀Xavier
推导均匀 Xavier 的边界。
查看提示
均匀分布 [-a,a] 的方差是 a2/3a^{2}/3
查看解答
a2/3=2/(fanin+fanout)a^{2}/3=2/(fan_{in}+fan_{out}),得 a=6/(fanin+fanout)a=\sqrt{6/(fan_{in}+fan_{out})}。该范围匹配方差,不保证饱和激活中逐层不变。
练习 3:ReLU扇入
解释 He 方差中因子二的来源。
查看提示
对称预激活下 ReLU 约保留一半二阶矩。
查看解答
为使经过 ReLU 后二阶矩近似恢复,预激活需约放大二倍,因此权重方差取 2/fanin2/fan_{in};负斜率或非对称门控要修改因子。
练习 4:饱和诊断
如何用统计区分饱和与学习率过小?
查看提示
同时查看预激活绝对值、导数和逐层梯度。
查看解答
若 sigmoid/tanh 预激活大量落在饱和区、导数接近零且早层梯度逐层衰减,可判为饱和通道;应检查输入中心、初始化尺度、归一化或激活选择。
练习 5:残差不是保证
为什么残差连接不能无条件消除梯度爆炸?
查看提示
局部Jacobian是 I+JFI+J_F,仍可能长期放大。
查看解答
恒等项提供直接梯度,但若残差 Jacobian 大或方向不稳,I+JFI+J_F 的乘积仍可爆炸。可用分支缩放、归一化和近恒等初始化,并实测逐层 VJP。
练习 6:诊断顺序
写出初始化失效的最小诊断协议。
查看提示
先固定批和种子,再分前向、反向、单步与小数据。
查看解答
依次核对形状和激活统计、一次反向的逐层梯度、更新参数名单与更新比,再在极小数据过拟合;每次只改变初始化或归一化等一个因素并跨种子比较。

关系与资源

书籍 · 2016

Deep Learning

Ian Goodfellow, Yoshua Bengio, Aaron Courville

适合作为反向传播和优化章节的完整参考。

打开官方来源