搜索

pdf文档 深度学习与PyTorch入门实战 - 40. Batch Norm

1.29 MB 16 页 1 下载 41 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档主要讲解了PyTorch中Batch Normalization(批归一化)的核心概念和实现方式。通过直观的解释和数学公式,文档详细介绍了Batch Normalization的基本原理,包括如何通过 mini-batch 均值和方差进行归一化处理,以及如何通过可学习的参数γ和β进行缩放和偏移操作。文档还展示了Batch Normalization在PyTorch中的具体实现代码,并对比了Layer Normalization,强调了Batch Normalization在深度学习模型训练中的重要作用。
AI总结
### 文档总结:PyTorch中的批量归一化(Batch Normalization) #### 1. **批量归一化(Batch Normalization)简介** - **核心作用**:批量归一化通过标准化激活函数的输入,加速训练过程,防止梯度消失或爆炸,同时提升模型的泛化能力。 - **关键参数**: - $\gamma$ 和 $\beta$:可学习的缩放因子和偏移量。 - $\epsilon$:防止除以零的小常数。 - $momentum$:动量因子,用于计算运行时的均值和方差。 #### 2. **批量归一化公式** - **输入**:一个批量的激活值 $B = \{x_{1\ldots m}\}$。 - **计算步骤**: 1. 计算批量均值:$\mu_{\mathcal{B}} = \frac{1}{m}\sum_{i=1}^{m}x_{i}$。 2. 计算批量方差:$\sigma_{\mathcal{B}}^{2} = \frac{1}{m}\sum_{i=1}^{m}(x_{i}-\mu_{\mathcal{B}})^{2}$。 3. 归一化:$\widehat{x}_{i} = \frac{x_{i}-\mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^{2}+\epsilon}}$。 4. 缩放和平移:$y_{i} = \gamma\widehat{x}_{i} + \beta$。 #### 3. **PyTorch中的实现** - **一维批量归一化(`nn.BatchNorm1d`)**: - 示例代码: ```python x = torch.randn(100, 16) + 0.5 layer = nn.BatchNorm1d(16) output = layer(x) ``` - 输出:归一化后的结果,尺寸与输入一致。 - **二维批量归一化(`nn.BatchNorm2d`)**: - 示例代码: ```python x = torch.randn(1, 16, 7, 7) layer = nn.BatchNorm2d(16) output = layer(x) ``` - 输出:通道维度上的归一化结果。 - **运行时参数**: - `running_mean` 和 `running_var`:训练过程中更新的均值和方差。 #### 4. **批量归一化与层归一化(Layer Normalization)对比** - **批量归一化**:基于小批量数据的均值和方差。 - **层归一化**:基于通道或全层的均值和方差。 #### 5. **批量归一化的优缺点** - **优点**: - 加速训练。 - 提高模型鲁棒性。 - 减少对初始化的敏感性。 - **缺点**: - 计算开销较大。 - 可能破坏层间依赖关系。 #### 6. **应用场景** - 适用于深度神经网络,尤其在训练时使用,可显著提升模型性能。 总结:批量归一化通过标准化激活值,加速训练并提升模型性能,是深度学习中常用的技术。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 9 页请下载阅读 -
文档评分
请文明评论,理性发言.