之前经常将正则化和归一化这两个概念搞错,特写此文,防止再次出错。
1. 归一化(normalization)
归一化的作用是去除数据的量纲,或者说将数据的value转换到同一个数量级或者限制在某一范围之内。
1.1 max-min归一化
即通过 x x x 所在的数据集的最大和最小值对 x x x 进行归一化:
x ′ = x − x min x max − x min x^{'}=\frac{x-x_{\min }}{x_{\max }-x_{\min }} x′=xmax−xminx−xmin
其中, x min x_{\min } xmin和 x max x_{\max } xmax为数据 x x x所在集合(行/列)的最小值和最大值,经过归一化之后, x x x的范围为, x ∈ [ 0 , 1 ] x \in [0,1] x∈[0,1]。
1.2 以均值和方差进行归一化(标准化)
把数据 x x x 变换到均值为0,方差为1:
x ′ = x − μ σ x^{'}=\frac{x-\mu}{\sigma} x′=σx−μ
其中, μ \mu μ 和 σ \sigma σ 分别为该组数据的均值和方差。
经过此类归一化之后,对应的损失函数的等高线形状均匀,在进行梯度下降算法时能够很快的收敛。
2. 正则化(regularization)
正则化主要用于避免过拟合的产生和减少网络误差。正则化的公式为:
L = ∑ n ( y ^ n − ( b + ∑ w i x i ) ) 2 + λ ∑ ( w i ) 2 L=\sum_{n}\left(\hat{y}^{n}-\left(b+\sum w_{i} x_{i}\right)\right)^{2} +\lambda \sum\left(w_{i}\right)^{2} L=n∑(y^n−(b+∑wixi))2+λ∑(wi)2
注1:公式来源于李宏毅教授2020机器学习课件
注2:常用L2正则化
式中, y ^ n \hat{y}^{n} y^n 代表第 n n n 条数据的真值, x i x_i xi 为第 i i i 个输入特征。对比一般的损失函数公式,可以看到,正则化即在损失函数后面添加了一项 λ ∑ ( w i ) 2 \lambda \sum\left(w_{i}\right)^{2} λ∑(wi)2,其中, λ ≥ 0 \lambda \geq0 λ≥0 用来调整正则化的程度。
注:通常系数 w 0 w0 w0 从正则化项中省略,因为包含 w 0 w0 w0 会使得结果依赖于⽬标变量原点的选择
该公式给误差函数增加⼀个惩罚项,使得系数 w i w_i wi不会达到很大的值。
下表直观地显示了 λ \lambda λ 对系数的影响:
ln λ = − ∞ ln λ = − 18 ln λ = 0 w 0 ∗ 0.35 0.35 0.13 w 1 ∗ 232.37 4.74 − 0.05 w 2 ∗ − 5321.83 − 0.77 − 0.06 w 3 ∗ 48568.31 − 31.97 − 0.05 w 4 ∗ − 231639.30 − 3.89 − 0.03 w 5 ∗ 640042.26 55.28 − 0.02 w 6 ∗ − 1061800.52 41.32 − 0.01 w 7 ∗ 1042400.18 − 45.95 − 0.00 w 8 ∗ − 557682.99 − 91.53 0.00 w 9 ∗ 125201.43 72.68 0.01 \begin{array}{r|rrr} & \ln \lambda=-\infty & \ln \lambda=-18 & \ln \lambda=0 \\ \hline w_{0}^{*} & 0.35 & 0.35 & 0.13 \\ w_{1}^{*} & 232.37 & 4.74 & -0.05 \\ w_{2}^{*} & -5321.83 & -0.77 & -0.06 \\ w_{3}^{*} & 48568.31 & -31.97 & -0.05 \\ w_{4}^{*} & -231639.30 & -3.89 & -0.03 \\ w_{5}^{*} & 640042.26 & 55.28 & -0.02 \\ w_{6}^{*} & -1061800.52 & 41.32 & -0.01 \\ w_{7}^{*} & 1042400.18 & -45.95 & -0.00 \\ w_{8}^{*} & -557682.99 & -91.53 & 0.00 \\ w_{9}^{*} & 125201.43 & 72.68 & 0.01 \end{array} w0∗w1∗w2∗w3∗w4∗w5∗w6∗w7∗w8∗w9∗lnλ=−∞0.35232.37−5321.8348568.31−231639.30640042.26−1061800.521042400.18−557682.99125201.43lnλ=−180.354.74−0.77−31.97−3.8955.2841.32−45.95−91.5372.68lnλ=00.13−0.05−0.06−0.05−0.03−0.02−0.01−0.000.000.01
可以看出, λ \lambda λ 较小的时候,模型的参数非常大,此时极易导致模型过拟合,随着 λ \lambda λ 逐渐增加,系数又将变得非常小,此时又不利于模型的拟合效果。 λ \lambda λ 控制了模型的复杂性,决定了过拟合的程度。