Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

下面直接进入 2.2 这一小节的具体内容。你可以把它当作“深度网络工程训练实战篇”的第一部分:在后面训练大规模 VLA / 机器人模型时,这些都是每天会用到的“基本功”。


2.2 深度网络训练技巧概览(引入)

在第 1 章我们从优化角度讨论了梯度下降、学习率、收敛等概念,这一节则更偏工程实践:同样一个网络结构,训练得好不好、稳不稳,很大程度取决于权重初始化、归一化、正则化以及训练过程的监控与调度 。 对于后面要训练的 Transformer、视觉骨干、甚至整套 VLA 模型,这些技巧是保证“能训起来”的前提。


2.2.1 权重初始化与梯度消失 / 爆炸问题

2.2.1.1 参数初始化策略:Xavier、Kaiming 等

(1)为什么初始化是个严肃问题?

设一层全连接网络

\[ y = Wx + b \]

其中 \(x \in \mathbb{R}^{n_{\text{in}}}\),\(y \in \mathbb{R}^{n_{\text{out}}}\),权重 \((W_{ij})\) 独立同分布,均值为 0、方差为 \(\sigma^2\)。如果输入各维方差相同且独立,可推得每个输出维的方差约为

\[ \mathrm{Var}(y_j) \approx n_{\text{in}} \sigma^2 ,\mathrm{Var}(x). \]

  • 如果 \(\sigma^2\) 选得太大,随着层数加深,激活的方差会迅速变大,前向信号“发散”,后向梯度也会爆炸。
  • 如果 \(\sigma^2\) 选得太小,信号层层被压缩,最后几乎全是 0,导致梯度消失。

初始化的目标:让每一层输出的方差与输入大致相当,从而在多层堆叠后,既不过度放大也不过度衰减。(Pinecone)


(2)Xavier / Glorot 初始化

Xavier(也叫 Glorot)初始化假设激活函数是对称且不过度饱和 的(如线性、tanh),希望同时在前向与反向传播中都保持方差稳定。基本思想是根据 fan-in 和 fan-out 调整权重方差:(Pinecone)

  • fan-in:该层每个神经元的输入维数 \(n_{\text{in}}\);
  • fan-out:输出维数 \(n_{\text{out}}\)。

典型设置:

\[ \mathrm{Var}(W) = \frac{2}{n_{\text{in}} + n_{\text{out}}}. \]

实现上常见两种形式:

  • 均匀分布

    \[ W_{ij} \sim U\left[-\sqrt{\frac{6}{n_{\text{in}} + n_{\text{out}}}},\ \sqrt{\frac{6}{n_{\text{in}} + n_{\text{out}}}}\right] \]

  • 正态分布

    \[ W_{ij} \sim \mathcal{N}\left(0,\ \frac{2}{n_{\text{in}} + n_{\text{out}}}\right). \]

在 PyTorch 等框架中,这通常对应 xavier_uniform_ / xavier_normal_。对于卷积层,fan-in/out 会包含卷积核大小(如 \(C_{\text{in}} \times k_h \times k_w\))。(PyTorch 文档)


(3)Kaiming / He 初始化

ReLU 及其变体(LeakyReLU、GELU 等)在负半轴直接截断,会把方差“砍掉一半”左右,Xavier 初始化没有考虑这一点。Kaiming He 等人推导得到对 ReLU 更合适的方差:(www.abhik.xyz)

  • 对标准 ReLU:

    \[ \mathrm{Var}(W) = \frac{2}{n_{\text{in}}}. \]

  • 对 LeakyReLU(负半轴斜率为 \(\displaystyle a\))等,可推广为:

    \[ \mathrm{Var}(W) = \frac{2}{(1 + a^2) n_{\text{in}}}. \]

实现时常用:

  • kaiming_normal_(..., mode='fan_in', nonlinearity='relu')
  • kaiming_uniform_(...)

