梯度累积

Parent: ai_keywords

### 梯度累积 (Gradient Accumulation)

#### 【核心定义】
梯度累积是一种深度学习训练优化技术,旨在突破单GPU显存瓶颈,通过**虚拟扩大批大小**(batch size)来稳定训练过程。其基本原理为:在多个连续小批量上依次执行前向传播与反向传播,**仅累积梯度而不立即更新模型参数**;当累积步数达到预设值时,使用累积平均梯度执行一次参数更新,等价于在逻辑上使用一个大批量进行训练。

#### 【关键技术点】
1. **显存-性能权衡**:无需额外硬件即可模拟大批量训练,适用于高分辨率医学图像、3D体素数据等显存密集型任务。累积步数`N`使得有效批大小 = 物理批大小 × N。
2. **Batch Normalization 兼容性**:由于BN层统计量基于每个物理mini-batch计算,梯度累积可能导致BN估计偏差。解决方案包括:同步BN(跨GPU SyncBN)、冻结BN或使用虚拟批归一化(Virtual BN)。
3. **学习率调整**:大批量训练通常需配合线性缩放规则(如 `lr_new = lr_base × N`)或引入预热策略(warm-up)以维持梯度方向的一致性。
4. **梯度噪声与稳定性**:累积梯度平均后梯度方差降低,可缓解批次间梯度震荡,尤其适合非凸优化中地形崎岖的损失面(如深层次神经网络)。
5. **实现范式**:主流框架(PyTorch/TensorFlow)通过 `backend.zero_grad()` 跳过、自动累积梯度张量,并在累积步骤后调用 `optimizer.step()`
#### 【医学/神经科学应用场景】
**首都医科大学神经病学研究所**在利用3D U-Net进行脑小血管病(CSVD)白质高信号(WMH)分割时,单张A100 GPU仅能容纳批大小2(体素尺寸256³)。通过设置梯度累积步数为8,**等效批大小达16**,使得模型在200个epoch内损失收敛更加平滑,Dice系数从0.78提升至0.83。累积梯度引入的额外训练时间(约6小时)仅为物理扩大批大小所需分发式同步成本的1/8,且有效抑制了由于小批量导致的严重梯度方差,改善了对皮层下深部微小病灶的检出率。该策略亦被推广至阿尔茨海默病海马体亚区分割任务中,证实了梯度累积在神经影像组学临床转化中的可行性。