从线性回归看Normalization

考虑如下线性回归模型:

$$
\hat{y}_{i}=wx_{i}+b
$$

其损失函数为:

$$
L=
\frac{1}{2N}
\sum_{i=1}^{N}
(\hat{y}_{i}-y_{i})^2
$$

可以分别求出 $L$ 关于 $w$ 和 $b$ 的偏导。

$$
\begin{aligned}
\operatorname{grad}_{w}
&=
\frac{\partial L}{\partial w}
\\
&=
\frac{1}{N}
\sum_{i=1}^{N}
\frac{\partial \ell_{i}}{\partial \hat{y}_{i}}
\frac{\partial \hat{y}_{i}}{\partial w}
\\
&=
\frac{1}{N}
\sum_{i=1}^{N}
(\hat{y}_{i}-y_{i})x_{i}
\end{aligned}
$$

$$
\begin{aligned}
\operatorname{grad}_{b}
&=
\frac{\partial L}{\partial b}
\\
&=
\frac{1}{N}
\sum_{i=1}^{N}
\frac{\partial \ell_{i}}{\partial \hat{y}_{i}}
\frac{\partial \hat{y}_{i}}{\partial b}
\\
&=
\frac{1}{N}
\sum_{i=1}^{N}
(\hat{y}_{i}-y_{i})
\end{aligned}
$$

单纯从梯度公式可以看出,相比于 $b$,$w$ 的梯度还会额外受到输入 $x_{i}$ 的影响。

如果一批数据中的 $x_{i}$ 普遍较大,那么 $w$ 的梯度也可能很大。此时学习率稍大,$w$ 的更新幅度就可能过大,导致训练过程震荡甚至发散。

如果为了稳定 $w$ 的更新而调小学习率,$b$ 的更新又会变得很慢,只能通过增加训练轮数来弥补。

反过来,如果 $x_{i}$ 普遍很小,$w$ 的梯度也会很小,导致 $w$ 收敛缓慢。

也就是说,当输入数据的尺度不合适时,$w$ 和 $b$ 可能需要不同量级的更新步长,而普通梯度下降通常只使用一个统一的学习率,因此难以同时兼顾二者。

对输入进行标准化

一种常见的解决方案是对输入数据进行标准化:

$$
x_{i}^{\text{norm}} =
\frac{x_{i}-\mu_{x}}{\sigma_{x}}
$$

其中:

$$
\mu_{x} =
\frac{1}{N}
\sum_{i=1}^{N}x_{i}
$$

$$
\sigma_{x} =
\sqrt{
\frac{1}{N}
\sum_{i=1}^{N}
(x_{i}-\mu_{x})^2
}
$$

经过标准化后,输入数据的均值为 $0$,标准差为 $1$:

$$
\operatorname{mean}(x^{\text{norm}})=0
$$

$$
\operatorname{std}(x^{\text{norm}})=1
$$

这里需要注意,标准化并不保证数据一定落在某个固定的小区间内,而是将数据调整到相对稳定的尺度。

此时模型变为:

$$
\hat{y}_{i} = w^{\prime}x_{i}^{\text{norm}}+b^{\prime}
$$

由于 $x_{i}^{\text{norm}}$ 的尺度更加适中,$w^{\prime}$ 的梯度不容易因为输入尺度过大或过小而失衡,因此训练通常会更加稳定,也更容易选择合适的学习率。

同时,因为标准化后的输入均值为 $0$,模型中的 $w^{\prime}$ 和 $b^{\prime}$ 也会更加容易独立地进行优化。

转换回原始输入空间

标准化后的参数 $w^{\prime}$ 和 $b^{\prime}$ 是针对 $x^{\text{norm}}$ 的。如果需要,可以将它们转换为针对原始输入 $x$ 的参数。

由

$$
\hat{y} = w^{\prime}\frac{x-\mu_{x}}{\sigma_{x}}+b^{\prime}
$$

展开可得:

$$
\hat{y} =
\frac{w^{\prime}}{\sigma_{x}}x
+
\left(
b^{\prime}-\frac{w^{\prime}\mu_{x}}{\sigma_{x}}
\right)
$$

因此,原始输入空间中的参数为:

$$
w=\frac{w^{\prime}}{\sigma_{x}}
$$

$$
b=b^{\prime}-\frac{w^{\prime}\mu_{x}}{\sigma_{x}}
$$

可见,标准化只是改变了参数的表示方式,并没有改变线性模型能够表示的函数。

推广到多维输入

对于多元线性回归:

$$
\hat{y} = \sum_{j=1}^{d}w_{j}x_{j}+b
$$

每个权重 $w_{j}$ 的梯度都会受到对应特征 $x_{j}$ 的影响:

$$
\frac{\partial L}{\partial w_{j}} =
\frac{1}{N}
\sum_{i=1}^{N}
(\hat{y}_{i}-y_{i})x_{ij}
$$

如果不同特征的尺度差异很大,例如一个特征的取值范围是 $0\sim 1$,另一个特征的取值范围是几万,那么不同权重的梯度尺度也会相差很大。

因此,通常需要分别对每个特征进行标准化:

$$
x_{ij}^{\text{norm}} =
\frac{x_{ij}-\mu_{j}}{\sigma_{j}}
$$

使各个特征处于相近的尺度,从而让不同权重能够以更加协调的速度更新。

推广到神经网络

类似的问题也存在于神经网络中。

神经网络每一层都可以看作对上一层输出进行新的变换。如果某一层输出的尺度过大或过小,就可能影响下一层的激活值和梯度,使训练变得不稳定。

因此,神经网络中除了会对输入数据进行标准化,还经常使用归一化层来控制中间特征的尺度,例如:

  • Batch Normalization;
  • Layer Normalization;
  • Group Normalization;
  • RMSNorm。

这些方法的具体归一化维度不同,但基本目的相似:让网络中间特征保持相对稳定的尺度,使不同层的参数更容易使用统一的学习率进行优化。

不过神经网络中的归一化层并不只是简单的输入标准化。它们通常还会加入可学习的缩放和平移参数,使网络在获得稳定数值尺度的同时,仍然能够学习适合当前任务的特征分布。


从线性回归看Normalization
https://nnnut-zhou.github.io/2026/08/23/Deep-Learning入门-从线性回归看Normalization/
作者
Lee Chou
发布于
2026年8月23日
许可协议