它的目标是维持前向信号的方差稳定,从而在很多层 ReLU 堆叠后不会过快衰减或发散。


(4)实践建议与偏置初始化

  • 多层感知机 + ReLU:优先选用 Kaiming 初始化;tanh / sigmoid 仍可以使用 ** Xavier**。
  • 卷积网络:同样使用 Xavier/Kaiming,只是 fan-in/out 的计算要把卷积核大小考虑进去。(Pinecone)
  • 偏置项通常初始化为 0(或小常数),避免引入额外偏移。
  • RNN 常使用正交初始化(Orthogonal),以在时间维上更好地保持梯度范数。

【图 2-2-1 占位】 示意图:横轴为层数,纵轴为激活方差,比较“随机大值初始化”(方差迅速爆炸)、“随机小值初始化”(方差迅速衰减)和“Xavier / Kaiming 初始化”(方差在合理区间内平稳)的三条曲线。


2.2.1.2 梯度消失与梯度爆炸

(1)现象描述

  • 梯度消失:反向传播时,越靠近输入层的梯度越小,接近 0,导致这些层几乎不更新,看起来像“白学了”。
  • 梯度爆炸:梯度在反向传播中被成倍放大,最终变得非常大,引起参数更新剧烈震荡甚至出现 NaN。

这两个问题在深层网络时间展开很长的 RNN 中尤为常见。


(2)从“链式法则”的角度看

假设一个 L 层网络,损失对第 \(l\) 层激活 \(h^{(l)}\) 的梯度可以写成一串雅可比矩阵的乘积:

\[ \frac{\partial \mathcal{L}}{\partial h^{(l)}} = \frac{\partial \mathcal{L}}{\partial h^{(L)}} \prod_{k=l+1}^{L} \frac{\partial h^{(k)}}{\partial h^{(k-1)}}. \]

每个 \(\frac{\partial h^{(k)}}{\partial h^{(k-1)}}\) 的“平均尺度”如果略小于 1,很多层相乘后就指数级趋近于 0;略大于 1,就指数级增长。配合饱和型激活函数(sigmoid / tanh 在两端导数接近 0),非常容易出现梯度消失。(Pinecone)

在 RNN 中,这个乘积沿着时间展开,更容易出问题:

\[ \frac{\partial \mathcal{L}_T}{\partial h_t} ;=; \frac{\partial \mathcal{L}_T}{\partial h_T} \prod_{k=t+1}^{T} \frac{\partial h_k}{\partial h_{k-1}}. \]

当序列很长时,远处的梯度要么弱得像“幽灵”,要么强得像“爆炸”


(3)对训练的影响

  • 梯度消失:
    • 靠近输入的层训练极慢,网络只能“学会”靠后的几层;
    • 难以捕获长距离依赖(长序列、深层语义)。
  • 梯度爆炸:
    • 损失值突然暴涨,优化器步长过大直接跳出稳定区域;
    • 参数变成 NaN,训练中断。

机器人与具身智能中,任务往往涉及长时间决策序列,梯度消失 / 爆炸会直接导致策略难以学到稳定的长时行为,这也是后面在 RNN / Transformer、RL 章节要重点处理的问题。

【图 2-2-2 占位】 示意图:左图展示从输出层向前传播的梯度在层数增加时指数级衰减(梯度消失);右图展示梯度指数级增长(梯度爆炸),对比两种极端情况。


