Normal Equation

Normal equation: Method to solve for ( heta) analytically.

  相对于Gradient descent,这种方法不需要通过多次的迭代即可直接求得 ( heta),使得Loss Function的值最小。

  下面是(n+1)维参数向量使用Normal equation计算 ( heta in R^{n+1}) 的公式:

[J( heta_0, heta_1,cdots, heta_m)=frac{1}{2m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})^2 ]

[frac{sigma}{sigma heta_j}J( heta)=0~~~~( ext{for every }j) ]

  Solve for ( heta_0, heta_1,cdots, heta_m)
 

Example:


  将表格中的 (x)(y) 分别写成矩阵的形式:

[X= egin{bmatrix} 1 & 2104 & 5 & 1 & 45 \ 1 & 1416 & 3 & 2 & 40\ 1 & 1534 & 3 & 2 & 30\ 1 & 852 & 2 & 1 & 36\ end{bmatrix} ]

[y= egin{bmatrix} 460 \ 232 \ 315 \ 178 \ end{bmatrix} ]

[ heta=(X^TX)^{-1}X^Ty ]

  此时求得的 ( heta) 可以最大限度地减小损失函数的值。
  使用这种方法的时候不需要进行Feature Scaling。
 

Gradient Descent Normal Equation
Need to choose (alpha) No need to choose (alpha)
Needs many iterations Don't need to iterate
(O(kn^2)) (O(n^3)),Need to calculate ((X^TX)^{-1})
Works well even when (n) is large Slow if (n) is very large

  计算矩阵的逆的时间复杂度为 (O(n^3)),所以一般当 (n>10^5) 时,会开始使用Gradient Descent,而不是Normal Equation。但是当 (n) 的值不是太大的时候,Normal Equation提供了一个计算 ( heta) 的好方法。

导致 (X^TX)矩阵不可逆的几种可能原因:

  • 有冗余的特征(线性相关)
    E.g. (x_1=size~in~feet^2)
        (x_2=size~in~m^2)
  • 过多特征(训练样本数(mleq)特征数(n)
    --删除一些特征或使用正则化
这是一个啥也不会的小白 (..•˘_˘•..)
原文地址:https://www.cnblogs.com/anthonyhoo/p/14182305.html