大家的AI
机器学习AI论文
加载中…

学习

🏅我的成就

Ch.01

权重初始化(Weight Initialization):学习的正确起点

在模型开始训练前,确定各层权重与偏置的初始值即为权重初始化。坏的起点会导致梯度消失或爆炸、训练几乎无法进行;好的起点则带来更快收敛与稳定训练。本章介绍初始化的概念、Xavier 与 He 初始化的直观与公式,以及实际应用。

权重初始化:好的开始是成功的一半

什么是权重初始化? — 每一层都有权重 WWW和偏置 bbb。训练前这些值未定,需要决定最初用哪些数填充,这一过程称为权重初始化。直观上如同马拉松起跑线设在哪里:起跑太靠后(权重过小)则步幅小、学习慢;太靠前(权重过大)则一开始就失控、发散。数学上 — 一层的线性组合写成 z=Wx+bz = W \mathbf{x} + bz=Wx+b,其中 x\mathbf{x}x 为输入向量,WWW 为权重矩阵,bbb 为偏置。若 WWW 全为 0,则同层所有神经元输出相同,对称性不被打破,反向传播时梯度无法合理分配。因此通常用小随机数初始化,且随机数的分布(尺度)很重要,需根据层的输入维度 ninn_{in}nin​ 与输出维度 noutn_{out}nout​ 调节方差,使通过各层时激活的尺度不会过大或过小。实际应用 — 垃圾邮件分类模型中初始化不当会导致损失几乎不降或出现 NaN。在医疗 CNN、欺诈检测等深层网络中,不用 Xavier 或 He 时前几层梯度会接近 0(梯度消失),看起来像训练停滞;尺度过大则梯度爆炸、数值不稳定。实践中多以 Xavier(tanh·sigmoid 系)或 He(ReLU 系)为默认初始化。
权重初始化是训练的第一步:为每层设定 WWW 与 bbb 的合适尺度,使前向与反向传播时方差得以保持。

初始化尺度的影响

↓●↑输入层1层2层3输出消失保持爆炸
好的初始化是设定 W、b 的尺度,使层间方差得以保持。
好的开始是成功的一半适当初始化 → 快速收敛 · 稳定训练
  • ① 初始化:按(Xavier/He 等)规则设定各层 WWW、bbb
  • ② 前向:输入→线性和 zzz→激活 aaa→下一层
  • ③ 计算损失后反向传播:梯度沿层传递
  • ④ 更新:按梯度更新 WWW、bbb。好的初始化使梯度尺度适中保持

为何重要

梯度消失与梯度爆炸 — 层越深,反向传播的梯度在链式法则下成为多个数的乘积。权重过小则乘积趋近 0(梯度消失),前层几乎不更新;过大则乘积爆炸(梯度爆炸),出现 NaN·Inf。好的初始化使方差在层间保持稳定,从而在深层网络中梯度仍以合理尺度传递。收敛速度与最优点 — 使用适当初始化相当于在损失曲面上站在较好的起点。起点不好会陷入局部最小或收敛极慢。实践中常与学习率一起调整初始化,并观察验证损失进行调参。

如何应用

Xavier(Glorot)初始化 — 为使线性组合 zzz 的方差不依赖输入·输出大小,从均匀分布 U(−6/(nin+nout), 6/(nin+nout))U(-\sqrt{6/(n_{in}+n_{out})},\ \sqrt{6/(n_{in}+n_{out})})U(−6/(nin​+nout​)​, 6/(nin​+nout​)​) 或正态分布 N(0, σ2)\mathcal{N}(0,\ \sigma^2)N(0, σ2)(σ2=2/(nin+nout)\sigma^2 = 2/(n_{in}+n_{out})σ2=2/(nin​+nout​))中采样 WWW。适用于 tanh·sigmoid 等对称激活。He 初始化 — ReLU 将负值置 0,输出方差约为输入的一半。He 用 σ2=2/nin\sigma^2 = 2/n_{in}σ2=2/nin​ 补偿。使用 ReLU·Leaky ReLU 的现代 CNN·MLP 中常以 He 为默认。实际选择 — 激活为 ReLU 系时优先用 He,tanh·sigmoid 时用 Xavier。PyTorch、TensorFlow 的默认初始化也大多按层类型选用二者之一。

小结

权重初始化是训练开始前为各层权重与偏置设定初始值的过程。全 0 会使神经元输出相同、对称性不破、学习无法进行;随机值过大或过小则会在层间造成激活或梯度的爆炸与消失。因此按层输入·输出大小调节方差的 Xavier 与 He 初始化被广泛使用:Xavier 适用于 tanh·sigmoid 等对称激活,He 适用于 ReLU 系,二者都能减轻梯度消失与爆炸、使收敛更快更稳。

解题说明