2.2.1.3 缓解梯度消失 / 爆炸的常见方法

  1. 合理的权重初始化
    • 使用 Xavier / Kaiming 等能保持前向、反向方差适中的初始化方法,是最基础的一步(见 2.2.1.1)。(Pinecone)
  2. 选择合适的激活函数
    • ReLU 与其变体(LeakyReLU、ELU、GELU 等)在大部分输入区间有非零导数,相比 sigmoid/tanh 更能缓解梯度消失。
    • 同时要防止 ReLU“死亡”(大量神经元长期输出 0),通常通过 Kaiming 初始化、稍微增大学习率、或使用 LeakyReLU/GELU 来缓解。
  3. 归一化技术
    • BatchNorm、LayerNorm 会在每层强行把中间激活标准化到均值接近 0、方差接近 1,从而在一定程度上阻止方差在层间无限放大或缩小。(arXiv)
    • 这也是 2.2.2 的主题。
  4. 结构设计:残差连接(Residual Connections)
    • ResNet 中的 skip-connection 让梯度可以“绕过”若干非线性层直接传到更前面,减少有效深度,使梯度更容易流动。
  5. 梯度裁剪(Gradient Clipping)
    • 对每次反向传播得到的梯度范数做上界限制,如

      \[ g \leftarrow g \cdot \min\left(1,\frac{\tau}{|g|}\right), \]

      其中 \(\tau\) 是预设阈值。

    • 在 RNN、RL 和真实机器人训练中非常常见,用来防止偶发的“梯度尖峰”引起训练崩溃。

  6. 合理的学习率与调度
    • 过大的学习率会放大梯度爆炸的风险;过小则放大梯度消失的效果。
    • 第 2.2.4 节会系统讨论学习率调度和训练监控。

2.2.2 Batch Normalization / LayerNorm 等归一化技术

归一化(Normalization)的核心思想是:在每一层把神经元的激活“拉回到一个合适的统计范围”,让优化问题变得更稳定 。这在深层网络中特别重要。


2.2.2.1 批归一化(Batch Normalization)

BatchNorm 由 Ioffe 和 Szegedy 提出,用来缓解所谓的“内部协变量偏移”(internal covariate shift)——即某一层输入的分布,随着前面层参数更新不断变化,从而让这一层不停适应新分布,训练变慢。(arXiv)

尽管后续研究发现“内部协变量偏移”并非 BN 有效性的根本解释,但 BN 在实践中确实显著加速收敛、稳定训练,并带来一定正则化效果 。(维基百科)

(1)前向计算公式

对一个 mini-batch \(B = {x_1,\dots,x_m}\),对每个通道 / 特征维度 \(\displaystyle k\),计算:

  • 均值:

    \[ \mu_B^{(k)} = \frac{1}{m} \sum_{i=1}^m x_i^{(k)} \]

  • 方差:

    \[ (\sigma_B^{(k)})^2 = \frac{1}{m} \sum_{i=1}^m \big(x_i^{(k)} - \mu_B^{(k)}\big)^2 \]

然后标准化:

\[ \hat{x}_i^{(k)} = \frac{x_i^{(k)} - \mu_B^{(k)}}{\sqrt{(\sigma_B^{(k)})^2 + \varepsilon}} \]

再通过可学习的缩放和平移参数

\[ y_i^{(k)} = \gamma^{(k)} \hat{x}_i^{(k)} + \beta^{(k)} \]

其中 \(\gamma, \beta\) 也是模型参数,可以恢复或改变归一化后的分布。(Medium)

在卷积网络中,BN 一般对“batch × 空间维度(H×W)”整体求通道均值与方差。


(2)训练 vs 推理(inference)

  • 训练阶段:使用当前 mini-batch 的统计量 \(\mu_B, \sigma_B^2\)。
  • 推理阶段:使用滑动平均 累积的“全局均值 / 方差”,避免单个 batch 不稳定。

(3)BN 的作用与局限

  • 允许使用更大的学习率,加速收敛;
  • 在一定程度上减轻了初始化敏感性;
  • mini-batch 统计带来的噪声本身具有正则化效果,有时可以减弱 Dropout 强度;(arXiv)
  • 对 batch size 非常敏感:当 batch 很小时(如 2~8),估计的方差很不稳定,这时往往需要使用 GroupNorm、LayerNorm 等替代方案。

