Smoothing spline的数学推导
参考 斯坦福统计学习原理
光滑样条的精髓在于在原本的拟合误差的基础上加了一个 λ ∫ { f ′ ′ ( t ) } 2 d t \lambda\int\left\{f^{''}(t)\right\}^{2}dt λ∫{f′′(t)}2dt,这样就有人问,为什么这个能达到光滑的作用,如果能达到光滑的作用,那么他的光滑效果怎么衡量。以及如何选择参数 λ \lambda λ的问题
一般的不加入光滑因子的拟合误差如下式:
R
S
S
(
f
,
λ
)
=
∑
i
=
1
N
{
y
i
−
f
(
x
i
)
}
2
RSS(f,\lambda)=\sum_{i=1}^{N}\left\{y_{i}-f(x_{i})\right\}^{2}
RSS(f,λ)=i=1∑N{yi−f(xi)}2 引入
λ
光
滑
因
子
式
均
方
误
差
\lambda光滑因子式均方误差
λ光滑因子式均方误差
R
S
S
(
f
,
λ
)
=
∑
i
=
1
N
{
y
i
−
f
(
x
i
)
}
2
+
λ
∫
{
f
′
′
(
t
)
}
2
d
t
RSS(f,\lambda)=\sum_{i=1}^{N}\left\{y_{i}-f(x_{i})\right\}^{2}+\lambda\int\left\{f^{''}(t)\right\}^{2}dt
RSS(f,λ)=i=1∑N{yi−f(xi)}2+λ∫{f′′(t)}2dt其中,
f
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
j
f(x)=\sum_{j=1}^{N}N_{j}(x)\theta_{j}
f(x)=∑j=1NNj(x)θj,对上式用矩阵的形式表示可得如下形式:
R
S
S
(
θ
,
λ
)
=
(
y
−
N
θ
)
T
(
y
−
N
θ
)
+
λ
θ
T
Ω
N
θ
RSS(\theta,\lambda) = (y-N\theta)^{T}(y-N\theta)+\lambda\theta^{T}\Omega_{N}\theta
RSS(θ,λ)=(y−Nθ)T(y−Nθ)+λθTΩNθ其中,
{
N
}
i
j
=
N
j
(
x
i
)
\left\{N\right\}_{ij}=N_{j}(x_i)
{N}ij=Nj(xi) ,
{
Ω
N
}
i
j
=
∫
N
j
′
′
N
k
′
′
d
t
\left\{\Omega_{N}\right\}_{ij}=\int N_{j}^{''}N_{k}^{''}dt
{ΩN}ij=∫Nj′′Nk′′dt,我相信有一部分同学觉得公式来的太突然。当我们将前面
f
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
j
f(x)=\sum_{j=1}^{N}N_{j}(x)\theta_{j}
f(x)=∑j=1NNj(x)θj代入
R
S
S
RSS
RSS的计算公式中,将
{
f
′
′
(
t
)
}
2
\left\{f^{''}(t)\right\}^{2}
{f′′(t)}2分解成
f
′
′
(
t
)
∗
f
′
′
(
t
)
f^{''}(t)*f^{''}(t)
f′′(t)∗f′′(t)根据矩阵的一些乘积变换即可得到
R
S
S
(
θ
,
λ
)
RSS(\theta,\lambda)
RSS(θ,λ)
然后对
θ
\theta
θ求导等于0,也就是最小二乘法的思想
θ
^
=
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
y
\hat{\theta}=(N^{T}N+\lambda\Omega_{N})^{-1}N^{T}y
θ^=(NTN+λΩN)−1NTy将我们得到的
θ
^
\hat\theta
θ^带入原来的拟合函数可得
f
^
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
j
^
\hat{f}(x)=\sum_{j=1}^{N}N_{j}(x)\hat{\theta_{j}}
f^(x)=j=1∑NNj(x)θj^
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
分
割
线
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
-----------------分割线----------------
−−−−−−−−−−−−−−−−−分割线−−−−−−−−−−−−−−−−
在我们进行接下来的分析前我们先回顾一下未引入光滑参数的情况,并一次来探讨自由度和光滑矩阵的问题:
设B是一个N*M的矩阵,N代表有N观测点
此时
f
^
=
B
(
B
T
B
)
−
1
B
T
y
=
H
y
\hat f = B(B^{T}B)^{-1}B^{T}y=Hy
f^=B(BTB)−1BTy=Hy
矩阵H具有对称,半正定的性质,类似的矩阵
S
λ
S_{\lambda}
Sλ也具有对称半正定的性质。
矩阵H还是幂等矩阵,所以
H
∗
H
=
H
H*H=H
H∗H=H这点不难证明,只需要乘一次就能得到,幂等矩阵具有特征值非1即0的性质,而
S
λ
∗
S
λ
<
=
S
λ
S_{\lambda}*S{_{\lambda}}<=S_{\lambda}
Sλ∗Sλ<=Sλ,在这里也能看到矩阵
S
λ
S_{\lambda}
Sλ有着压缩的作用。
矩阵H秩为M,矩阵S的秩为N,在投影空间中M=trace(H),这也是基础函数的个数,类似的我们定义光滑样条的有效自由度为:
d
f
λ
=
t
r
a
c
e
(
S
λ
)
df_{\lambda}=trace(S_{\lambda})
dfλ=trace(Sλ)
有很多讨论支持有效自由度的定义,下面进行讨论:
将
S
λ
S_{\lambda}
Sλ写成
R
e
i
n
s
h
Reinsh
Reinsh形式:
S
λ
=
N
(
N
T
N
+
λ
Ω
N
)
N
T
=
N
(
N
T
[
I
+
λ
N
−
T
Ω
N
N
−
1
]
N
)
−
1
N
T
=
(
I
+
λ
N
−
T
Ω
N
N
−
1
)
−
1
S_{\lambda}=N(N^{T}N+\lambda\Omega_{N})N^{T}\\ =N(N^{T}[I+\lambda N{-T}\Omega_{N}N^{-1}]N)^{-1}N^{T}\\ =(I+\lambda N^{-T}\Omega_{N}N^{-1})^{-1}
Sλ=N(NTN+λΩN)NT=N(NT[I+λN−TΩNN−1]N)−1NT=(I+λN−TΩNN−1)−1也就是说矩阵
S
λ
S_{\lambda}
Sλ可以写成如下形式
S
λ
=
(
I
−
λ
K
)
−
1
S_{\lambda}=(I-\lambda K)^{-1}
Sλ=(I−λK)−1
此时
R
S
S
(
f
)
=
(
y
−
f
)
T
(
y
−
f
)
+
λ
f
T
K
f
RSS(f)=(y-f)^{T}(y-f)+\lambda f^{T}Kf
RSS(f)=(y−f)T(y−f)+λfTKf,最小化RSS的
f
^
=
S
λ
y
\hat f=S_{\lambda}y
f^=Sλy。
由于矩阵S的对称半正定性质,所以对其进行特征分解:
S
λ
=
∑
k
=
1
N
ρ
k
(
λ
)
u
k
u
k
T
S_{\lambda}=\sum\limits_{k=1}^{N}\rho_{k}(\lambda)u_{k}u_{k}^{T}
Sλ=k=1∑Nρk(λ)ukukT
其中,
ρ
k
(
λ
)
=
1
1
+
λ
d
k
\rho_{k}(\lambda)=\frac{1}{1+\lambda d_{k}}
ρk(λ)=1+λdk1,这里的
d
k
d_{k}
dk是矩阵K的特征值。
此时我们可以对
f
^
\hat f
f^重新写成:
f
^
=
S
λ
y
=
∑
k
=
1
N
ρ
k
(
λ
)
u
k
u
k
T
y
\hat f=S_{\lambda}y=\sum\limits_{k=1}^{N}\rho_{k}(\lambda)u_{k}u_{k}^{T}y
f^=Sλy=k=1∑Nρk(λ)ukukTy,这里可以看作
u
k
u_{k}
uk对y的分解。
引入下面一张图片,对这里所说的特征向量进行说明:
从这张图中我们可以看到随着特征值的减少,矩阵的特征向量越复杂,但同时也在压缩,这也就是为什么矩阵的特征值能达到压缩自由度的原因,而且特征向量与参数
λ
\lambda
λ无关。
关于参数
λ
\lambda
λ大小的选取(这里仅仅给出R语言的实现,具体证明有空再写):
1:固定有效自由度,反解出其大小
2:利用留一交叉验证进行求解