try ai
科普
编辑
分享
反馈
  • 权重初始化

权重初始化

SciencePedia玻尔百科
核心要点
  • 随机初始化对于打破神经元之间的对称性至关重要,使它们能够学习到多样化和专门化的特征。
  • 合适的初始化方法,如 Xavier 和 He 方法,通过校准权重方差来保持信号能量在各层间的传递,从而防止梯度消失或爆炸问题。
  • 像 ResNets 这样的复杂架构需要调整初始化策略,以适应跳跃连接等改变信号方差的结构元素。
  • 高效的初始化与批量归一化 (Batch Normalization) 和优化器等其他技术协同工作,确保从第一步开始就进行稳定而高效的训练。

引言

在构建任何复杂系统时,初始设置都至关重要。对于神经网络而言,这第一步就是​​权重初始化​​——即为网络参数设定初始值的过程。这个看似简单的选择会产生深远的影响,往往决定了一个模型是能高效学习还是根本无法训练。一个糟糕的开端会导致严重问题,学习信号要么消失于无形,要么爆炸成混乱,使网络无法训练。本文旨在揭开“初始之法”的艺术与科学面纱,为这一关键主题提供一份全面的指南。

首先,我们将深入探讨有效初始化的核心​​原理与机制​​。我们将探究“对称性诅咒”,并理解为何随机性是必不可少的。接着,我们将揭示信号消失与爆炸问题背后的数学原理,并由此引出针对特定激活函数量身定制的优雅解决方案——Xavier 和 He 初始化。在此之后,我们将进入​​应用与跨学科联系​​的领域。在这里,我们将看到这些基本原理如何应用于像 ResNets 这样的现代复杂架构,以及初始化如何与批量归一化 (Batch Normalization) 和自适应优化器等其他强大技术相互作用。我们还将发现,“良好开端”的概念如何从分类任务延伸到生成模型和科学计算领域,揭示了一个在不同科学领域中普遍存在的普适原理。

原理与机制

想象一下,我们正在构建一台巨大而精密的机器,一个由硅和软件构成的大脑。在我们教它任何东西之前,我们面临一个看似简单的问题:我们应该如何设置它的初始状态?就像雕塑家面对一块大理石,我们的初始选择将深刻地塑造最终的作品。在神经网络的世界里,这种初始设置被称为​​权重初始化​​,正确地进行初始化是网络能够优雅学习与完全无法训练之间的区别。

对称性诅咒

让我们从最直观的起点开始:完全的秩序。如果我们将网络中所有的初始权重和偏置都设置为相同的值,比如零,会发生什么?这看起来干净、无偏且简单。然而,这是一个灾难性的错误。

考虑我们网络中的一个隐藏层。如果该层中的每个神经元都以相同的权重开始,它将接收完全相同的输入信号,以完全相同的方式处理它们,并产生完全相同的输出。当需要学习时,在反向传播过程中,流回该层的误差信号对于每个神经元也将是相同的。因此,它们都将接收到完全相同的梯度更新。

它们如同同卵双胞胎一样开始,而学习过程确保它们永远保持一致。这意味着一个拥有一百个神经元的层与只有一个神经元的层没有区别。我们构建了一个复杂的架构,但其有效容量已经崩溃。网络陷入瘫痪,无法学习其任务所需的多样化和复杂特征。这就是​​对称性诅咒​​。为了学习,神经元必须能够自由地专门化,开辟出自己独特的角色。允许这种情况发生的唯一方法就是从一开始就打破对称性。解决方案是什么?我们必须引入随机性。我们必须用不同的随机数来初始化每个权重。

传话游戏:信号消失与爆炸的危险

所以,我们用随机权重打破了对称性。这样就够了吗?并非如此。这些随机数的大小至关重要。一个深度神经网络就像一长串放大器。信息以激活值的形式在网络中前向传播。之后,误差信号以梯度的形式反向传播。我们可以把这想象成一个由几十或几百人玩的传话游戏。

如果队伍中的每个人都把信息说得太轻,到最后它就会变成难以辨认的低语。这就是​​信号消失​​。相反,如果每个人都喊得太大声,它会升级为震耳欲聋、失真的咆哮。这就是​​信号爆炸​​。为了让学习发生,信号的“音量”必须在网络中传播时得以保持。