【图 2-2-3 占位】 示意图:展示一层网络中“线性变换 → BatchNorm(减均值 / 除标准差 / 乘 γ 加 β)→ 非线性激活”的数据流。


2.2.2.2 层归一化(LayerNorm)

LayerNorm 由 Ba 等人提出,最初就是为了解决 BN 在 RNN 等场景中不易使用的问题。核心区别在于:BN 是在 batch 维上做统计,而 LN 是在“特征维”上对单个样本做统计 。(arXiv)

给定单个样本的隐藏状态向量 \(\mathbf{h} \in \mathbb{R}^d\),LN 计算:

\[ \mu = \frac{1}{d}\sum_{j=1}^{d} h_j,\quad \sigma^2 = \frac{1}{d}\sum_{j=1}^{d} (h_j - \mu)^2 \]

\[ \hat{h}_j = \frac{h_j - \mu}{\sqrt{\sigma^2 + \varepsilon}},\quad y_j = \gamma_j \hat{h}_j + \beta_j \]

特点:

  • 与 batch size 无关,非常适合小 batch 或 batch=1 的场景;
  • 训练和推理阶段完全一致,无需维护滑动平均;
  • 已成为 Transformer 中的标准组件(前 / 后 LayerNorm)。

(3)其他归一化变体(了解即可)

  • InstanceNorm:对每个样本、每个通道单独在空间维上归一化,多用于风格迁移等视觉任务。
  • GroupNorm:将通道分组,每组内部做归一化,兼具 BN/LN 的一些优点,适合小 batch 的 CNN。(d2l.ai)

在后续的视觉与 VLA 模型中,你会看到:CNN 常用 BN / GroupNorm,Transformer 常用 LayerNorm / RMSNorm,这是由各自的数据形式和训练方式决定的。


2.2.2.3 归一化技术的作用与实践要点

  1. 稳定中间层分布,改善优化几何 归一化相当于把每一层的输入都“重置”到均值零、方差一的尺度上,使得损失函数在参数空间中更“平滑”,从而允许更大的学习率、加速收敛。理论和实证研究都表明 BN/LN 的主要收益与平滑损失景观 密切相关。(维基百科)
  2. 提高训练速度与深度可达性
    • VGG 这类极深网络在引入 BN 后变得更容易训练;
    • 在 Transformer 中,如果没有 LN,几十层的深度几乎无法稳定收敛。
  3. 正则化效果
    • BN 通过 batch 统计引入噪声,有类似模型集成的效果,对过拟合有抑制;
    • 这也意味着BN + 强 Dropout 有时反而会伤害性能,需要适度调整。(arXiv)
  4. 机器人 / 具身智能中的注意点
    • 在强化学习或机器人场景中,输入数据往往不是独立同分布(non-iid),BN 的 batch 统计可能与策略变化纠缠在一起,导致不稳定;这时 LayerNorm 或不依赖 batch 统计的归一化往往更稳定。
    • 对多模态输入(图像、关节状态、语言 embedding)时,可以分别在各模态分支中使用最合适的归一化方式,再做融合。

2.2.3 Dropout、数据增广等正则化方法

为了防止第 1.4 节所说的过拟合,深度学习发展出一系列正则化手段,其中 Dropout 和数据增广几乎出现在所有成功的视觉 / 语言 / 机器人模型中。


2.2.3.1 Dropout:随机丢弃神经元

Dropout 由 Srivastava 等人提出,本质上是一种随机丢弃神经元的模型集成方法 。训练时,每个神经元以一定概率被“关掉”,迫使网络不能依赖某些特定特征,从而降低过拟合。(机器学习研究杂志)

(1)数学形式(以“反向缩放”实现为例)

给定一层的激活 \(\displaystyle h\),生成掩码向量 \(\displaystyle m\),其中每个元素独立服从 Bernoulli 分布:

\[ m_i \sim \mathrm{Bernoulli}(p_{\text{keep}}), \]

然后在训练时计算:

