【吴恩达机器学习】正则化 Regularization

正则化 (Regularization)

过拟合问题(The Problem of Overfitting)

【吴恩达机器学习】正则化 Regularization

  • 左边的算法没有很好地拟合训练集,这个问题称作欠拟合(underfitting),也可以说该算法具有高偏差(high bias)
  • 中间的算法拟合效果不错,是理想的模型
  • 右边的算法几乎完美地拟合了训练集,它的代价函数也可能接近于0,但是它最后给出的模型并不好。这就是过拟合(Overfitting) 问题,也称该算法具有 高方差(high variance)

解决过拟合问题的方法

  1. 减少选取特征的数量
    • 手动删去部分特征变量
    • 模型选择算法(Model Selection Algorithm)
  2. 正则化(Regularization)
    • 保留所有的特征变量,但是减少参数θj\theta_j的量级或数值大小

代价函数(Cost Function)

  • 正则化的思路就是减少参数θj\theta_j的量级或数值大小

  • 理想的情况下,我们选出一些影响较小的特征,并减小它们对应的参数,假设是θ3,θ4\theta_3,\theta_4 ,我们可以修改代价函数来达到这个效果:
    J(θ)=12mi=1m(hθ(xi)y(i))+λ3θ32+λ4θ42 J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{i})-y^{(i)})+\lambda_3\theta_3^2+\lambda_4\theta_4^2

  • 但通常我们是很难选出哪些特征重要,哪些次要,所以我们直接把代价函数改成如下形式:
    J(θ)=12mi=1m(hθ(xi)y(i))+λj=1nθj2 J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{i})-y^{(i)})+\lambda\sum_{j=1}^n\theta_j^2

  • 如果 λ\lambda 过小,就相当于没有正则化。

  • 如果 λ\lambda 过大,θ1...θn\theta_1...\theta_n有可能都会趋向于00,只剩下一个θ0\theta_0,图像就只剩下了一条直线,也就会出现欠拟合问题。

线性回归的正则化(Regularized Linear Reression)

梯度下降算法:

repeat  until  converge{θ0:=θ0α1mi=1m(hθ(x(i))y(i))x0(i)θj:=θjα1mi=1m(hθ(x(i))y(i))xj(i)+λmθj} \begin{aligned} & repeat\;until\;converge\{\\ & \qquad \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m{(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}}\\ & \qquad \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m{(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}}+\frac{\lambda}{m}\theta_j\\ & \}\\ \end{aligned}

转化一下第二个式子:
θj:=θj(1αλm)α1mi=1mhθ(x(i))y(i)xji \theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}{h_\theta(x^{(i)})-y^{(i)}x_j^{i}}
其中系数 1αλm1-\alpha\frac{\lambda}{m} 是一个比 11 小,但接近 11 的数。此时算法的意义就是每次对参数 θj\theta_j 缩小,然后再正常的进行梯度下降。

正规方程

θ=(XTX+λ[011...1])1XTy \theta=(X^TX+\lambda \left[ \begin{matrix} 0 & & & & \\ & 1 & & & \\ & & 1 & & \\ & & & ... & \\ & & & & 1 \end{matrix} \right] ) ^{-1}X^Ty

  • 公式中新增的矩阵是(n+1)×(n+1)(n+1)\times(n+1)

  • 此时一定存在逆矩阵

逻辑回归的正则化(Regularized Logistic Regression)

梯度下降算法

repeat  until  converge{θ0:=θ0α1mi=1m(hθ(x(i))y(i))x0(i)θj:=θjα1mi=1m(hθ(x(i))y(i))xj(i)+λmθj} \begin{aligned} & repeat\;until\;converge\{\\ & \qquad \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m{(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}}\\ & \qquad \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m{(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}}+\frac{\lambda}{m}\theta_j\\ & \}\\ \end{aligned}

  • 算法形式长得和线性回归的一样,只有 hθ(x)h_\theta(x) 的意义不一样
  • 通过正则化,能够有效的避免过拟合

参考链接

[1].吴恩达机器学习 第八章-正则化