PyTorch深度学习实战(8)——批归一化
0. 前言
批归一化( Batch Normalization
)是一种常用的神经网络优化技术,用于在神经网络的训练过程中对每批输入进行归一化操作。它的主要目的是缓解梯度消失或梯度爆炸的问题,并且加速模型的收敛。在本节中,首先介绍批归一化的基本原理,然后通过实验观察其在网络训练过程中的重要作用。
1. 批归一化原理
我们已经了解到,如果不缩放输入数据,则权重优化的速度很慢。这是由于当面临以下情况时,隐藏层的值可能会很高:
- 输入数据值高
- 权重值高
- 权重和输入的乘积很高
任何一种情况都可能导致隐藏层具有较大输出值。隐藏层可以视为输出层的输入层。因此,当隐藏层值也很大时,同样会导致网络优化缓慢。接下来,我们考虑当输入值非常小,Sigmoid
输出随权重的变化情况:
输入 | 权重 | Sigmoid 输出 |
---|---|---|
0.01 | 0.00001 | 0.500 |
0. |