\[ \tilde{h}_i = \frac{m_i}{p_{\text{keep}}} h_i. \]

这样 \(\mathbb{E}[\tilde{h}_i] = h_i\),保证训练和测试阶段的激活期望一致。 测试时则不再随机丢弃,而是使用完整网络(或在权重上做等价缩放)。


(2)直观理解

  • 每次训练都在随机采样一个“变薄的子网络”(thinned network),不同子网络共享权重;
  • 测试时等价于对大量子网络做平均(ensemble);
  • 因为神经元不能依赖于固定的“队友”,模型被迫学到更鲁棒、更分散的特征。

(3)实践经验

  • 全连接层常用 dropout rate 在 0.1~0.5 之间;
  • 卷积层中,如果直接对单个像素位置做 Dropout,效果往往一般,可以使用更结构化的 SpatialDropout / DropBlock 等变体;(ScienceDirect)
  • 与 BatchNorm 叠加时要小心,一般将 Dropout 放在 BN 之后、激活函数之后,且强度不宜过大。

【图 2-2-4 占位】 示意图:左边是完整网络,右边是训练时启用 Dropout 后“随机熄灭部分神经元”的网络,配上测试阶段使用完整网络的说明。


2.2.3.2 数据增广:让数据“学会变身”

数据增广(Data Augmentation)通过对已有样本做各种变换,在不改变标签的前提下制造更多样本,是深度学习中效果最直接的正则化手段之一。(ScienceDirect)

(1)图像任务中的经典增广

几乎所有视觉模型都会用到以下几类增广:(forever_happiness)

  • 几何变换:随机水平翻转、旋转、平移、缩放、裁剪;
  • 光照 / 颜色变换:亮度、对比度、饱和度、色相扰动,加入高斯噪声、模糊等;
  • 遮挡 / 混合类增广:
    • Cutout:随机挖掉图像中的方块区域;
    • Mixup:将两张图像按比例线性混合、标签也加权混合;
    • CutMix:剪切一块图像贴到另一张上,同时按面积混合标签。(Medium)

这些方法可以显著提升模型在噪声、遮挡和标签噪声条件下的鲁棒性。


(2)具身智能场景下的数据增广

对于机器人场景,我们可以在更多模态上做增广和“域随机化”(Domain Randomization):

  • 视觉增广:改变背景纹理、光照条件、物体颜色、摄像机视角等,使模型不过度依赖特定桌面材质或灯光;
  • 状态 / 轨迹增广:对关节角、末端位姿、动作加入小扰动,保证物理可行的前提下丰富轨迹分布;
  • 语言增广:对指令做同义改写、改变语序而不改变语义;
  • 在仿真中更激进地随机环境参数(摩擦系数、物体质量),为后续的 Sim2Real 做铺垫。

【图 2-2-5 占位】 示意图:展示同一个机器人抓取场景的原图与若干增广结果(光照改变、背景纹理随机、遮挡、颜色扰动等)。


2.2.3.3 其他正则化:L1/L2、BatchNorm 的正则作用、模型集成

(1)L2 正则化 / 权重衰减(Weight Decay)

在损失函数中附加惩罚项:

\[ \mathcal{L}_{\text{total}} = \mathcal{L}_{\text{task}} + \lambda |W|_2^2 \]

对梯度下降而言,等价于在每轮更新中给权重乘上一个略小于 1 的系数(向 0 收缩),抑制权重无限变大,有助于提高泛化能力。(d2l.ai)

  • 在纯 SGD 下,L2 正则与显式的 weight decay 本质等价;
  • 在 Adam / AdamW 等自适应优化中,两者存在差别,实践中更推荐使用“解耦的权重衰减”(AdamW)。

(2)L1 正则化

  • 惩罚项为 \(\lambda |W|_1\),鼓励参数稀疏;
  • 用于特征选择或模型压缩时常见,在大规模深网中使用频率相对较低。

