try ai
科普
编辑
分享
反馈
  • 神经网络初始化

神经网络初始化

SciencePedia玻尔百科
核心要点
  • 将所有权重初始化为相同的值会产生对称性,这会阻止单个神经元学习独特的特征,从而削弱网络的能力。
  • 随机初始化必须仔细缩放,以维持信号在各层间的方差,从而避免梯度爆炸或消失的常见陷阱。
  • Xavier 和 He 初始化是标准方案,它们通过根据层的扇入(fan-in)和所使用的特定激活函数(例如 tanh vs. ReLU)来设置权重方差,从而抵消信号衰减。
  • 有效的初始化将网络置于“混沌边缘”(edge of chaos),这是信号稳定与混沌之间的一个临界边界,对于训练非常深的网络至关重要。

引言

神经网络的初始状态并非无关紧要的细节,而是决定其学习能力的关键因素。一个无原则或幼稚的起点,可能在处理任何数据之前就注定了深度学习模型的失败,导致训练完全无法进行。本文旨在探讨为什么网络初始权重如此重要,以及我们如何智能地设置它们。如果没有恰当的初始化策略,深度网络会受到诸如神经元对称性(所有神经元行为完全相同)等问题的困扰,或是更隐蔽的信号消失和爆炸问题,这些问题会阻止学习在网络深度中传播。

本文将引导您了解神经网络初始化的理论与实践。在“原理与机制”一章中,我们将揭示信号衰减的数学原因,并从第一性原理出发,推导出被称为 Xavier 和 He 初始化的优雅解决方案。随后的“应用与跨学科联系”一章将展示这些基础思想如何应用于像 ResNet 和 CNN 这样的复杂现代架构中,并揭示其与物理学和强化学习等领域的惊人联系,展示了正确起步所具有的深刻和普适性。

原理与机制

在介绍了神经网络的初始状态并非小事之后,我们现在踏上理解其原因的旅程。如同物理学家探索自然基本法则一样,我们将从最简单的问题入手,通过思想实验建立直觉,并揭示在深度神经网络诞生之初支配其健康状况的优雅原则。我们会发现,看似玄学的东西,实际上是概率论和线性代数的优美应用。

对称性的束缚

让我们从最幼稚的问题开始:如果我们希望网络是一张白纸,为什么不将其所有权重都初始化为零?或者初始化为任何单一常数?这似乎是最简单、最纯粹的起点。

想象一下,你正在管理一个团队,负责一个复杂的装配项目。如果你给每个工人完全相同的工具和完全相同的初始指令,会发生什么?他们都会执行相同的动作。当你给他们下一条指令时,这条指令同样会平等地适用于所有人。他们将继续以完美而无用的步调一致地行动。你拥有一个多人的团队,但其功能却如同一个人。他们永远学不会分工。

神经网络的层面临着完全相同的困境。如果一个层中的每个神经元都以相同的权重集开始,那么对于任何给定的输入,每个神经元都会产生完全相同的输出。在训练期间,我们计算误差并用它来更新权重。但由于每个神经元的贡献都是相同的,损失函数相对于每个神经元权重的梯度也将是相同的。每个神经元都接收到完全相同的更新。它们以相同的方式开始,并永远保持相同,始终步调一致。这种现象被称为​​对称性​​,它使得一个宽层的功能和一个单神经元无异,完全违背了深度和宽度的初衷。

因此,解决方案是从一开始就打破这种对称性。我们必须给每个神经元一个略微不同的起点,以便它们能够踏上各自独特的学习之旅。最直接的方法是用​​随机数​​来初始化权重。一个无穷小的随机扰动足以确保每个神经元从独特的视角“看待”训练数据,计算出不同的梯度,并开始专门化。这是初始化的第一个,也是最基本的原则:我们需要随机性。

传话游戏:信号传播问题

那么,我们使用随机权重。问题解决了吗?不尽然。我们刚摆脱了对称性的束缚,却又步入了一片新的荒野,那里充满了​​信号爆炸和消失​​的双重危险。

想象一个信号——一个代表信息的数字向量——进入一个深度网络的第一层。这个信号与第一个随机权重矩阵相乘。结果通过一个激活函数,然后与第二个随机权重矩阵相乘,如此往复,经过数十甚至数百个层。

