线性最小二乘问题

    科技2022-07-11  112

    线性最小二乘问题

    线性最小二乘是一种求解线性系统参数的方法,即参数估计的方法。它的特点有:

    需要已知参数与观察量之间的线性函数关系存在多余观测

    线性最小二乘原理

    线性关系

    对于一个参数估计问题,我们往往不能直接获得想要的参数值,需要通过间接观测的方式去反向求解。 例如:

    为了确定一辆车的平均速度,我们不能直接测量得到,我们是间接的借助单位时间内的路程,以及时间来反算速度。为了获得我在世界上的GPS位置,我们总是间接的借助卫星的位置,以及卫星到我们的距离来推算我们当前的位置。

    可以看到很多很多问题不是我们可以直接测量的,再例如,我们想知道一个相机它的焦距,畸变参数,我们难以直接拿仪器测量,我们总是建立我们想要求解的参数X与我们易于观测量Y之间的函数关系: F ( X ) = Y F(X) = Y F(X)=Y 通过已知的Y和已知的函数关系f(x),反推出X的值。 当我们的已知这个函数关系是线性的时候,我们可以简化为: A X = Y AX = Y AX=Y 其中A是参数X与观测Y之间的线性函数关系(线性运算(乘和加)可以由矩阵A表示)。

    因此,为了求解我们想要的参数,我们已知观测Y和线性关系A,就可以求解待求参数X啦。

    理解多余观测

    当我们有了线性关系,在测量足够的情况下,我们就可以求解出参数X。 如:求解一个条直线的参数k和b:

    A X = Y AX = Y AX=Y

    [ y 0 y 1 ] = [ x 0 1 x 1 1 ] ∗ [ k b ] \begin{bmatrix} y_0 \\ y_1 \\ \end{bmatrix} = \begin{bmatrix}x_0 & 1 \\ x_1 & 1\\ \end{bmatrix} * \begin{bmatrix} k \\ b \\ \end{bmatrix} [y0y1]=[x0x111][kb]

    其中 X 对 应 [ k b ] X对应\begin{bmatrix} k \\ b \\ \end{bmatrix} X[kb] A 对 应 [ x 0 1 x 1 1 ] A对应\begin{bmatrix}x_0 & 1 \\ x_1 & 1\\ \end{bmatrix} A[x0x111] Y 对 应 [ y 0 y 1 ] Y对应\begin{bmatrix} y_0 \\ y_1 \\ \end{bmatrix} Y[y0y1]

    当然我们知道只需要两组x和y就可以通过矩阵求逆求出k和b了,X = A-1*Y。但这未免也太简陋了,如果我们有3组,4组甚至10组x,y,我们该怎么求解k,b呢?如果我们使用给用更多组的x,y我们求得的k和b是不是更加准确。 我们将“除了能唯一确定某个几何或物理模型的t个必要观测之外的其余观测值”称为多余观测。针对上述问题,多余两组的x,y都是多余观测。

    当存在多余观测时,我们就不能像之前那样对矩阵A求逆了,那怎么求更准确的k和b呢? 这时候我们就可以借助最小二乘来求解存在多余观测的问题。

    理解残差

    在我们利用最小二乘来求解存在多余观测的问题之前,我们先介绍残差,它能更好的帮助我们理解最小二乘的原理。

    接着上面的例子将,当我存在多组x,y时,它们并不会乖乖的向我们设想那样,总在一条直线上,它们可能是这种形式: 即近似的成一条直线,为啥出现近似而非一定呢,这个时候我们就需要介绍更一般(泛)的概念了,我们必须假设我们的到的观测是一个随机变量,例如,(你每次拿勺子喝汤,你能够保证每次摇到的汤重量一致吗,你只能把这个过程建模成一个随机过程,即每一次摇到的汤或多或少,它们呈现某种分布,例如高斯分布),对于上述问题也是一样,我们得到的x和y,可能并不一定服从某个k和b,而是大致服从某个k和b。也就是上述图形。由于随机误差的存在,我们可能永远不能得到准确的k,b。但我们可以基于已有的所有数据(包括多余观测)算出一个最优的,最能符合观测的k,b。这才是我们想要求得的

    为了求得所谓的最优,我们先介绍残差的概念。

    残差的公式可简写为: V = A X − Y V = AX - Y V=AXY 在理想情况下: 0 = A X − Y 0 = AX - Y 0=AXY 但在实际情况中,AX - Y并不等于0,我们定义另一个量V,来代表我们AX估计出的 Y ^ \hat Y Y^值与观测值Y之前的差。我们将它画在图上: 不能发现,观测量到其拟合直线之间的y值之差的绝对值,就是残差V的几何意义。

    最小二乘的“最优”准则

    在我们了解了残差V的几何意义之后,我们不难想象,如果令V最小,就可以确定一条较为准确的直线,如果令 ∣ ∣ V ∣ ∣ 2 ||V||_2 V2 V 2 V^2 V2,最小,我们也可以确定一条较为准确的直线。我们将令 V 2 V^2 V2最小作为求解准则的方法,称为最小二乘法(也很好理解,残差的二乘(平方)最小的方法–最小二乘法)。 我们这里介绍的最小二乘,可能看起来比较粗暴,有人会问为啥就不能使用|V|最小作为最优原则呢? 其实最小二乘是符合统计意义上的“最优”的,当我们假设观测量Y(随机变量)是正态分布时,为满足其成正太分布的条件,那它必须满足 V T V V^TV VTV最小。(即最小二乘估计与极大似然估计等价,详情见:https://blog.csdn.net/u013344884/article/details/79483705) 这时你可能有些模糊了,为了绕开晦涩的概念,你可以简单理解: 我们理论假设是观测值的残差是正太分布的。 为了让残差呈现正太分布,我们只需让 V T V V^TV VTV最小即可确保残差是呈现正太分布的。 因此,我们可以求使得 V T V V^TV VTV最小的参数,为符合最小二乘的最优参数。

    最小二乘求解

    方法1:求解法方程

    线性方程组 A x = b Ax=b Ax=b的最小二乘问题一定有解,且求解最小二乘问题与求解线性方程组的法方程组等价。 推导: V = A X − Y V = AX - Y V=AXY a r g m i n V T V argmin V^TV argminVTV ∂ V T V ∂ X = 0 \frac{\partial^{}V^TV}{\partial X} =0 XVTV=0

    由二次凸优化的理论可知,当 A A A正定 ( A T A A^TA ATA(可逆))时, V T V V^TV VTV与参数X组成的函数是凸函数,存在全局最小值,其最小值在 V T V V^TV VTV对X求偏导等于0处。 二次凸函数:

    对于线性最小二乘,只要 A T A A^TA ATA没有秩亏现象,(没有线性相关的情况)那线性最小二乘一定满足二次凸的性质(即其最小值在 V T V V^TV VTV对X求偏导等于0处)

    ∂ V T V ∂ X = 2 V T A = 2 ( A X − Y ) T A = 0 \frac{\partial^{}V^TV}{\partial X} =2V^TA=2(AX-Y)^TA=0 XVTV=2VTA=2(AXY)TA=0 则: A T ( A X − Y ) = 0 A^T(AX-Y)=0 AT(AXY)=0 A T A X − A T Y = 0 A^TAX-A^TY=0 ATAXATY=0 X = ( A T A ) − A T Y X = (A^TA)^-A^TY X=(ATA)ATY A T A A^TA ATA正定 1 ( A T A A^TA ATA(可逆))时,X的最小二乘估计值就是 ( A T A ) − A T Y (A^TA)^-A^TY (ATA)ATY

    这样我们就得到了最小二乘的解

    用法方程组来求解最小二乘法可能会引出好多问题,我们提倡用QR分解来求解。

    数值求法:QR分解

    参考:https://blog.csdn.net/LCCFlccf/article/details/84875534

    将求解 X = ( A T A ) − A T Y X = (A^TA)^-A^TY X=(ATA)ATY的问题转化成求解矩阵A的QR分解矩阵的问题。 最终 X = R − Q T Y X = R^-Q^TY X=RQTY

    方法2:梯度下降

    既然线性最小二乘问题是一个二次凸问题,那它一定是凸函数,这时候,梯度下降法就完全适合,通过迭代xi+1 = ▽+xi的方式,也可以求得一个非常好的解。

    方法3:线性回归

    线性回归也是通过迭代的方式一步步逼近参数最优值,它与梯度下降方式不同在于,梯度下降法的每一次迭代使用到了所有的观测,对所有观测一直迭代,直到最优,而线性回归根据现有观测,分批迭代,甚至是一个观测一个观测的迭代。


    只要A的列向量线性无关,则 A T A A^TA ATA正定则 A T A A^TA ATA可逆,见https://zhuanlan.zhihu.com/p/84223081 ↩︎

    Processed: 0.032, SQL: 8