KAN保姆级解析(1)--Bspline曲线、Bspline插值、Bspline拟合概念辨析

引言

&esmp;这一系列文章主要是为了解决KAN论文中对于Bspline介绍语焉不详的问题,为没有图形学、动态路径规划等领域基础知识的人提供一些BSpline的相关只知识。网络上现有的关于Bspline的介绍往往是从图形学角度出发,会略过许多的简单概念辨析,默认读者有相关图形学的基础,且以曲线生成为导向。而本文则尽量从新手的角度出发,解释KAN源码中所用到的Bspline,因此尽量简单明确,一切条件使用最基础、最理想的情况。

BSpline曲线生成原理

 首先我们需要区分BSpline曲线、BSpline插值、BSpline拟合三者之间的差异:

BSpline曲线1

  给定一系列的控制点 p 0 , . . . , p n p_0,...,p_n p0,...,pn(control points)以及节点向量 U = { u 0 , . . , u m + 1 } U=\{u_0,..,u_{m+1}\} U={u0,..,um+1}(knot vector),我们需要生成一条曲线,满足关系:
C ( u ) = ∑ i = 0 n p i N i , k ( u ) C(u)=\sum_{i=0}^{n} p_iN_{i,k}(u) C(u)=i=0npiNi,k(u)
拟合出的曲线在节点处的取值 C ( u j ) C(u_j) C(uj)称作为节点点(knot point)。生成的曲线就是
有两点需要着重注意:

  1. 拟合出的曲线并不一定、或者说大部分情况下不通过控制点,即 C ( u j ) ≠ u j C(u_j)\neq u_j C(uj)=uj,因为Bspline曲线构造的目的本来就只是生成由控制点决定的曲线,而非穿过他们;
  2. 这里控制点并只局限于标量,而是向量点 P 0 , . . . , P n + 1 \bold{P_0},...,\bold{P_{n+1}} P0,...,Pn+1,并且是认为给定的。

BSpline插值2

  BSpline插值的含义是给定一系列数据点 D 0 , . . . , D n D_0,...,D_n D0,...,Dn,给定预期的次数 k k k,我们要找到一条BSpline曲线穿过这些点。这里有以下几点需要注意:

  1. 这里给出的是数据点而非控制点,由前一定义可知,我们定义BSpline曲线要给出控制点,并且BSpline曲线只穿过节点点而非控制点。因此我们需要依据节点点(这里就是数据点)来反推控制点。
  2. 这里我们需要自行来给出节点向量。

BSpline拟合3

  Bspline拟合的定义和Bspline插值类似,同样给出一系列数据点 D 0 , . . . , D n D_0,...,D_n D0,...,Dn,希望找到一条 B-spline 曲线,使其沿着数据多边形的形状进行,但实际上不包含数据点。为了做到这一点,我们需要两个额外的输入:控制点的数量(即 h + 1 h+1 h+1)和次数 k k k,其中必须满足 n > h > = k > = 1 n > h >= k >= 1 n>h>=k>=1。因此,逼近比插值更加灵活,因为我们不仅选择了一个次数,还选择了控制点的数量。

 总结来看,Bspline插值和Bspline拟合都是基于Bspline曲线来进行的,三者并不是各自的同位体,而是不同的场景下使用的三种不同方法。而在KAN中我们则使用到了Bspline插值和Bspline拟合。后续文章会对这一部分进行详细解释。

参考


  1. B-spline Curves: Definition ↩︎

  2. Curve Global Interpolation ↩︎

  3. Curve Global Approximation ↩︎

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值