最小二乘法解的矩阵形式推导
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说他老师能默写出这个过程…),等以后有时间了,我会再补充上去的。
维基百科给出了一个定义,戳这里
在我看来,最小二乘法是一种数据拟合方法。
我们从矩阵的角度来理解:
首先我们给出一个矩阵中的定义:
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说他老师能默写出这个过程…),等以后有时间了,我会再补充上去的。
相关文章推荐
- 项目管理任务分配工具——jira
- mysql 时间格式化
- iOS 开源库和第三方组件
- scrapy测试xpath
- 关键字:register static extern const typedef volatile
- 第4章 树
- JAVA 下中文乱码的测试与转换
- 用AUTIMDESIGNER 画PCB的时候,要注意的几个事项
- Oracle merge into 记录
- 《人月神话》读书总结
- R语言做聚类分析Kmeans时确定类的个数
- 你真的理解AIDL中的in,out,inout么?
- 你真的理解AIDL中的in,out,inout么?
- 你真的理解AIDL中的in,out,inout么?
- JAVA 下中文乱码的测试与转换
- 你真的理解AIDL中的in,out,inout么?
- iOS 调起地图App进行导航(百度,高德,系统自带高德)URL API方式
- 你真的理解AIDL中的in,out,inout么?
- 你真的理解AIDL中的in,out,inout么?
- 你真的理解AIDL中的in,out,inout么?