7、Regularization(正则化)
7.1 The problem of overfitting(过拟合问题)
过拟合(Overfitting):如果有太多的特征,学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这时会对新的样本预测的很差。
解决过拟合的方法:1,减少特征数。(1)人工手动选择保留哪些特征;(2)模型选择算法自动选择保留哪些特征。但是减少特征数的方法,也舍弃了关于问题的一些信息。2,正则化。保留所有的特征,但是减少参数 θ j \theta_j θj的量级/值。当有很多特征的时候表现得很好,每一个特征都对预测起到了一些作用。
7.2 Cost function(代价函数)
“正则化”的思想:Small values for 参数 θ 0 , θ 1 , ⋯ , θ n \theta_0,\theta_1,\cdots,\theta_n θ0,θ1,⋯,θn有着以下两个优点:1,预示着更简单的假设函数;2,不容易出现过拟合的问题。正则化的目的就是让尽可能多的参数为0.
修改代价函数,来缩小参数。比如,对于线性回归而言,代价函数修改为 J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2m}\left[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2\right] J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]注:按照习惯,不对 θ 0 \theta_0 θ0增加惩罚项。 λ \lambda λ称为正则化参数,如果 λ \lambda λ设置的过大,会造成“欠拟合”,因此要选择一个合适的 λ \lambda λ,后面会讲到很多自动选择正则化参数 λ \lambda λ的方法。
7.3 Regularied linear regression(线性回归的正则化)
这一节就是利用前面讲到的线性回归的“梯度下降法”和“正规方程”,求解加了正则项后的线性回归的代价函数的参数 θ \theta θ。没啥好讲的,只需要类似前面求导就可以得到梯度下降算法;令导数等于 0 0 0,即可得到正规方程。然后利用矩阵的知识,简化成矩阵与向量的算法。
对于正规方程, θ = ( X T X + λ [ 0 1 ⋱ 1 ] ) − 1 X T y \theta=\left(X^TX+\lambda\begin{bmatrix}0 & & & \\& 1 & & \\& & \ddots&\\& & &1 \end{bmatrix}\right)^{-1}X^Ty θ=⎝⎜⎜⎛XTX+λ⎣⎢⎢⎡01⋱1⎦⎥⎥⎤⎠⎟⎟⎞−1XTy只要 λ > 0 \lambda>0 λ>0, X T X + λ [ 0 1 ⋱ 1 ] X^TX+\lambda\begin{bmatrix}0 & & & \\& 1 & & \\& & \ddots&\\& & &1\end{bmatrix} XTX+λ⎣⎢⎢⎡01⋱1⎦⎥⎥⎤一定可逆。
7.4 Regularized logistic regression(Logistic回归的正则化)
加的正则项和线性回归的正则项一样,都是参数 θ \theta θ 的 L 2 L_2 L2 范数,求解和前面讲Logistic回归时一样。