最小二乘法LS (Least Square)

已知未知系数的方程$ f(x)=p(x)^{T}*\alpha $,以及一系列数据点$(x_{i},y_{i})$,其中$p(x)$是基函数,$\alpha$是系数向量,求解该方程的系数向量,使得损失函数$J=\sum_{i=0}^{n} (f(x_{i})-y_{i})^2$值最小。联立所有方程,一般是一个超定方程组(等式个数大于未知数),一般可以表示为$Ax=b$形式,这里的$x$是指待求系数。
以方程$f(x)=a+bx+cx^{2}$为例,可以表示成如下形式:

$$ \begin{bmatrix} 1 & x_{1} & x_{1}^{2}\\ 1 & x_{2} & x_{2}^{2}\\ ... & ... & ...\\ 1 & x_{n} & x_{n}^{2} \end{bmatrix} * \begin{bmatrix} a\\ b\\ c \end{bmatrix} = \begin{bmatrix} y_{1}\\ y_{2}\\ ...\\ y_{n} \end{bmatrix} $$

  • 求解上述问题,可以有两种思路,一种是从投影的角度,另一种是对损失函数求偏导数令其等于0。结果都是$x=(A^{T}A)^{-1}A^{T}b$,用法线方程法公式计算有个前提就是式中有个逆矩阵,必须保证可逆,否则得用别的方法求解。
  • 上述方法解出来的解误差分布不一定理想,可以通过计算$Cond(A^TA)$条件数判断方程是否是病态的,必要时可以考虑QR分解等解法。
  • 如果方程自变量个数不止一个,或者方程形式较复杂,一般都是通过化简和变量组合向上面的线性形式凑齐然后求解。
  • 至于为什么损失函数是平方和,需要从概率论角度解释,大概意思是残差满足正态分布的最大似然估计就是最小二乘形式。

移动最小二乘法MLS (Moving Least Square)

MLS的拟合方程:$f(x)=p(x)^{T}*\alpha(x)$,其中$p(x)$是基函数列向量,$\alpha(x)$不再是常数,而是基于$x$的函数。常见的基函数有线性基:$[1,x]^T$,二次基:$[1,x,x^2]^T$,三次基:$[1,x,x^2,x^3]^T$,而$\alpha(x)$是我们欲求的未知函数。
另外MLS引入了紧支概念:即某点处的函数值只受附近点的影响,或者说每个数据点只对自己影响区域内的拟合结果有影响,由此引入权函数$w(x)$,此时损失函数为$J=\sum_{i=0}^{n} w(x-x_i)(f(x_{i})-y_{i})^2=\sum_{i=0}^{n} w(x-x_i)(p(x)^{T}*\alpha(x)-y_{i})^2$。
比如三次样条函数权函数如下:

$$ \begin{array}{c} s=\frac{|x-x_i|}{r}\\ w(s)=\left\{\begin{matrix} \frac{2}{3}-4s^2+4s^3, &s\le 0.5 \\ \frac{4}{3}-4s+4s^2-\frac{4s^2}{3}, &0.5<s\le1\\ 0,& s>1 \end{matrix}\right. \end{array} $$

其中$r$表示影响范围半径。
对损失函数求偏导等于0可得$\alpha(x)$:

$$ \begin{align} \frac{\partial J}{\partial \alpha(x)} &= A(x)\alpha(x)-B(x)y = 0 \\ \alpha(x) &= A^{-1}(x)B(x)y \\ & 其中: \\ w_i(x) &= w(\frac{|x-x_i|}{r})\\ P &= \begin{bmatrix} p_1(x_1)& p_2(x_1)& ...& p_m(x_1)\\ p_1(x_2)& p_2(x_2)& ...& p_m(x_2)\\ ...& ...& ...& ...\\ p_1(x_n)& p_2(x_n)& ...& p_m(x_n) \end{bmatrix}\\ w(x) &= \begin{bmatrix} w_1(x) & 0& ...& 0\\ 0& w_2(x)& ...& 0\\ ...& ...& ...& ...\\ 0& 0& ...& w_n(x) \end{bmatrix}\\ A(x) &= P^TW(x)P \\ B(x) &= P^TW(x) \\ \end{align} $$

  • 权函数$w(s)$应该是非负的,并伴随着$||x-x_i||_2$增大而减小。
  • 实际应用过程中,取不同基函数可以获得不同的拟合精度,取不同的权函数可以获得不同的平滑度。
  • 一般基函数次数越高,曲线越平滑;影响半径越大,曲线越平滑。
  • 影响半径不能太小,太小的话局部点数不够会造成奇异矩阵不可解。

参考

最小二乘:
https://zhuanlan.zhihu.com/p/38128785
https://www.zhihu.com/question/37031188/answer/2041682439
https://ww2.mathworks.cn/help/matlab/ref/lsqr.html
移动最小二乘:
https://wenku.baidu.com/view/fe7a74976f1aff00bed51eb1.html
https://www.doc88.com/p-8778611828185.html
https://www.freesion.com/article/7962225749/
https://www.freesion.com/article/991733680/
https://www.doc88.com/p-8778611828185.html
https://d.wanfangdata.com.cn/periodical/szjsyyy201510082

最后修改:2021 年 10 月 25 日
你的赞赏是我前进的动力