zoukankan      html  css  js  c++  java
  • 超定方程组最优解(最小二乘解)推导

    一、超定方程组##

    超定方程组即为有效方程个数大于未知数个数的方程组。(这里只讨论多元一次的情况)
    超定方程组可以写成矩阵的形式:
    egin{equation}
    egin{split}
    Ax=b
    end{split}
    end{equation}
    其中(A)(m imes n)的矩阵,其与(b)组成的增广矩阵([A|b])的秩大于(n)(x)(n)维列向量未知数。

    二、超定方程组的最小二乘解##

    超定方程组是无解的,但是我们可以求得其最小二乘解,就是将等式左右两端乘上(A)的转置。
    egin{equation}
    egin{split}
    ATAx=ATb
    end{split}
    end{equation}
    该方程有增广矩阵([A^TA|A^Tb])的秩等于(n),即该方程的未知数的个数等于有效方程的个数,所以该方程有唯一解且为原方程的最小二乘解。
    平时记住结论直接用就好

    三、推导过程##

    (记录,大家不要看:其实小生也是只知道结论不知道结论是怎么来的,不过有一天看斯坦福大学的机器学习公开课的第二节,看到了推导过程。)

    1.前置结论###

    1. (trAB = trBA)
    2. (trABC = trBCA = trCAB)
    3. ( abla_AtrAB = B^T)
    4. (trA = trA^T)
    5. (tra = a)
      6)( abla_AtrABA^TC = CAB + C^TAB^T)
      tr代表矩阵的迹,大写字母为矩阵小写字母表示实数,( abla表示求导)

    2.公式推导###

    作差
    egin{equation}
    egin{split}
    Ax-b = left[ egin{array}{c}
    a_1^Tx - b_1
    vdots
    a_m^T - b_m
    end{array}
    ight ]
    end{split}
    end{equation}

    构建最小二乘
    egin{equation}
    egin{split}
    frac{1}{2}(Ax-b)^T(Ax-b) = frac{1}{2}sum_{i=1}m(a_iTx-b_i)^2
    end{split}
    end{equation}

    (x)求导
    egin{equation}
    egin{split}
    abla_x frac{1}{2}(Ax-b)^T(Ax-b) = abla_x tr(xTATAx-xTATb-bTAx+bTb)
    end{split}
    end{equation}

    利用前置结论2)4)5)
    egin{equation}
    egin{split}
    abla_x frac{1}{2}(Ax-b)^T(Ax-b) = abla_xtr[xxTATA- abla_xbTAx- abla_xbTAx]
    end{split}
    end{equation}

    其中利用前置结论6)
    注:大括号下的A为前置结论中的A,大括号上的A为矩阵A。

    egin{equation}
    abla_xxxTATA = abla_x cdot underbrace{x}_A cdot underbrace{I}_B
    end{equation}

    egin{equation}
    cdot underbrace{xT}_{AT} cdot underbrace{A^TA}_C
    end{equation}

    利用前置结论1)3)
    egin{equation}
    egin{split}
    abla_xunderbrace{b^TA}_Bunderbrace{x}_A = A^Tb
    end{split}
    end{equation}

    所以就有:
    egin{equation}
    egin{split}
    frac{1}{2}(Ax-b)^T(Ax-b) = A^TAx - A^Tb = 0
    end{split}
    end{equation}

    则有:
    egin{equation}
    A^TAx = A^Tb
    end{equation}
    egin{equation}
    x=(ATA){-1}A^Tb
    end{equation}

  • 相关阅读:
    Arrays类
    spring boot 整合ehcache
    自定义注解
    图像技术经典会议
    机器学习常见优化器
    TensorFlow学习笔记(一)
    Linux 下 jupyter安装
    学生、课程、分数关系的设计与实现 Hibernate
    Hibernate连接三种数据库的配置(SQL Server、Oracle、MySQL)
    Oracle11g服务详细介绍及哪些服务是必须开启的?
  • 原文地址:https://www.cnblogs.com/narjaja/p/9304472.html
Copyright © 2011-2022 走看看