我们可以通过考察每一层激活值的​​方差​​来精确地描述这个想法。方差是衡量数据点分布范围的统计量;我们可以将其视为信号的能量或功率。让我们考虑第 lll 层神经元的预激活值 zzz,它是前一层 nnn 个激活值的加权和:z(l)=∑i=1nwixi(l−1)z^{(l)} = \sum_{i=1}^{n} w_i x_i^{(l-1)}z(l)=∑i=1n​wi​xi(l−1)​。如果我们假设权重 wiw_iwi​ 和前一层的激活值 xi(l−1)x_i^{(l-1)}xi(l−1)​ 是均值为零的独立随机变量,那么 z(l)z^{(l)}z(l) 的方差会变得非常简单:

Var⁡(z(l))=n⋅Var⁡(w)⋅Var⁡(x(l−1))\operatorname{Var}(z^{(l)}) = n \cdot \operatorname{Var}(w) \cdot \operatorname{Var}(x^{(l-1)})Var(z(l))=n⋅Var(w)⋅Var(x(l−1))

这个方程是问题的核心。它告诉我们,输出的方差是输入的方差乘以一个比例因子 n⋅Var⁡(w)n \cdot \operatorname{Var}(w)n⋅Var(w)。如果这个因子持续小于1,信号方差在穿过各层时将呈指数级缩小,最终消失于无。如果它大于1,信号方差将呈指数级爆炸,使我们的神经元饱和,并破坏整个学习过程的稳定性。完全相同的逻辑也适用于反向流动的梯度;它们在每一层同样被缩放,并面临着同样消失或爆炸的风险。

驯服混沌:校准随机性原理

前进的道路现在很清晰了。为了保持信号稳定,我们必须选择合适的初始权重方差,我们称之为 σw2=Var⁡(w)\sigma_w^2 = \operatorname{Var}(w)σw2​=Var(w),使得每一层的缩放因子等于1。这不仅仅是随机,而是要经过校准。这个原理的美妙之处在于,它为我们如何初始化网络提供了一个直接的方案,并揭示了架构、权重和激活函数本身之间的深刻联系。

让我们来看两个最著名的激活函数:

  1. ​​双曲正切函数 (tanh⁡\tanhtanh):​​ 在原点附近,tanh⁡\tanhtanh 函数的行为几乎像一条直线:tanh⁡(z)≈z\tanh(z) \approx ztanh(z)≈z。如果我们的激活值保持在这个线性区域,输出的方差约等于输入的方差。为了保持信号方差在层与层之间恒定,即 Var⁡(z(l))≈Var⁡(x(l−1))\operatorname{Var}(z^{(l)}) \approx \operatorname{Var}(x^{(l-1)})Var(z(l))≈Var(x(l−1)),我们的方程告诉我们需要 nσw2≈1n \sigma_w^2 \approx 1nσw2​≈1。这就引出了著名的 ​​Xavier (或 Glorot) 初始化​​,它将权重方差设置为 σw2=1n\sigma_w^2 = \frac{1}{n}σw2​=n1​。

  2. ​​修正线性单元 (ReLU):​​ ReLU 函数,f(z)=max⁡(0,z)f(z) = \max(0, z)f(z)=max(0,z),则有所不同。它不是对称的。当它接收到以零为中心的输入时,它会将所有负值截断为零,实际上抹去了一半的信息。仔细的计算表明,这会使方差减少一半。因此,为了在各层之间保持稳定的方差,我们必须通过确保预激活值的方差加倍来进行补偿:nσw2=2n \sigma_w^2 = 2nσw2​=2。这就得到了 ​​He 初始化​​,我们将权重方差设置为 σw2=2n\sigma_w^2 = \frac{2}{n}σw2​=n2​。我们必须注入两倍的方差来补偿 ReLU 将会丢弃的部分!

这个原理是普适的。对于任何激活函数,我们都可以通过分析它如何转换其输入的方差,并求解能保持信号尺度的权重方差,来推导出一个定制的初始化方案。

信号流动的双向通道

一个健康的网络不仅需要稳定的激活值前向传播,还需要稳定的梯度反向传播。梯度告诉早期层它们做错了什么,如果那个信号消失了,那些层就会停止学习。当我们分析梯度的流动时,我们发现它们在每一层也被一个类似的因子缩放。因此,一个“好的”初始化必须在两个方向上都保持方差。

