神经网络能不能训练好,很大程度上取决于最开始时权重怎么定。权重不仅决定了信号在层间传递的强弱和方向,还直接影响收敛速度、最终精度以及模型在未知数据上的表现。对于做深度学习的工程师来说,弄清楚权重如何起步、如何设定、如何约束,是基本功中的基本功。
可以把权重理解为网络对输入信息的一套度量系数。每个连接都带一个数值,这个数值的大小和正负,决定了上游信号对下游神经元的影响程度。所谓的训练,本质就是优化器不断修正这些系数,让输出逐渐逼近目标。
权重在运行中至少承担三方面职能:
一个常见误区是认为权重越大越好。数值过大的权重会让输出剧烈波动,对输入的微小变化过于敏感,最终导致泛化能力下降。所以,既要重视初始值的设定,也要在训练过程中施加有效约束。
初始化是训练前的第一步,它的质量直接关系到梯度能不能顺利回传。一次不合适的起步,可能让梯度在深层网络中消失或爆炸,训练迟迟难以进入状态。
最简单的做法是,从均值为 0 的正态分布或均匀分布中抽取小随机数,赋予每个权重。这个方法实现成本低,直观易懂,但面对深层网络时,方差会在层间逐级累积,容易造成深层梯度不稳定。只有当网络较浅、激活函数温和时,才适合用它做快速验证。
当网络使用 sigmoid 或 tanh 这类饱和型激活函数时,Xavier 初始化是更合理的选择。它的核心目的是让前向传播和反向传播的方差保持一致,避免信号在逐层传递中被过度放大或压缩。具体操作是从以 0 为中心、边界与输入输出维度相关的均匀分布中采样。这个方案对减轻深层梯度消失问题有明显帮助,训练过程也会更稳。
对现在主流的 ReLU 及其变体,He 初始化在实际应用中更有优势。ReLU 会把负输入直接截断为零,使得接近一半的神经元输出为 0,信息方差因此自然减半。He 初始化通过放大初始权重的方差来弥补这种损失,保证信号在网络中持续传递。使用 ReLU 系激活函数时,优先试 He 初始化,通常能明显加快前期的收敛速度。
选初始化方案时,最重要的依据就是激活函数的类型。选得不匹配,往往是新手训练失败的最隐蔽原因之一,训练前值得反复核验。
训练启动后,权重会随梯度更新不断变化。如果完全不设限制,权重可能持续增大,模型也容易把训练样本里的噪声细节一并学进去。
L1 正则化在损失函数里加入权重绝对值之和,它的特性是能让部分权重精确变为 0,具备特征筛选的功能,适合需要稀疏化模型的场景。L2 正则化则加入权重的平方和,它只是稳步压缩权重的整体规模,使分布更均匀,但不会让数值严格归零。如果目标是防止过拟合且保留完整特征,L2 更日常也更稳妥。
Dropout 通过在训练时随机丢弃一部分神经元,相当于让多个子网络协同学习,间接对权重的协同依赖做了限制。另一种做法是给每个神经元的权重范数设上限,一旦超出就重新缩放,从源头阻止权重无限制增长。这类约束手段可以和激活函数、优化器搭配使用,但要注意幅度,过强会拖慢训练。
正则化不是越强越好。判断标准是看验证集上的表现——如果训练损失持续下降而验证损失上升,说明过拟合正在发生,可适度加大约束;如果两边都不降,则约束可能过重了。
调参时,建议一次只改动一个变量,并记录每次实验的损失曲线。例如先用 He 初始化和默认的 L2 强度跑一轮,再单独调整学习率,而不要同时改多个参数,否则很难定位问题。若发现梯度在早期就消失或爆炸,优先检查初始化与激活函数是否匹配,其次再看学习率设置。
学习率的大小决定了权重每次更新的步长,它与初始化策略直接联动。初始权重方差较大时,学习率应相应调低,避免前期更新过猛;反之,若初始权重较小,学习率可以适度提高以加速收敛。
实际做法是:先设定一个合适的学习率预热区间,比如从 0.1 到 0.001 做几轮快速试验,观察损失在首个 epoch 的变化。若损失震荡剧烈,说明学习率偏高或初始权重偏大,需要同时调低。衰减策略如余弦退火或指数衰减,则能让后期更新更精细,适合在训练后段使用。
最典型的表现是训练前期损失几乎不下降,或者直接变成 NaN。梯度消失时损失缓慢甚至停滞;梯度爆炸时损失跳变或出现 NaN。遇到这类情况,优先检查激活函数与初始化的匹配,以及初始权重方差是否过大。
不推荐。靠近输入和输出的层对信号尺度更敏感,中间层可以统一用同一方案,但输入层若有归一化处理过的数据,适合较小的初始方差。建议结合层类型分别设置,并在验证集上对比效果。
看训练损失与验证损失的差距。差距持续拉大说明约束不够,可逐步加大 L2 系数或 Dropout 比例;若两者都在高位停滞,则约束过强,应适当放松。每轮调整幅度控制在 10 倍以内,便于观察趋势。
权重初始化与约束是训练稳定性和最终性能的基石。从激活函数出发选择 Xavier 或 He 初始化,再配合 L2 正则化和合理的学习率,是大多数场景下可复用的起步方案。建议先在一组固定配置上跑通训练流程,记录基线,再逐项调整,用验证集表现作为最终判断依据。手边常备一组初始化对比实验,能帮你快速定位训练失败的真实原因。