这个过程就像一个复杂的“传话游戏”(Whispers 或 Telephone)。在每一步,一个人(一个层)接收信息(信号向量),对其进行转换,然后传递下去。让我们考虑这个信号的“强度”或“大小”,我们可以用其​​方差​​来衡量。如果平均而言,每一层都将信号的方差乘以一个因子 1.11.11.1,那么经过 100100100 层后,初始方差将被放大 1.11001.1^{100}1.1100 倍,超过 13,00013,00013,000。信号爆炸成无意义的噪声。相反,如果每一层都将方差乘以 0.90.90.9,那么经过 100100100 层后,信号的强度将降低到其原始值的 0.91000.9^{100}0.9100,即不到 0.000030.000030.00003。信号消失得无影无踪。

这不仅是前向信息传播的问题。在训练过程中,误差的梯度会反向传播通过同一个网络。它同样会连续乘以网络的权重。如果信号在前向传播时爆炸,梯度在反向传播时几乎肯定也会爆炸。如果它在前向传播时消失,梯度在返回途中也会消失,使得初始层没有有意义的更新信号可供学习。

为了以最纯粹的形式看到这一原理,让我们剥离复杂性,考虑一个深度线性网络,其中每一层只是一个矩阵乘法 xℓ=Wℓxℓ−1x_{\ell} = W_{\ell} x_{\ell-1}xℓ​=Wℓ​xℓ−1​。仔细计算表明,期望平方范数(一种信号强度的度量)从一层到另一层的演变遵循一个简单的因子:E[∥xℓ∥2]=(nσW2)E[∥xℓ−1∥2]\mathbb{E}[\|x_{\ell}\|^2] = (n \sigma_W^2) \mathbb{E}[\|x_{\ell-1}\|^2]E[∥xℓ​∥2]=(nσW2​)E[∥xℓ−1​∥2],其中 nnn 是该层的扇入(fan-in,即输入维度),σW2\sigma_W^2σW2​ 是单个权重项的方差。

这个简单的方程是初始化领域的“罗塞塔石碑”。为了让信号强度在网络中传播时保持稳定,这个乘法因子必须恰好为 1。这给了我们黄金法则: nσW2=1  ⟹  σW2=1nn \sigma_W^2 = 1 \implies \sigma_W^2 = \frac{1}{n}nσW2​=1⟹σW2​=n1​ 我们随机权重的方差必须与该层的输入数量成反比。这确保了进入一个神经元的总“能量”平均而言与进入前一层的能量相同。我们刚刚独立发现了 ​​Xavier 初始化​​背后的核心思想。

驯服信号:Xavier 和 He 初始化

我们的线性网络给出了一个强有力的线索,但真实的网络有​​非线性激活函数​​。这些函数是网络力量的源泉,但也使我们简洁的理论变得复杂。我们处理这种复杂性的方式,关键取决于我们使用的激活函数的类型。

tanh 和对称激活函数的世界

让我们首先考虑像双曲正切函数 tanh⁡(z)\tanh(z)tanh(z) 这样的函数。这个函数有一个关键特性:它以零为中心对称。对于接近原点的小输入,tanh⁡(z)\tanh(z)tanh(z) 的行为几乎与直线完全一样;它近似是线性的。因此,我们从线性网络得出的推论是一个非常好的起点。这一洞见催生了 ​​Xavier(或 Glorot)初始化​​方案,它规定将权重方差设置为: σW2=1nfan-in\sigma_W^2 = \frac{1}{n_{\text{fan-in}}}σW2​=nfan-in​1​ 这对于像 tanh⁡\tanhtanh 这样的对称激活函数效果非常好。然而,它并非完美。当预激活值 zzz 远离零时,tanh⁡(z)\tanh(z)tanh(z) 的导数会小于 1。这种“挤压”效应意味着,平均而言,方差在每一层都会略有减少。在一个非常深的网络中,这仍然可能导致梯度缓慢消失。但相比于朴素的随机初始化,这已经是一个巨大的进步。

ReLU 革命

现代深度学习时代由一个看似更简单的激活函数驱动:​​修正线性单元 (ReLU)​​,定义为 ϕ(z)=max⁡(0,z)\phi(z) = \max(0, z)ϕ(z)=max(0,z)。ReLU 不是对称的。对于正输入,它是完全线性的。但对于所有负输入,它都是零。

这对我们的信号方差意味着什么?平均而言,如果预激活值 zzz 对称分布在零附近(初始化时正是如此),ReLU 会将其中恰好一半的值钳制为零。这样做,它实际上在每一层​​丢弃了信号方差的一半​​。