在这里,我们又一次获得了美妙的洞见。 通过 He 初始化,ReLU 网络在两个方向上都实现了稳定的方差。在前向传播中,缩放因子变为 nσw22=n(2/n)2=1\frac{n\sigma_w^2}{2} = \frac{n(2/n)}{2} = 12nσw2​​=2n(2/n)​=1。在反向传播中,梯度方差被缩放的因子为 nσw2E[(ϕ′)2]=n(2n)(12)=1n \sigma_w^2 \mathbb{E}[(\phi')^2] = n (\frac{2}{n}) (\frac{1}{2}) = 1nσw2​E[(ϕ′)2]=n(n2​)(21​)=1。完美匹配!He 初始化为信息创造了一条稳定的双向通道,这也是深度 ReLU 网络取得巨大成功的一个主要原因。

对于 tanh 网络,情况则更为悲观。虽然 Xavier 初始化(在线性近似下)稳定了前向传播,但 tanh 的导数始终小于1。这意味着梯度方差在每一层都注定会缩小。即使经过仔细的初始化,使用 tanh 或 sigmoid 激活函数的深度网络也内在地容易出现梯度消失问题。这一认识是转向基于 ReLU 架构的关键驱动因素。

超越初始猜测:保持正轨

我们的初始设置将学习过程引导上一个有希望的轨道,但这仅仅是一个起点。随着权重的演变,激活值的分布会发生移动和变化。 例如,Xavier 和 He 初始化的推导过程隐含地假设我们的激活值保持在零附近。对于像 ReLU 这样的非对称激活函数,这个假设很快就会失效;激活值的均值可能会逐层偏离零,从而使动力学变得复杂。 这就是为什么现代深度学习依赖于在训练期间主动管理信号特性的技术。例如,​​批量归一化 (Batch Normalization)​​ 就像在每一层都有一个警惕的工程师,不断地将均值重新中心化到0,并将方差重新缩放到1。这种动态校正使网络更加鲁棒,对精确的初始权重选择不那么敏感。

最终,目标始终是让神经元在其“最佳工作点”——一个响应灵敏、非饱和且梯度可以自由流动的区域——运行。对于 tanh,这个最佳点恰好在零处,这就是为什么添加非零偏置通常是个坏主意,因为它从一开始就将神经元推向饱和区域。从打破对称性的简单需求到方差传播的精妙数学,权重初始化的原理揭示了将一个人工智能赋予生命所需的微妙、动态的平衡。

初始之法:从常规网络到奇异架构及其超越

在我们之前的讨论中,我们揭示了一个相当优美的思想:神经网络在其诞生之初——即初始化时——是一个精密的动力学系统。为了有效地学习,它必须被置于一个特殊的状态,一个“混沌边缘”的状态,信号可以在其中穿过许多层而不会消失于无形或爆炸成无意义的东西。我们看到,仔细选择初始随机权重的方差,遵循像 Xavier 或 He 这样的方案,是实现这种微妙平衡的秘诀。

但是,我们之前考虑的网络是简单的层链,整洁有序。而现代深度学习的世界堪称一片真正的丛林,一个由各种奇异而强大的架构组成的动物园,其中的连接会分支、合并,甚至回环。当我们冒险进入这片荒野时,我们优雅的信号传播原理会发生什么?初始之法是否仍然重要,还是我们需要新的技巧?让我们踏上旅程一探究竟。

驯服架构动物园:残差网络与并行网络

现代深度学习最重要的突破之一是残差网络 (ResNet) 的发明。其思想看似简单:除了通过一个层块进行标准变换外,我们还增加了一个“跳跃连接”,允许输入绕过该层块并直接与输出相加。现在,该层块学习一个*残差*函数 f(x)f(x)f(x),最终输出为 y=x+f(x)y = x + f(x)y=x+f(x)。这个简单的技巧让研究人员能够训练出前所未有深度的网络——数百甚至数千层深。

但这个看似无害的添加为我们的初始化理论提出了一个新的难题。想象一下,流入该层块的信号 xxx 具有一定的方差——衡量其“摆动”或信息内容的指标。如果使用像 Xavier 这样的方案进行适当初始化,变换 f(x)f(x)f(x) 旨在产生一个具有大致相同方差的输出。那么,当我们把它们相加时会发生什么呢?当你把两个不相关的“摆动”源相加时,它们的方差会相加。yyy 的方差大约变成 xxx 方差的两倍。如果你堆叠许多这样的块,信号将呈指数级爆炸!

稳定的信号流原理没有被打破,但它需要一个更局部、更细致的应用。事实证明,解决方案与问题本身一样优雅而巧妙。为了抵消方差加倍,我们可以简单地将输出乘以一个因子 1/21/\sqrt{2}1/2​。由于方差与信号的平方成正比,这种缩放会将方差减半,使其回到期望的水平并恢复稳定性。这是一个美妙的提醒:虽然基本原理是普适的,但其应用需要仔细考虑网络的局部结构。

同样的想法也适用于其他复杂架构。以使用多分支结构的“Inception”模型为例。它们不是将信号强制通过单一路径,而是将其发送到几个具有不同滤波器大小的并行卷积路径上,然后通过求和来合并结果。这使得网络能够同时捕捉多个尺度的特征。在这里,将(比如说)三个分支的输出相加的行为同样可能导致方差增加三倍。解决方案是相同的:我们必须缩减每个分支的贡献,以使它们的组合方差不会爆炸。总的“方差预算”必须分配给所有贡献路径。

与其他力量的精妙共舞:归一化与优化

权重初始化并非在真空中运作。它的效果与深度学习中另外两种强大的力量紧密交织:归一化层和优化算法。

以批量归一化 (BN) 为例,这是一种将每个小批量数据内的激活值归一化为零均值和单位方差的技术。这在训练过程中具有强大的稳定作用。在一个非常深的 ResNet 中,我们可以用一种极其巧妙的方式将初始化和归一化结合起来。我们希望网络在开始时易于训练。对于深度网络来说,一个简单的任务是学习一个恒等函数——即将输入原封不动地传递过去。这确保了梯度可以从网络末端一直流回起点而不会消失。我们可以通过将残差块的 BN 层中最后的缩放参数(称为 gamma 或 γ\gammaγ)初始化为零来实现这一点。这有效地“静音”了残差分支,使得该块计算 y=x+0=xy = x + 0 = xy=x+0=x,一个完美的恒等映射!

但是,如果残差分支是静音的,网络如何学习任何复杂的东西呢?这正是 He 初始化发挥其关键作用的地方。它确保了被静音分支的内部工作机制是良好且随时准备启动的。随着训练的开始,网络可以逐渐学习将 γ\gammaγ 从零增加。由于分支被正确初始化,它可以平滑而稳定地“淡入”其贡献,而不会引起突然的爆炸或不平衡。这是一种大师级的协同作用:一个技巧为梯度建立了一条稳定的高速公路,而另一个技巧则为学习有用特征准备好了辅路。

那么优化器呢?像 Adam 这样能够动态调整每个参数学习率的复杂自适应算法,是否会使精心的初始化变得过时?乍一看,这似乎是合理的。Adam 对参数的更新大致与其梯度除以其梯度平方的平方根成正比。这种归一化使得步长对梯度的绝对大小不那么敏感。因此,如果一个糟糕的初始化导致所有梯度都大了十倍,Adam 基本上可以纠正它,而标准的随机梯度下降 (SGD) 则会采取毁灭性的大步长。

然而,这种鲁棒性有其局限性。如果我们的初始化非常糟糕,以至于将所有神经元都推入其“饱和”区域——即输出平坦且导数为零的区域——那么初始梯度将几乎为零。Adam 尽管聪明,也无法无中生有。如果没有梯度信号,就没有什么可以适应的,学习就会陷入停滞。因此,一个好的初始化不仅仅是为了获得正确尺度的梯度;它关乎于确保信号的存在。它提供了一片肥沃的土壤,强大的优化器可以在其上施展魔法。

超越预测:生成模型与科学计算

初始之法远远超出了仅仅训练分类器的范畴。其原理在新兴的生成模型和科学计算领域中至关重要。

以变分自编码器 (VAE) 为例,这是一种可以学习生成新数据的模型,例如人脸图像,或者在更科学的背景下,合成生物数据。VAE 面临一种被称为“后验坍塌”的奇特失败模式。该模型由一个编码器(将输入数据压缩成一个潜码 zzz)和一个解码器(试图从 zzz 重建输入)组成。在后验坍塌中,解码器变得过于强大,以至于它学会了完全忽略潜码。它只是记住一个“平均”输出,并无论 zzz 中的信息如何都产生这个输出。编码器放弃了,模型也就无法学习到数据的有意义表示。

初始化如何提供帮助?通过一种精心计算的“示弱”策略。如果我们将解码器最后一层的权重初始化得非常小,我们就能使解码器在初始时变得既弱又“懒惰”。它无法凭一己之力产生好的重建结果。为了提高性能并降低损失,它被迫去关注编码器在潜码 zzz 中提供的信息。这就提供了一个必要的学习信号,引导编码器学习一个有用的表示,从而避免坍塌。这是一个绝佳的例子,说明了初始化不仅可以用于保持稳定性,还可以主动引导学习过程走向一个更有意义的解决方案。

“良好起点”这一思想在科学计算领域找到了更深刻的表达,例如在物理信息神经网络 (PINN) 中。这些网络不仅基于数据进行训练,还基于物理定律本身,这些定律以偏微分方程 (PDE) 的形式表达。想象一下,你已经训练了一个 PINN 来求解粘度为 ν1\nu_1ν1​ 时物体周围的流体流动。现在,你需要为略有不同的粘度 ν2\nu_2ν2​ 求解同样的问题。你会从头开始,用一组随机的权重吗?

当然不会。由于 ν2\nu_2ν2​ 接近 ν1\nu_1ν1​,新的解也将接近旧的解。你已经训练好的网络是解决新问题的一个绝佳起点。将旧的、已训练网络的权重用作新训练任务的初始化,是一种迁移学习。这种“热启动”将新网络置于广阔参数空间中非常接近其目标解的位置,使其能够比随机初始化的网络收敛得快得多。在这里,初始化超越了一个单纯的统计技巧,成为在相关问题之间传递知识的一种机制。

普适原理:对称性的危害

也许,关于初始化重要性的最令人惊叹的例证,来自于一个将神经网络的人工世界与量子化学基本定律联系起来的类比。

在训练神经网络时,有一个不可饶恕的原罪:绝不要将一个层中的所有权重初始化为相同的值(例如,全为零)。为什么?因为如果所有神经元开始时都完全相同,它们就是完美对称的。它们接收相同的输入,因此会计算出相同的输出。在反向传播期间,它们将接收到相同的梯度并经历完全相同的更新。它们将永远保持一致,每一个都是其他神经元的完美克隆。网络的容量被严重削弱;就好像你只有一个神经元一样。解决方案简单却至关重要:打破对称性。通过用微小的随机值来初始化权重,我们赋予每个神经元一个独特的身份,让它们能够学习不同的特征,从而释放网络的真正力量。

现在,考虑一个看似无关的计算化学问题:计算氧分子 O2\text{O}_2O2​ 的电子结构。这是通过一个称为自洽场 (SCF) 方法的迭代过程完成的。开始时,必须为电子密度提供一个初始猜测。一个自然但危险地天真的猜测是采用一个完美对称的初始值,以反映分子的几何对称性。如果你这样做,这个迭代计算过程,就像神经网络中的更新一样,将会保持这种对称性。该过程会收敛,但会收敛到一个并非真正基态的驻点。它找到了一个物理上不正确的高能量解。

解决方案?完全相同的原理适用。计算化学家必须故意打破初始猜测的对称性,例如通过轻微扰动简并轨道的占据数。这个小小的推动使得迭代过程能够逃离对称子空间的陷阱,并找到通往分子真实的、能量更低的基态的路径。

这难道不非凡吗?同一个深刻的原理——即从一个完美对称的状态优化一个复杂系统会使其陷入次优的境地,而需要一个微小的、随机的、打破对称性的推动才能找到真正的解——同时支配着人工大脑的训练和真实世界分子的计算。这表明,权重初始化不仅仅是一个工程技巧,它是一个深刻而优美的概念的实际应用,这个概念在整个科学领域中回响,提醒我们其定律的基本统一性。