• 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)
      --删除一些特征或使用正则化
    这是一个啥也不会的小白 (..•˘_˘•..)
  • 相关阅读:
    【go语言学习】标准库之time
    【go语言学习】文件操作file
    【go语言学习】反射reflect
    【go语言学习】通道channel
    soap添加
    ubuntu apache 启用gzip
    git 版本回退
    ubuntu打开crontab日志及不执行常见原因
    Ionic3 怎么打开第三方 app,最简单粗暴的方法
    Windows安装使用Openssl创建pks p12证书
  • 原文地址:https://www.cnblogs.com/anthonyhoo/p/14182305.html
Copyright © 2020-2023  润新知