如果我们在每一步都损失一半的信号强度,并且使用 Xavier 初始化,那么每层的缩放因子将不再是 111,而是 1/21/21/2。在一个深度网络中,这将导致梯度指数级消失。解决方案既简单又深刻:如果我们知道会损失一半的方差,我们一开始就应该将其加倍。这直接引出了专为 ReLU 网络设计的 ​​He(或 Kaiming)初始化​​: σW2=2nfan-in\sigma_W^2 = \frac{2}{n_{\text{fan-in}}}σW2​=nfan-in​2​ 这个简单的因子 2 是关键。它精确地抵消了 ReLU 函数破坏信息的影响,确保信号方差在整个网络中保持稳定。这是理论直接指导实践的优美典范。我们还应注意,对于像 ReLU 这样非中心化的激活函数,激活值的均值可能会偏离零。虽然我们一直关注方差,但这种均值偏移也可能导致问题,有时可以通过仔细初始化神经元的偏置来纠正。

混沌边缘的生命

我们现在可以看到一幅宏大而统一的图景。一个随机初始化的深度网络的行为可以被描述为属于以下两个阶段之一:

  1. 一个​​“有序”阶段​​,其中逐层信号放大因子小于 1。在网络中传播的信息和梯度被逐渐抑制,随深度呈指数级消失。网络过于稳定,无法承载复杂信号。

  2. 一个​​“混沌”阶段​​,其中放大因子大于 1。信号和梯度呈指数级爆炸,变得不稳定和无意义。网络过于敏感;输入的微小扰动会级联成雪崩般的噪声。

成功的训练只有在这两种状态之间的狭窄边界上才可能实现——这个区域被恰如其分地命名为​​“混沌边缘”(edge of chaos)​​。一个好的初始化方案,是无论网络深度如何,都能将网络精确地置于这个临界边缘上,使得放大因子为 1。Xavier 和 He 初始化都是为了实现这种“动态等距”(dynamical isometry),即信号结构在传播过程中得以保持。

超越基础:普适性与脆弱性

这些在简单前馈网络背景下发现的原则,具有非凡的普适性。同样的保持信号方差的逻辑也适用于信息在​​循环神经网络 (RNN)​​ 中随时间的传播。在那里,“深度”是时间步数,循环权重的初始化不当会导致网络记忆在长序列上消失或爆炸。

然而,这种优雅的平衡也是脆弱的。我们对 Xavier 和 He 初始化的推导依赖于一个关键假设:​​输入到网络的数据是经过适当归一化的​​(例如,均值为零,方差为一)。如果由于预处理错误,我们输入的数据方差远大于 1,我们精心选择的权重方差将被淹没。信号将会爆炸,学习过程从第一次更新开始就会变得不稳定。该理论是如此精确,我们甚至可以计算出在给定的层中,权重更新将变得灾难性巨大的临界输入数据缩放比例。这有力地提醒我们,初始化不是万能的;它是一个包括数据预处理在内的整体方法的一部分。

最后,为什么这对学习如此重要?一个现代的观点来自无限宽网络的理论。在这个极限下,网络的训练行为由一个称为​​神经正切核 (NTK)​​ 的对象所支配。你可以将初始化时的 NTK 视为定义了学习问题的初始“景观”。像 Xavier 这样的恰当初始化确保了这个核是良态的——景观平滑、形态良好,易于梯度下降导航。而导致饱和或信号消失的不良初始化,则会产生一个退化的核——一个由广阔平坦高原和陡峭悬崖构成的景观,训练会在其中停滞或变得不稳定。

从打破简单的对称性,到在混沌边缘航行,再到塑造学习本身的几何形态,初始化的原则揭示了一个控制神经网络学习潜能的美丽、隐藏的结构。

应用与跨学科联系

在上一章中,我们揭示了唤醒一个深度神经网络的秘密:恰当的初始化。我们看到,如果没有一个精心的起始配置,承载前向信息的信号和承载反向学习的梯度,要么会凋零至无,要么会爆炸成混沌。我们发现,像 Xavier 和 He 初始化这样简单而优雅的规则,创造了一个“金发姑娘区”(Goldilocks zone),让这些信号能够自由流动,将一张纠缠的权重之网变成一台可训练、运转良好的机器。