小结 — 权重初始化是在训练前为各层设定 WWW、bbb 的步骤。全 0 会因对称性导致学习失效,故通常用小随机数并调节方差(尺度)。Xavier 以 σ2=2/(nin+nout)\sigma^2 = 2/(n_{in}+n_{out})σ2=2/(nin​+nout​) 适配 tanh·sigmoid,He 以 σ2=2/nin\sigma^2 = 2/n_{in}σ2=2/nin​ 适配 ReLU 系。好的初始化可减轻梯度消失·爆炸并加快收敛。
  • 类型权重初始化定义
  • 解法·示例(关键词→答案)训练前设定 WWW、bbb。不推荐 0 初始化。→ 概念选择时 1
  • 类型Xavier
  • 解法·示例(关键词→答案)σ2=2/(nin+nout)\sigma^2 = 2/(n_{in}+n_{out})σ2=2/(nin​+nout​),tanh·sigmoid。→ 1
  • 类型He
  • 解法·示例(关键词→答案)σ2=2/nin\sigma^2 = 2/n_{in}σ2=2/nin​,ReLU 系。→ 2
  • 类型梯度消失
  • 解法·示例(关键词→答案)权重过小时梯度趋近 0。→ 1
  • 类型梯度爆炸
  • 解法·示例(关键词→答案)权重过大时梯度爆炸。→ 2
  • 类型Xavier 均匀
  • 解法·示例(关键词→答案)范围 [−6/(nin+nout), 6/(nin+nout)][-\sqrt{6/(n_{in}+n_{out})},\ \sqrt{6/(n_{in}+n_{out})}][−6/(nin​+nout​)​, 6/(nin​+nout​)​]。计算时取整数。
  • 类型层大小
  • 解法·示例(关键词→答案)nin=4n_{in}=4nin​=4,nout=6n_{out}=6nout​=6 → nin+nout=10n_{in}+n_{out}=10nin​+nout​=10。
类型解法·示例(关键词→答案)
权重初始化定义训练前设定 WWW、bbb。不推荐 0 初始化。→ 概念选择时 1
Xavierσ2=2/(nin+nout)\sigma^2 = 2/(n_{in}+n_{out})σ2=2/(nin​+nout​),tanh·sigmoid。→ 1
Heσ2=2/nin\sigma^2 = 2/n_{in}σ2=2/nin​,ReLU 系。→ 2
梯度消失权重过小时梯度趋近 0。→ 1
梯度爆炸权重过大时梯度爆炸。→ 2
Xavier 均匀范围 [−6/(nin+nout), 6/(nin+nout)][-\sqrt{6/(n_{in}+n_{out})},\ \sqrt{6/(n_{in}+n_{out})}][−6/(nin​+nout​)​, 6/(nin​+nout​)​]。计算时取整数。
层大小nin=4n_{in}=4nin​=4,nout=6n_{out}=6nout​=6 → nin+nout=10n_{in}+n_{out}=10nin​+nout​=10。
示例(定义)
「权重初始化的主要目的是?
①训练前调整层的尺度
②提高学习率
③数据增强」
目的是使经过各层时激活与梯度的尺度保持稳定。→ 答案 1

示例(Xavier vs He)
「ReLU 层常用哪种初始化?
① Xavier
② He
③ 0」
ReLU 系常用 He 初始化。→ 答案 2

示例(计算)
nin=4n_{in}=4nin​=4,nout=6n_{out}=6nout​=6 时 Xavier 中 nin+noutn_{in}+n_{out}nin​+nout​ 的值(整数)为?
4+6=104+6=104+6=10。→ 答案 10
定义例 — 「权重初始化的主要目的是?
①训练前调整层的尺度
②提高学习率
③数据增强」→目的是使经过各层时尺度保持稳定。答案 1
正误例 — 「权重初始化是训练前设定各层 WWW、bbb 的过程。」→正确。答案 1
场景例 — 「垃圾邮件分类模型损失几乎不下降时,首先应怀疑?
①初始化·学习率
②仅数据量
③仅批大小」→先检查初始化·学习率。答案 1
选择题例 — 「He 初始化中 σ2\sigma^2σ2 为?
① 2/nin2/n_{in}2/nin​
② 2/(nin+nout)2/(n_{in}+n_{out})2/(nin​+nout​)
③ 1/nin1/n_{in}1/nin​」→He 为 σ2=2/nin\sigma^2=2/n_{in}σ2=2/nin​。答案 1
概念例 — 「Xavier 中若 nin+nout=6n_{in}+n_{out}=6nin​+nout​=6,则 6/(nin+nout)6/(n_{in}+n_{out})6/(nin​+nout​) 的值(整数)为?
① 1
② 2
③ 3」→6/6=16/6=16/6=1。答案 1
计算例 — 「nin=4n_{in}=4nin​=4,nout=6n_{out}=6nout​=6 时 Xavier 中 nin+noutn_{in}+n_{out}nin​+nout​ 的值(整数)为?」→4+6=104+6=104+6=10。答案 10