> For the complete documentation index, see [llms.txt](https://baozoulin.gitbook.io/neural-networks-and-deep-learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baozoulin.gitbook.io/neural-networks-and-deep-learning/di-er-men-ke-gai-shan-shen-ceng-shen-jing-wang-luo-chao-can-shu-tiao-shi-zheng-ze-hua-yi-ji-you-hua/improving-deep-neural-networks/practical-aspects-of-deep-learning/19-gui-yi-hua-shu-ru-ff08-normalizing-inputs.md).

# 1.9 归一化输入（Normalizing inputs）

在训练神经网络时，标准化输入可以提高训练的速度

$$
\mu=\frac1m\sum\_{i=1}^mX^{(i)}
$$

$$
\sigma^2=\frac1m\sum\_{i=1}^m(X^{(i)})^2
$$

$$
X:=\frac{X-\mu}{\sigma^2}
$$

![](/files/-Le0cs8Z-Emw0526OJmg)

由于训练集进行了标准化处理，测试集或在实际应用时，应该使用同样的$$\mu$$和$$\sigma^2$$对其进行标准化处理。保证训练集和测试集的标准化操作一致

对输入进行标准化操作，是为了让所有输入归一化在同样的尺度上，方便进行梯度下降算法时能够更快更准确地找到全局最优解。假如输入特征是二维的，且$$x\_1$$的范围是\[1,1000]，$$x\_2$$的范围是\[0,1]。如果不进行标准化处理，$$x\_1$$与$$x\_2$$之间分布极不平衡，训练得到的$$w\_1$$和$$w\_2$$也会在数量级上差别很大。这样导致的结果是costfunction与$$w$$和$$b$$的关系可能是一个非常细长的椭圆形碗。对其进行梯度下降算法时，由于$$w\_1$$和$$w\_2$$数值差异很大，只能选择很小的学习因子$$\alpha$$，来避免J发生振荡。一旦$$\alpha$$较大，必然发生振荡，$$J$$不再单调下降。如果进行了标准化操作，$$x\_1$$与$$x\_2$$分布均匀，$$w\_1$$和$$w\_2$$数值差别不大，得到的cost function与$$w$$和$$b$$的关系是类似圆形碗。对其进行梯度下降算法时，$$\alpha$$可以选择相对大一些，且$$J$$一般不会发生振荡，保证了$$J$$是单调下降

![](/files/-Le0cs8bApaqxqKUDcJV)

如果输入特征之间的范围比较接近，不进行标准化操作没有太大影响