但这仅仅是故事的开始。这种“良好开端”的原则,不仅仅是让模型得以训练的巧妙工程技巧。它是一个基本思想,其影响以令人惊讶和优美的方式扩散开来,不仅塑造了网络是否学习,还塑造了它学习什么,它如何与其他科学领域互动,以及它告诉我们关于智能本质的什么。现在,让我们踏上征程,看看这个简单的想法将我们带向何方。

架构师的工具箱:现代深度学习中的初始化

如果你将神经网络想象成一个复杂的结构,那么初始化方案就是总建筑师首要且最关键的一套工具。它们确保每一块砖和每一根梁都是稳固的,让我们能够建造起具有巨大深度和复杂性的摩天大楼。

一个典型的例子是,fan-in(计算一个神经元的输入数量)的核心原则如何适应不同的架构蓝图。在卷积神经网络(CNN)中,一个神经元的“视野”是输入图像的一个小块,因此其 fan_in 由这个小块的大小和输入通道的数量决定。在处理序列的循环神经网络(RNN)中,一个神经元在任何给定时刻的输入是来自当前的新信息和来自过去的自身记忆的组合。在这里,fan-in 是输入维度和隐藏状态维度的总和。其美妙之处在于,同样的按 fan-in 缩放权重的原则对两者都适用,证明了其普适性。计算始终是局部的,只针对共享权重的一次应用,无论这些权重是在空间上共享(在CNN中)还是在时间上共享(在RNN中)。

当我们组装整个系统时,这个原则变得更加强大。考虑​​迁移学习​​,我们拿一个大型的、预训练好的模型——一个在数百万张图片上训练过的“引擎”——并将其用于一个新的、特定的任务。我们通常会冻结这个预训练的引擎,并附加一个新的、随机初始化的“头部”来引导它。我们如何初始化这个新的头部?Xavier 初始化提供了完美的答案。它确保来自强大的预训练特征的信号与来自新任务的反向传播误差信号得到恰当的平衡,使得新的头部能够与旧的引擎无缝集成并高效学习。

类似地,在​​多任务学习​​中,一个单一的网络“主干”可能会分支出多个头部,每个头部处理一个不同的任务——一个识别猫,另一个分割道路。初始化理论告诉我们,每个头部都应根据其自身的 fan-in 独立初始化,而无需考虑其他头部或我们为它们各自任务赋予的权重。它提供了一种清晰的“关注点分离”:初始化稳定了网络的前向和反向传播,而其他机制,如损失加权,则处理平衡不同学习目标的动态。

也许这种架构协同作用最优雅的例子是在​​残差网络(ResNets)​​的设计中,这些庞然大物首次让我们能够训练数千层深的网络。一个 ResNet 由多个块构成,信号可以通过一个恒等连接“抄近路”穿过这个块。你如何初始化计算路径?一个巧妙的策略将 He 初始化与一个“零 gamma”技巧结合起来。He 初始化使块中的层准备好进行训练,确保其内部信号稳定。然而,该块的最后一层被初始化为将其输出乘以零。效果是神奇的:在训练刚开始时,整个计算块是“静默”的,整个网络表现得像一个简单的单一恒等函数。梯度完美地从一端流到另一端。然后,随着训练的开始,网络逐渐“淡入”每个块的贡献,学习它到底需要多少复杂性。这是一项令人叹为观止的工程,其中初始化不仅促成了学习,而且主动地编排了学习过程。

惊人的联系:网络之外的初始化

“正确开始”的想法是如此根本,以至于它自然地在其他科学领域找到了回响和应用。它在深度学习与物理学和强化学习等不同领域之间架起了桥梁。

考虑使用神经网络求解物理定律,如偏微分方程(PDE)的挑战。在​​物理信息神经网络(PINNs)​​中,网络不是基于数据进行训练,而是基于方程本身。损失函数是 PDE 的“残差”——即网络输出在多大程度上未能满足该方程。现在,故事在这里发生了真正非凡的转折。如果我们使用标准的 He 初始化来初始化一个用于平流方程 ut+cux=0u_t + c u_x = 0ut​+cux​=0 的 PINN,我们可以计算出训练开始时梯度的期望大小。结果令人震惊:这个初始梯度大小不是某个随机数,而是等于 c2+1\sqrt{c^2 + 1}c2+1​,其中 ccc 是原始 PDE 中的波速。网络通过其初始化,吸收了它即将建模的物理系统的一个基本属性。恰当的初始化不仅使网络可训练,它还从物理学的角度使学习问题变得“适定”(well-posed),将权重的统计世界与波的物理世界联系起来。