(3)BatchNorm 的正则化效果

  • 前面的 2.2.2 已经提到,BN 利用 batch 统计带来的噪声,实际上起到了一定“模型集成”的作用;
  • 有研究指出,在存在 BN 等归一化层时,L2 正则的“真正作用”更多是调整有效学习率,而不是传统意义上控制模型容量。(arXiv)

(4)模型集成(Ensemble)

  • 训练多个结构相同但初始化不同的模型,对其输出取平均,可以显著提高泛化性能;
  • 在机器人场景中,完整 ensemble 会带来较大计算成本,但可以在离线阶段或关键任务上使用;
  • Dropout、BN 等都可以视为隐式 ensemble 的一种。

总体来说,在真实机器人数据昂贵、样本有限的条件下,数据增广 + 适度的权重衰减 + 归一化,往往比单纯加大 Dropout 更有效、更稳定。


2.2.4 训练监控:损失曲线、学习率调度、早停策略

深度网络训练是一个动态过程,不是“一键跑完看结果”。对损失与指标的持续监控、适当调整学习率以及使用早停策略,是保证训练效率和避免过拟合的关键。


2.2.4.1 监控损失曲线与训练状态

(1)训练集 vs 验证集

  • 训练集损失:反映模型对已见数据 的拟合程度;
  • 验证集损失 / 指标:反映模型对未见数据 的泛化性能;
  • 通常每若干 step 或每个 epoch 记录一次两者的曲线,并可视化(如 TensorBoard、Weights & Biases 等)。

在机器人 / RL 场景中,验证指标可以是:

  • 平均回报(average return);
  • 任务成功率(success rate);
  • 任务完成时间、路径长度等。

(2)典型曲线形态与诊断

  1. 正常收敛
    • 训练损失稳步下降;
    • 验证损失也下降并最终趋于平稳;
    • 说明模型容量和正则化基本合适。
  2. 欠拟合
    • 训练和验证损失都高,且都不再明显下降;
    • 可能的原因:模型太小、训练轮数不够、学习率过低或特征表达不足。
  3. 过拟合
    • 训练损失持续下降;
    • 验证损失先降后升,出现“U 型”或“碗型”曲线;
    • 表明模型已经开始记忆训练噪声,这时应增加正则化或使用早停。(Medium)
  4. 训练不稳定 / 发散
    • 损失忽然剧烈抖动或直冲无穷大,甚至 NaN;
    • 常见原因:学习率过大、梯度爆炸、数值不稳定(如 log(0))。

【图 2-2-6 占位】 示意图:画出“正常收敛”“欠拟合”“过拟合”三种场景下的训练/验证损失曲线,并用标注指出过拟合开始点。


2.2.4.2 学习率调度:从“粗调”到“精调”

学习率(learning rate)是影响训练速度和稳定性最敏感的超参数之一。很多现代训练策略都会对学习率做随时间变化的调度(schedule) 。(arXiv)

(1)为什么需要学习率调度?

  • 初期希望快速探索、跳出不良局部极小和鞍点——需要较大的学习率;
  • 后期希望细致“打磨”参数——需要较小的学习率以免在最优点附近抖动;
  • 固定学习率往往很难兼顾这两种需求。

