正则化

过拟合问题

正则化_第1张图片导致结果不正确。

解决办法

使 θ \theta θ的取值尽量小,已达到曲线平滑。
但当 θ \theta θ取值过小会导致欠拟合
改变代价函数
线性回归:
J ( θ ) = 1 2 m ( ∑ i = 1 m ( h θ ( x i ) − y ( x i ) ) 2 + λ ∑ j = 1 n θ j 2 ) J(\theta)=\frac{1}{2m}(\sum_{i=1}^{m}({h_\theta(x^i)-y(x^i)})^2+\lambda\sum_{j=1}^n\theta_j^2) J(θ)=2m1(i=1m(hθ(xi)y(xi))2+λj=1nθj2)
使用梯度下降迭代
θ 0 = θ 0 − α 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_0=\theta_0-\alpha\frac1m(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)} θ0=θ0αm1(hθ(x(i))y(i))x0(i)
θ j = θ j − α [ 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) + λ m θ j ] \theta_j=\theta_j-\alpha[\frac1m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}+\frac\lambda m\theta_j] θj=θjα[m1(hθ(x(i))y(i))xj(i)+mλθj]
θ j 变 形 \theta_j变形 θj
θ j = θ j ( 1 − λ m θ j ) − α 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j=\theta_j(1-\frac\lambda m\theta_j)-\alpha\frac1m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θj=θj(1mλθj)αm1(hθ(x(i))y(i))xj(i)

使用正则化公式
θ = ( X T X + λ [ 0 1 1 ⋱ 1 ] ) − 1 X T y \theta=\left(X^TX+\lambda \left[ \begin{matrix} 0 \\ & 1 \\& &1\\ &&&\ddots\\&&&&1 \end{matrix} \right] \right)^{-1}X^Ty θ=XTX+λ01111XTy

其中
X = [ x ( 1 ) T x ( 2 ) T ⋮ x ( m ) T ] , y = [ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] X=\begin{bmatrix} x(1)^T\\x(2)^T\\\vdots\\x(m)^T \end{bmatrix} ,y=\begin{bmatrix} y(1) \\y(2) \\\vdots\\y(m) \\\end{bmatrix} X=x(1)Tx(2)Tx(m)T,y=y(1)y(2)y(m)
X 为 m ∗ ( n + 1 ) 的 矩 阵 , y 为 m 维 向 量 X为m*(n+1)的矩阵,y为m维向量 Xm(n+1)ym
logistic回归:
与线性回归相同,但是 h θ ( X ) h_\theta(X) hθ(X)定义不同。

你可能感兴趣的:(机器学习)