现在让我们跳到一个平行的世界:​​强化学习(RL)​​的世界。在这里,一个智能体通过试错来学习,一个核心挑战是“探索-利用”困境。智能体应该坚持它所知道的,还是探索可能带来更大回报的新行动?一个鼓励探索的强大想法是“乐观初始化”。我们不是以中性(例如,零)的估计值开始每个动作的价值,而是将它们全部初始化为一个高得不可能的值。这样,智能体就被激励去尝试每一个动作至少一次,因为它在尝试一个次优动作(其回报低于乐观的初始值)后感到的“失望”,使得那些未经尝试、仍然保持乐观值的动作看起来更具吸引力。

虽然乐观初始化(驱动探索)的目标与 Xavier/He(稳定信号)的目标不同,但当我们使用深度网络来表示智能体的价值函数时,这两个想法完美地结合在一起。我们如何在不破坏其稳定性的情况下,使网络的初始输出乐观地偏高?答案是两种概念的协同作用:我们使用输出偏置项来设置高的乐观值,同时根据 Xavier 或 He 的原则保持网络权重本身很小。这让我们两全其美:一个既为探索做好了准备,又为学习保持了稳定的网络。

更深层次的探讨:初始化与学习的本质

在见识了其实用威力之后,我们现在可以进行更深入的探讨。初始化不仅仅是学习的促进者;它还是一个窥探学习本质的窗口。

现代深度学习理论引入了一个强大的概念,称为​​神经正切核(NTK)​​。NTK 描述了一个非常宽的神经网络的学习动态,有效地将其行为在其初始状态附近线性化。惊人的洞见是,初始化方案直接定义了这个核的属性。两个具有相同架构但不同初始化(例如,Xavier vs. He)的网络,在时间零点时将具有不同的 NTK。这意味着即使在相同的数据上训练,它们也会遵循不同的学习轨迹并收敛到不同的解决方案。初始化不仅仅是旅程的起点;它定义了训练可以采取的整个景观和所有可能的路径。

这个视角为我们理解深度网络的其他神秘属性提供了新的见解,例如它们的​​对抗性脆弱性​​。为什么训练好的模型如此容易被对其输入的微小、难以察觉的扰动所欺骗?初始化给了我们一条线索。损失函数相对于输入的梯度大小是网络敏感度的一个度量。分析表明,如果我们将 Xavier 初始化的方差缩放一个因子 s2s^2s2,那么这个输入梯度的幅度将按 s2Ls^{2L}s2L 缩放,其中 LLL 是网络的深度。这种指数关系正是梯度爆炸/消失问题的幽灵!一个即使是稍微“过热”(s>1s > 1s>1)的初始化,也可能导致指数级大的输入梯度,从一开始就创建一个对对抗性攻击高度脆弱的超敏感模型。“金发姑娘区”不仅是稳定训练的区域,也是通向一个更鲁棒、行为更良好模型的起点。

最后,如果一个好的初始化如此重要,我们是否必须依赖于一个固定的、手工设计的启发式方法?最后的前沿是把初始化本身作为一个可学习的参数来对待。在​​模型无关元学习(MAML)​​中,目标是找到一个单一的起点,网络可以从这个起点快速适应各种新任务。当面对具有“高曲率”损失景观(想象一下非常陡峭、狭窄的山谷)的一系列任务时,MAML 发现了一个反直觉且绝妙的策略。MAML 并没有遵循 Xavier 的引导,保持小权重以停留在激活函数的线性区域,而是学会了增加初始权重方差。这将神经元推向饱和,从而衰减了梯度。本质上,网络学会了一种初始化方式,它充当了一个内置的、自动的制动器,在陡峭的任务上减慢学习速度,以防止过冲和不稳定。它将饱和的“缺陷”转变为自适应学习的“特性”,表明最终的初始化可能是网络为自己发现的那个。

从一个解决梯度消失的简单修正方法开始,我们的旅程带领我们穿越了现代网络架构的殿堂,跨越了通往物理学和强化学习的桥梁,并进入了学习动力学和元学习的深层理论水域。选择一个良好起点的这个谦逊原则,已经揭示了自己是整个深度学习领域中最深刻、最通用、最美丽的思想之一。