您的位置:首页 > 其它

最小二乘法解的矩阵形式推导

2016-07-25 14:23 260 查看
首先,什么是最小二乘? 

维基百科给出了一个定义,戳这里

在我看来,最小二乘法是一种数据拟合方法。

我们从矩阵的角度来理解: 

首先我们给出一个矩阵中的定义: 

R(A)={Ax|x∈Rn},A∈Rn×n

有了上面的定义之后,我们就可以写出最小二乘问题的矩阵形式: 

∃b∉R(A),b∈Rn,minx∈Rn∥Ax−b∥2

用bi格高一点的说法来说,就是求在欧几里得空间中以2-范数作为距离,使得向量Ax与b之间距离最小的x。 
我们的目标是求: 

minx∈Rn∥Ax−b∥2

当然我们知道,使得距离最小的向量x与使得距离平方最小的向量x是相同的,于是我们可以将所求的目标改写为: 

minx∈Rn∥Ax−b∥22

结合一些矩阵、行列式的知识,我们知道: 

∥Ax−b∥22=(Ax−b)T∗(Ax−b)

根据我们大一学过的高数知识,我们知道,求最极值问题直接对应的就是导数为零,因此我们试图将所给出的原式的矩阵形式求导:

不过首先我们需要补充矩阵微积分(matrix calculus)的一些知识 

(PS:是矩阵微积分吧…我没有翻译错吧….) 

∂xTa∂x=∂aTx∂x=a

∂xTAx∂x=Ax+ATx

如果矩阵A是对称的(symmetric matrix): 

Ax+ATx=2Ax

接下来,我们对原式化简并求其对x的导数: 

∥Ax−b∥22=xTATAx−bTAx−xTATb+bTb

求导得到: 

∂∥Ax−b∥22∂x=2ATAx−2ATb=0

于是我们就得到了,最小二乘法解的矩阵形式: 

x=(ATA)−1ATb

当然了,这里是最简答的线性最小二乘法,还有更为复杂的非线性以及矩阵A不满秩的情况(hdq说他老师能默写出这个过程…),等以后有时间了,我会再补充上去的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: