最小二乘法为什么可以用矩阵表示

1.最小二乘法

通过最小化误差的平方,寻找数据的最佳函数匹配。
通俗来说,我们有一些组数据,但是我们不知道这些数据之间的对应关系是什么(一个公式),我们可以利用最小二乘方法,求出偏差最小时,我们的公式表达方式,即公式的未知参数。

这里可能有人会有疑问,什么是观测矩阵?
从字面理解为看到的矩阵,实际上是我们在测量时,得到的真实数据。例如我们需要标定一个系统的一些参数,我们只需要为系统输入一些变量,然后观察得到的结果,最后利用最小二乘求出能表达系统的矩阵。

当然,有人还会联想到,我们的线性公式很多是y=Bx+b,b去哪了?有了b,还能这样求解么?
这也是为什么最小二乘时,建议左右均减去一个平均数,这样b就可以消掉了。
当然消掉b只是一方面,它是可以直接消掉一些单独的不变未知参数的,这个可以在实际应用中发现这种方法的妙用。

到了这里,大家也会去想,我如何找到我需求的B呢?
穷举法,算出最小残差平方和时的B………………这个最初是这样做的,但是有点太浪费计算资源了,速度比较慢。
还有其他方法:(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等)

2.矩阵表示求解问题

我们的方程以及观测值都可以用矩阵来表示,用矩阵表示后,一些优化方法自然也可以放到矩阵下表示。
我们在用矩阵求最小二乘时,可能会有一个非常大的疑问。

一个矩阵的逆,乘上一个什么,然后就直接解决了穷举和最小二乘两个步骤的工作。。。。
大家会很奇怪,我就把矩阵变化一下,就有这么神奇????!!!!!

不然,不然,其实你把大部分计算都压缩到了求逆的过程中了,而求逆你只是写了个求逆符号,具体怎么求,你却不会去管,也感觉自己不懂如何求的,只是知道很方便。

所以,用矩阵求最小二乘,并不是很神奇,只用矩阵变换就解决问题,而是在逆中解决了大量的问题,如何求逆,才是矩阵求最小二乘的精华,而这个精华,多数程序都提供了完备的解决方案,不需要用户考虑。就像,你没用矩阵之前,用最小二乘的时候还需要计算最小二乘和选择最优的优化方案,当你用到矩阵的逆后在,这些操作都被计算机自己实现了。

这里,还有另一个知识点。
我们大部分求逆时,只是为了解方程,而并不是为了得到逆的显式表示。
因此,我们只需要在matlab中使用反斜杠运算符 \ ——高斯消去法

反斜杠计算方法速度更快,而且残差减少了几个数量级,快2-3倍。
如果A是方阵,A\B近似等于inv(A)*B,他们的不同之处在于算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值