移动最小二乘法(Moving Least Squares, MLS)的推导

移动最小二乘法(Moving Least Squares, MLS)的推导

移动最小二乘法(MLS)是一种用于平滑、重建和拟合离散点云数据的算法。其核心思想是使用加权的局部最小二乘拟合,将全局最小二乘拟合推广到局部区域,并通过移动窗口动态调整拟合位置。以下是详细的推导过程。


目标问题

给定一组离散点云 { ( x i , y i ) } i = 1 N \{(x_i, y_i)\}_{i=1}^N {(xi,yi)}i=1N,希望在点云附近通过多项式拟合一个平滑函数 f ( x ) f(x) f(x),使得拟合尽可能接近数据点,同时具有一定的平滑性。

拟合函数形式假设为:
f ( x ) = ∑ j = 0 m a j ϕ j ( x ) f(x) = \sum_{j=0}^m a_j \phi_j(x) f(x)=j=0majϕj(x)
其中:

  • ϕ j ( x ) \phi_j(x) ϕj(x) 是基函数,例如 { 1 , x , x 2 , … , x m } \{1, x, x^2, \dots, x^m\} { 1,x,x2,,xm}
  • a j a_j aj 是需要求解的系数。

加权局部拟合

  1. 局部权重定义
    为了强调拟合的局部性,定义一个加权函数 w ( x − x i ) w(x - x_i) w(xxi),用来衡量点 x i x_i xi 对拟合中心 x x x 的贡献。通常选择的权重函数具有以下性质:
  • w ( x − x i ) ≥ 0 w(x - x_i) \geq 0 w(xxi)0

  • w ( x − x i ) w(x - x_i) w(xxi) ∣ x − x i ∣ |x - x_i| xxi 增大而减小。

  • 常用的权重函数包括高斯函数:
    w ( x − x i ) = exp ⁡ ( − ( x − x i ) 2 h 2 ) w(x - x_i) = \exp\left(-\frac{(x - x_i)^2}{h^2}\right) w(xxi)=exp(h2(xxi)2)
    其中 h h h 是带宽参数,控制影响范围。

  1. 局部最小二乘目标函数
    对每个拟合中心 x x x,拟合的目标是最小化加权误差平方和:

E ( a 0 , a 1 , … , a m ) = ∑ i = 1 N w ( x − x i ) ( y i − ∑ j = 0 m a j ϕ j ( x i ) ) 2 E(a_0, a_1, \dots, a_m) = \sum_{i=1}^N w(x - x_i) \left( y_i - \sum_{j=0}^m a_j \phi_j(x_i) \right)^2 E(a0,a1,,am)=i=1Nw(xxi)(yij=0majϕj(xi))2


求解过程

1. 展开目标函数

将拟合函数代入目标函数,得到:
E ( a 0 , a 1 , … , a m ) = ∑ i = 1 N w ( x − x i ) ( y i − a ⊤ ϕ ( x i ) ) 2 E(a_0, a_1, \dots, a_m) = \sum_{i=1}^N w(x - x_i) \left( y_i - \mathbf{a}^\top \boldsymbol{\phi}(x_i) \right)^2 E(a0,a1,,am)=i=1Nw(xxi)(yiaϕ(xi))2
其中:

  • a = [ a 0 , a 1 , … , a m ] ⊤ \mathbf{a} = [a_0, a_1, \dots, a_m]^\top a=[a0,a1,,am] 是系数向量。
  • ϕ ( x i ) = [ ϕ 0 ( x i ) , ϕ 1 ( x i ) , … , ϕ m ( x i ) ] ⊤ \boldsymbol{\phi}(x_i) = [\phi_0(x_i), \phi_1(x_i), \dots, \phi_m(x_i)]^\top ϕ(xi)=[ϕ0(xi),ϕ1(xi),,ϕm(xi)] 是基函数向量。
2. 矩阵形式

将加权误差平方和用矩阵表示:
E ( a ) = ( y − Φ a ) ⊤ W ( y − Φ a ) E(\mathbf{a}) = \left( \mathbf{y} - \mathbf{\Phi} \mathbf{a} \right)^\top \mathbf{W} \left( \mathbf{y} - \mathbf{\Phi} \mathbf{a} \right) E(a)=(yΦa)W(yΦa)
其中:

  • y = [ y 1 , y 2 , … , y N ] ⊤ \mathbf{y} = [y_1, y_2, \dots, y_N]^\top y=[y1,y2,,yN] 是数据点的输出值向量。

  • Φ \mathbf{\Phi} Φ 是设计矩阵:
    Φ = [ ϕ 0 ( x 1 ) ϕ 1 ( x 1 ) ⋯ ϕ m ( x 1 ) ϕ 0 ( x 2 ) ϕ 1 ( x 2 ) ⋯ ϕ m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值