(2)常见学习率调度策略

  1. 阶梯衰减(Step Decay)
    • 每过若干 epoch(如 30、60、90)就将学习率乘以一个固定因子(如 0.1);
    • 经典 CNN 训练(如 ResNet)中很常见。
  2. 指数 / 多项式衰减
    • 按 epoch 或 step 指数级减小学习率,平滑一些,但超参数较多。
  3. 余弦退火(Cosine Annealing)
    • Loshchilov & Hutter 在 SGDR 中提出的一类调度:(arXiv)

      \[ \eta_t = \eta_{\min} + \frac{1}{2}(\eta_{\max} - \eta_{\min}) \left(1 + \cos\frac{T_{\text{cur}}}{T_{\max}}\pi\right), \]

      其中 \(T_{\text{cur}}\) 是当前 step,\(T_{\max}\) 是一个周期长度。

    • 学习率随训练呈“半个余弦”缓慢减小,比阶梯衰减平滑;

    • 在很多视觉与 Transformer 训练中表现良好。

  4. 余弦退火 + 重启(Cosine Annealing with Warm Restarts, SGDR)
    • 当学习率降低到很小值后,突然“重启”回大值,再一次余弦衰减,如此周期往复;
    • 可以帮助模型反复跳出局部极小,获得更好的最终结果。
  5. 循环学习率(Cyclical LR)与 One-cycle Policy
    • 学习率在一个区间内来回震荡(上升再下降),有助于快速找到合适区域;
    • One-cycle 策略常用于大批量、短训练任务。

(3)Warmup(预热)

大模型、尤其是 Transformer,在训练开始时对大学习率非常敏感,容易发散。常用的技巧是在前若干 step/epoch 使用“学习率线性增加”的 warmup:

  • 从非常小的值开始,逐步线性增至目标学习率;
  • Warmup 结束后再接上余弦退火或其他调度。(ResearchGate)

【图 2-2-7 占位】 示意图:绘制常数学习率、阶梯衰减、余弦退火和带 warmup 的余弦退火曲线,直观比较不同策略随时间的变化。

在后续训练 VLA 大模型(第 9 章)时,Warmup + 余弦退火 会是一个非常常见的默认配置。


2.2.4.3 早停(Early Stopping):在最合适的时候“踩刹车”

早停是一种非常实用、实现简单的正则化技巧:当模型在验证集上的性能不再提升甚至开始下降时,提前停止训练,并回滚到效果最好的那一轮。(Medium)

(1)基本流程

  1. 划分出验证集或验证任务集;
  2. 在训练过程中定期评估验证指标(如验证损失、准确率、成功率等);
  3. 维护一个“最佳验证指标”和对应模型参数的缓存;
  4. 当连续若干次评估(patience)都没有改善时,停止训练,将模型恢复到最佳状态。

(2)超参数与实现细节

  • 监控指标
    • 通常选择验证损失 / 准确率;
    • 在机器人任务中可以选择任务成功率、平均回报等。
  • patience(耐心)
    • 过小:可能在指标随机波动时误判“变差”;
    • 过大:早停效果变弱;
    • 实践中可以从 5~10 个评估周期起步,根据任务调整。(GeeksforGeeks)
  • 最小训练轮数
    • 避免一开始就触发早停,一般设置一个最小 epoch 数,如至少训练 20~30 个 epoch 后才考虑早停。

(3)在 RL / 机器人任务中的注意点

  • RL 中性能波动较大,单次评估的噪声很高;
  • 可以采用:
    • 在多个随机种子、多个环境实例上取平均;
    • 使用滑动平均平滑验证曲线;
    • 提高 patience,以免过早停止。

【图 2-2-8 占位】 示意图:显示验证集指标随 epoch 变化,在某一点达到峰值后出现下降,并标出早停触发的位置。


小结:从这一节过渡到更大规模模型训练

2.2 小节从权重初始化 → 归一化 → 正则化 → 训练监控与调度,搭起了“如何把一个深度网络训稳、训好”的基本框架。这些技巧在后续章节会不断复用:

  • 在第 2.4 节 Transformer 结构中,你会看到 LayerNorm + 残差连接如何让数十层网络可训练;
  • 在第 9 章 VLA 预训练与模仿学习中,我们会具体讨论如何结合数据增广、学习率调度和早停,稳健地训练大规模视觉–语言–动作模型;
  • 在第 5、7 章强化学习和仿真环境中,梯度稳定性与正则化会直接决定机器人策略能否安全收敛。

掌握了这一节的内容,就相当于为后面所有“大模型 + 机器人”的实验打好了一个坚实的“工程地基”。