三次样条回归

样条函数

给定n个参考点,拟合出一条分段平滑的三次样条曲线,每个参考点之间通过一个三次样条函数表示,其中第i个样条函数以及其各阶导数的表达式如下,这样的参考点间样条函数共有n-1个。
\begin{aligned} f_i(x) &= a_i(x-x_i)^3 + b_i(x-x_i)^2 + c_i(x-x_i) + y_i + d_i \\ f^{'}_i(x) &= 3a_i(x-x_i)^2 + 2b_i(x-x_i) + c_i \\ f^{''}_i(x) &= 6a_i(x-x_i) + 2b_i \end{aligned}


样条函数的约束

与样条插值不同的是,样条拟合不要求所有的拟合出的样条曲线一定通过参考点,假定第i个参考点坐标可以表示为:\begin{bmatrix}x_i & y_i\end{bmatrix}^{T},因此y_i=f_i(x_i)未必成立。由于连续性和平滑性的要求,相邻两个样条函数之间存在如下约束:
\forall i \in \{2 \ldots n-1\}:
\begin{aligned} f_{i}(x_{i}) - f_{i-1}(x_{i}) &= 0 \\ f^{'}_{i}(x_{i}) - f^{'}_{i-1}(x_{i}) &= 0 \\ f^{''}_{i}(x_{i}) - f^{''}_{i-1}(x_{i}) &= 0 \end{aligned}

于此同时,满足如下边界条件:
\begin{aligned} f^{''}_{1}(x_{1}) &= 0 \\ f^{''}_{n-1}(x_{n}) &= 0 \end{aligned}

代价函数

样条拟合的主要目标是在满足上述约束的前体现,找到一个连续平滑且尽可能接近参考点的样条集合,下面构造误差向量:
\begin{aligned} F_{i} &= \begin{bmatrix}f_i & f_i^{'} & f_i^{''}\end{bmatrix}^{T} \\ Y_{i} &= \begin{bmatrix}y_i & 0 & 0\end{bmatrix}^{T} \\ E_i^i &= F_i(x_i) - Y_i \\ E_i^{i+1} &= F_i(x_{i+1}) - Y_{i+1} \\ \end{aligned}
其中E_i^i表示第i样条在i参考点出的误差向量,其中E_i^{i+1}表示第i样条在i+1参考点出的误差向量,通过误差向量,可以看到,样条拟合的优化目标是使得f_i(x)靠近y,同时,一阶导和二阶导的误差项是用来使两者尽可能较小,从而达到减小曲线变化的剧烈程度(曲率)的目的,使得回归过程对于采样点的噪声更加鲁棒。

接着考虑约束:
\begin{aligned} G_i &= F_{i-1}(x_i)-F_i(x_i) \qquad \forall i \in \{2 \ldots n-1\}\\ G_1 &= \begin{bmatrix} g_1 \end{bmatrix} = \begin{bmatrix} f_1^{''}(x_1) \end{bmatrix} \\ G_n &= \begin{bmatrix} g_n \end{bmatrix}= \begin{bmatrix} f_{n-1}^{''}(x_n) \end{bmatrix} \\ \phi_{i} &= \begin{bmatrix}\phi_i^1 & \phi_i^2 & \phi_i^3\end{bmatrix}^{T} \\ \phi_1 &= [ \phi_1^1 ] \\ \phi_n &= [ \phi_n^1 ] \\ \end{aligned}
其中G_i表示样条间约束关系(连续、平滑);G_1G_n分别表示边缘约束;\phi表示拉格朗日乘子(Lagrange multiplier)。

综上,约束优化问题可以表示为:
\begin{aligned} O(X) = &\sum_{i=1}^{n-1}({E_i^i}^TWE_i^i + {E_i^{i+1}}^TWE_i^{i+1}) +\sum_{i=1}^{n}\phi_{i}^TG_i \end{aligned}
其中X定义为:
\begin{aligned} \beta_i &= \begin{bmatrix}a_i & b_i & c_i & d_i\end{bmatrix}^{T} \\ X &= \begin{bmatrix}\phi_1^T & \beta_1^T & \phi_2^T & \beta_2^T &\ldots & \phi_{n-1}^T & \beta_{n-1}^T & \phi_n^T\end{bmatrix}^{T} \end{aligned}
OX求导和二阶导:
\begin{aligned} \frac{\partial O}{\partial X} = \begin{bmatrix} \frac{\partial O}{\partial X_1} & \ldots & \frac{\partial O}{\partial X_m} \end{bmatrix}^{T} \end{aligned}
\begin{aligned} H = \frac{\partial^2 O}{\partial X^2} = \frac{\partial}{\partial X}(\frac{\partial O}{\partial X})=\begin{bmatrix} \frac{\partial^2 O}{\partial X_1^2} & \frac{\partial^2 O}{\partial X_1\partial X_2} & \ldots & \frac{\partial O}{\partial X_1\partial X_m} \\ \frac{\partial^2 O}{\partial X_2\partial X_1} & \frac{\partial^2 O}{\partial X_2^2} & \ldots & \frac{\partial O}{\partial X_2\partial X_m} \\ \vdots & \vdots & \ddots &\vdots \\ \frac{\partial^2 O}{\partial X_m\partial X_1} & \frac{\partial^2 O}{\partial X_m\partial X_2} & \ldots & \frac{\partial^2 O}{\partial X_m^2} \end{bmatrix} \end{aligned}

求解

现在显然是一个二次优化问题,求解过程如下:
\begin{aligned} B &= -\left.\frac{\partial O}{\partial X}\right| _{X=0} \\ B &= \begin{bmatrix} B_1^{\phi} & B_1^{\beta} & B_2^{\phi} & B_2^{\beta} & \ldots & B_{n-1}^{\phi} & B_{n-1}^{\beta} & B_n^{\phi} \end{bmatrix}^T \\ B_i^{\phi} &= -\left.\frac{\partial O}{\partial \phi_i}\right| _{\phi_i=0} = \begin{bmatrix} y_i-y_{i-1} && 0 && 0 \end{bmatrix}^T\\ B_i^{\beta} &= -\left.\frac{\partial O}{\partial \beta_i}\right| _{\beta_i=0} = \begin{bmatrix} 2w_1(y_{i+1}-y_i)(x_{i+1}-x_i)^3 + 6w_2y_{i+1}^{'}(x_{i+1}-x_i)^2 + 12w_3y_{i+1}^{''}(x_{i+1}-x_i) \\ 2w_1(y_{i+1}-y_i)(x_{i+1}-x_i)^2 + 4w_2y_{i+1}^{'}(x_{i+1}-x_i) + 4w_3(y_i^{''} + y_{i+1}^{''}) \\ 2w_1(y_{i+1} - y_i)(x_{i+1}-x_i) + 2w_2(y_i^{'} + y_{i+1}^{'}) \\ 2w_1(y_{i+1} - y_i) \end{bmatrix} \end{aligned}

\begin{aligned} HX = B \\ X = H^{-1}B \end{aligned}
其中H矩阵的形式如下:

\begin{aligned} H = \begin{bmatrix} 0 & T_1^T \\ T_1 & A_1 & R_1 \\ & R_1^T & 0 & T_2^T \\ & & T_2 & A_2 & R_2 \\ & & & R_2^T & 0 & T_3^T \\ & & & & \vdots & \vdots & \vdots \\ & & & & & R_{n-2}^T & 0 & T_{n-1}^T \\ & & & & & & T_{n-1} & A_{n-1} & R_{n-1} \\ & & & & & & & R_{n-1}^T & 0 \end{bmatrix} \\ \end{aligned}

\begin{aligned} A_i^{11} &= 2w_1(x_{i+1}-x_i)^6+18w_2(x_{i+1}-x_i)^4+72w_3(x_{i+1}-x_i)^2 \\ A_i^{12} &= 2w_1(x_{i+1}-x_i)^5+12w_2(x_{i+1}-x_i)^3+24w_3(x_{i+1}-x_i) \\ A_i^{13} &= 2w_1(x_{i+1}-x_i)^4+6w_2(x_{i+1}-x_i)^2 \\ A_i^{14} &= 2w_1(x_{i+1}-x_i)^3 \\ \\ A_i^{21} &= 2w_1(x_{i+1}-x_i)^5+12w_2(x_{i+1}-x_i)^3+24w_3(x_{i+1}-x_i) \\ A_i^{22} &= 2w_1(x_{i+1}-x_i)^4+8w_2(x_{i+1}-x_i)^2+16w_3 \\ A_i^{23} &= 2w_1(x_{i+1}-x_i)^3+4w_2(x_{i+1}-x_i) \\ A_i^{24} &= 2w_1(x_{i+1}-x_i)^2 \\ \\ A_i^{31} &= 2w_1(x_{i+1}-x_i)^4+6w_2(x_{i+1}-x_i)^2 \\ A_i^{32} &= 2w_1(x_{i+1}-x_i)^3+4w_2(x_{i+1}-x_i) \\ A_i^{33} &= 2w_1(x_{i+1}-x_i)^2+4w_2 \\ A_i^{34} &= 2w_1(x_{i+1}-x_i) \\ \\ A_i^{41} &= 2w_1(x_{i+1}-x_i)^3 \\ A_i^{42} &= 2w_1(x_{i+1}-x_i)^2 \\ A_i^{43} &= 2w_1(x_{i+1}-x_i) \\ A_i^{44} &= 4w_1 \\ \\ T_i &= \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -2 \\ 0 & -1 & 0 \\ -1 & 0 & 0 \end{bmatrix} \\ R_i &= \begin{bmatrix} (x_{i+1}-x_i)^3 & 3(x_{i+1}-x_i)^2 & 6(x_{i+1}-x_i) \\ (x_{i+1}-x_i)^2 & 2(x_{i+1}-x_i) & 2 \\ (x_{i+1}-x_i) & 1 & 0 \\ 1 & 0 & 0 \end{bmatrix} \\ T_1 &= \begin{bmatrix} 0 & 2 &0 & 0 \end{bmatrix}^T \\ R_{n-1} &= \begin{bmatrix} 6(x_n-x_{n-1}) & 2 &0 & 0 \end{bmatrix}^T \end{aligned}
比较稀疏,可以用稀疏矩阵求逆的方式求解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352