Chap 5 Basis Expansions and Regularization
Introduction
首先回顾以下线性模型。线性模型建模便于估计参数,并且可以看成是真正模型的一阶泰勒展开,因此具有较好的近似性。本章的主要内容是将X进行变换改变输入,再利用相加的形式,从而拟合非线性模型。具体来说,对X进行
h
m
(
X
)
:
R
p
↦
R
,
m
=
1
,
.
.
.
,
M
h_m(X):\mathbf{R}^p\mapsto\mathbb{R},m=1,...,M
hm(X):Rp↦R,m=1,...,M,再拟合模型:
f
(
X
)
=
∑
m
=
1
M
β
m
h
m
(
X
)
f(X)=\sum_{m=1}^M\beta_mh_m(X)
f(X)=m=1∑Mβmhm(X)
这样处理好处在于进行参数估计的时候还可以使用原来的一整套方法。
常用的变换有:
- h m ( X ) = X m , m = 1 , 2... , p h_m(X)=X_m,m=1,2...,p hm(X)=Xm,m=1,2...,p,也就是使用选模型;
- h m ( X ) = X J 2 h_m(X)=X_J^2 hm(X)=XJ2或者 h m ( X ) = X j X k h_m(X)=X_jX_k hm(X)=XjXk也就是多项式的形式,从而作为对f(.)的高阶泰勒展开
- h m ( X ) = log ( X j ) , X j . . . h_m(X)=\log (X_j),\sqrt{X_j}... hm(X)=log(Xj),Xj...等常见的对于单变量的非线性变换
- h m ( X ) = I ( L m ≤ X k < U m ) h_m(X)=I(L_m\le X_k< U_m) hm(X)=I(Lm≤Xk<Um)也就是表示 X j X_j Xj的取值区间
那么接下来的问题就在于如何选择合适的变换,并且使用一定的方法来控制模型的复杂度。常见的控制模型复杂度的方法:
- 控制每一个变换 h m ( . ) h_m(.) hm(.)涉及的变量数
- 变量选择,例如选模型,使用stagewise greedy approaches(例如CART,boosting)
- 正则化
Piecewise Polynomials and Splines
使用分段多项式作为basis function,其中的分段点称作knots。使用更高阶的多项式可以得到更加光滑的basis function,也就是保证在节点处的连续型。
定义:cubic spline【三次样条】
分段将区间[a,b]分成n个区间,
[
(
x
0
,
x
1
)
,
.
.
.
,
(
x
n
−
1
,
x
n
)
]
[(x_0,x_1),...,(x_{n-1},x_n)]
[(x0,x1),...,(xn−1,xn)],共有n+1个点,其中两个端点
x
0
=
a
,
x
n
=
b
x_0=a,x_n=b
x0=a,xn=b,每个小区间的曲线是一个三次多项式,并且满足条件:
- 在每个分段小区间上 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1], S ( x ) = S i ( x ) S(x)=S_i(x) S(x)=Si(x)都是一个三次多项式
- 在节点处是2阶导数连续的
【注】:假设将区间划分成n个区间,那么以下的cubic spline对应的basis function可以是
h
1
(
X
)
=
1
,
h
3
(
X
)
=
X
2
,
h
5
(
X
)
=
(
X
−
ξ
i
)
+
3
,
h
2
(
X
)
=
X
,
h
4
(
X
)
=
X
3
,
h
6
(
X
)
=
(
X
−
ξ
j
)
+
3
.
\begin{aligned}h_1(X)&=1,\quad h_3(X)=X^2,\quad h_5(X)=(X-\xi_i)_+^3,\\h_2(X)&=X,\quad h_4(X)=X^3,\quad h_6(X)=(X-\xi_j)_+^3.\end{aligned}
h1(X)h2(X)=1,h3(X)=X2,h5(X)=(X−ξi)+3,=X,h4(X)=X3,h6(X)=(X−ξj)+3.
所以需要估计的参数值为:
n
×
4
−
(
n
−
1
)
×
3
n\times 4-(n-1)\times 3
n×4−(n−1)×3,前面是不加任何光滑性限制的参数估计个数,后面减去的是每一个节点由于是二阶导连续的,所以函数值、一阶导数值、二阶导数值都需要是相等的,即每一个节点都有三个方程限制,所以要减去
(
n
−
1
)
×
3
(n-1)\times 3
(n−1)×3。
(定义)order-M spline:分段多项式是M-2阶导数连续的
【注】:
- cubic spline是2阶导数连续的,M=4;如果是阶梯函数,则M=1,即order-1 spline;如果是分段线性函数,即0阶连续,M=2;
2. M-order spline,对应的多项式的阶数为至少为M-1阶
3. M-order有K个knots,自由度:
d f = ( K + 1 ) M − K ( M − 1 ) = K + M df=(K+1)M-K(M-1)=K+M df=(K+1)M−K(M−1)=K+M
对应了K+M个basic truncated-power function:
h j ( X ) = X j − 1 , j = 1 , … , M , h M + ℓ ( X ) = ( X − ξ ℓ ) + M − 1 , ℓ = 1 , … , K . \begin{array}{rcl}h_j(X)&=&X^{j-1},j=1,\ldots,M, \\h_{M+\ell}(X)&=&(X-\xi_\ell)_+^{M-1},\ell=1,\ldots,K.\end{array} hj(X)hM+ℓ(X)==Xj−1,j=1,…,M,(X−ξℓ)+M−1,ℓ=1,…,K.
实际上估计参数的时候就是抓住这K+M个function
一般来说,不会使用超过三次样条的多项式了,一般取M=1,2,4
固定konts的样条被称作regression splines,进行这样的操作需要选择样条的次数、节点的个数、节点的位置。
Natural Cubic Splines
使用多项式拟合数据在边界会出现方差较大的情况,这对于样条更为突出相较于全局的多项式。多项式拟合出现边界点方差较大,很大程度上是因为泰勒展开并不收敛,所以实际上在边界位置多项式拟合的方差往往会呈现阶数越大,方差越大的情况。所以一个很自然的想法是在靠近边界点,也就是边界的konts之外的部分使用线性函数,内部仍然使用多项式样条。这样做会减少4个参数,
d
f
=
K
+
4
−
4
=
K
df=K+4-4=K
df=K+4−4=K,这个自由度可以安排进在内部放更多的konts。相对来说可以有以下几个basic truncated power functions:
N
1
(
X
)
=
1
,
N
2
(
X
)
=
X
,
N
k
+
2
(
X
)
=
d
k
(
X
)
−
d
K
−
1
(
X
)
N_1(X)=1,\quad N_2(X)=X,\quad N_{k+2}(X)=d_k(X)-d_{K-1}(X)
N1(X)=1,N2(X)=X,Nk+2(X)=dk(X)−dK−1(X)
d
k
(
X
)
=
(
X
−
ξ
k
)
+
3
−
(
X
−
ξ
K
)
+
3
ξ
K
−
ξ
k
.
d_k(X)=\frac{(X-\xi_k)_+^3-(X-\xi_K)_+^3}{\xi_K-\xi_k}.
dk(X)=ξK−ξk(X−ξk)+3−(X−ξK)+3.
由于natural cubic splines还需要保持三次导数连续所以本质上仍然是:
f
(
x
)
=
∑
j
=
0
3
β
j
x
j
+
∑
k
=
1
K
θ
k
(
x
−
ξ
k
)
+
3
f(x)=\sum_{j=0}^3\beta_jx^j+\sum_{k=1}^K\theta_k(x-\xi_k)^3_+
f(x)=j=0∑3βjxj+k=1∑Kθk(x−ξk)+3
只是再加上
x
<
x
1
,
x
>
x
K
x<x_1,x>x_K
x<x1,x>xK的时候需要是线性的函数。
**使用样条插值即可以作为增加复杂度,使得拟合效果更好;也可以作为降维的方法,进一步提取信息。**例如对于函数型数据的线性建模: Y = ∑ j x ( t j ) β ( t j ) Y=\sum_{j}x(t_j)\beta(t_j) Y=∑jx(tj)β(tj),为了使得 β ( t ) ∈ ℜ T × 1 \beta(t)\in\Re^{T\times 1} β(t)∈ℜT×1关于 t t t是光滑的,可以使用spline的方法进行建模,那么 β = ∑ i h i ( t ) θ i = H θ , H ∈ ℜ T × M \beta=\sum_{i}h_i(t)\theta_i=H\theta,H\in \Re^{T\times M} β=∑ihi(t)θi=Hθ,H∈ℜT×M(H只和已知的T有关),由此转化为 Y = X H θ Y=XH\theta Y=XHθ进行建模,将 X ∗ = X H X^*=XH X∗=XH视作整体即可达到降维的效果。
Smoothing Splines
将所有点都作为konts,并且使用正则化的方法来减少复杂度,损失函数为:
RSS
(
f
,
λ
)
=
∑
i
=
1
N
{
y
i
−
f
(
x
i
)
}
2
+
λ
∫
{
f
′
′
(
t
)
}
2
d
t
\operatorname{RSS}(f,\lambda)=\sum_{i=1}^N\{y_i-f(x_i)\}^2+\lambda\int\{f''(t)\}^2dt
RSS(f,λ)=i=1∑N{yi−f(xi)}2+λ∫{f′′(t)}2dt
易知,当
λ
=
0
\lambda=0
λ=0,则f可以是任何一个插值函数;当
λ
→
+
∞
\lambda\to +\infty
λ→+∞,则为任何一条直线。随着
λ
\lambda
λ的增大,f越来越光滑。如果只看损失函数最小化,实际上我们找的是一个函数,参数空间应当是无穷维的,但是可以证明,最小化上式的一定是cubic spline,此时前一项为0,后一项是所有插值函数中最小的。
# 证明:
首先证明对于任何一个二阶可导的插值函数
g
~
(
x
)
\tilde g(x)
g~(x),令
h
(
x
)
=
g
~
(
x
)
−
g
(
x
)
h(x)=\tilde g(x)-g(x)
h(x)=g~(x)−g(x),则使用分部积分有:
∫
a
b
g
′
′
(
x
)
h
′
′
(
x
)
d
x
=
−
∑
j
=
1
N
−
1
g
′
′
′
(
x
j
+
)
{
h
(
x
j
+
1
)
−
h
(
x
j
)
}
=
0
\begin{aligned} \int_{a}^{b}g^{\prime\prime}(x)h^{\prime\prime}(x)dx& =\quad-\sum_{j=1}^{N-1}g'''(x_j^+)\{h(x_{j+1})-h(x_j)\} \\ & =0 \end{aligned}
∫abg′′(x)h′′(x)dx=−j=1∑N−1g′′′(xj+){h(xj+1)−h(xj)}=0
从而
∫
a
b
g
~
′
′
(
t
)
2
d
t
≥
∫
a
b
g
′
′
(
t
)
2
d
t
,
\int_{a}^{b}\tilde{g}^{\prime\prime}(t)^2dt\geq\int_{a}^{b}g^{\prime\prime}(t)^2dt,
∫abg~′′(t)2dt≥∫abg′′(t)2dt,
由此对于任何一个二阶可导的函数
f
~
(
x
)
\tilde f(x)
f~(x),可以选择在
x
i
x_i
xi与
f
~
(
x
)
\tilde f(x)
f~(x)一致的cubic splines
f
(
x
)
f(x)
f(x),由此
∑
i
=
1
N
(
y
i
−
f
(
x
i
)
)
2
\begin{aligned}\sum_{i=1}^N(y_i-f(x_i))^2\end{aligned}
i=1∑N(yi−f(xi))2
是一致的,而前面的证明又说明:
J
(
f
(
x
)
)
≤
J
(
f
~
(
x
)
)
J(f(x))\le J(\tilde f(x))
J(f(x))≤J(f~(x))
所以使用
x
i
x_i
xi作为knots的cubic splines是使得损失函数最小的。#
因此可以将
f
(
x
)
f(x)
f(x)表示成如下形式:
f
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
j
f(x)=\sum_{j=1}^{N}N_j(x)\theta_j
f(x)=j=1∑NNj(x)θj
相应的,原损失函数也可以写成:
R
S
S
(
θ
,
λ
)
=
(
y
−
N
θ
)
T
(
y
−
N
θ
)
+
λ
θ
T
Ω
N
θ
,
\mathrm{RSS}(\theta,\lambda)=(\mathbf{y}-\mathbf{N}\theta)^T(\mathbf{y}-\mathbf{N}\theta)+\lambda\theta^T\boldsymbol{\Omega}_N\theta,
RSS(θ,λ)=(y−Nθ)T(y−Nθ)+λθTΩNθ,
其中
{
N
}
i
j
=
N
j
(
x
i
)
∈
ℜ
N
×
N
\{\mathbf{N}\}_{ij}=N_{j}(x_{i})\in \Re^{N\times N}
{N}ij=Nj(xi)∈ℜN×N是满秩矩阵,
{
Ω
N
}
j
k
=
∫
N
j
′
′
(
t
)
N
k
′
′
(
t
)
d
t
.
\{\boldsymbol{\Omega}_{N}\}_{jk}=\int N_{j}^{\prime\prime}(t)N_{k}^{\prime\prime}(t)dt.
{ΩN}jk=∫Nj′′(t)Nk′′(t)dt.因此系数估计值为:
θ
^
=
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
y
,
\hat{\theta}=(\mathbf{N}^T\mathbf{N}+\lambda\boldsymbol{\Omega}_N)^{-1}\mathbf{N}^T\mathbf{y},
θ^=(NTN+λΩN)−1NTy,
最终得到的样条函数为:
f
^
(
x
)
=
∑
j
=
1
N
N
j
(
x
)
θ
^
j
.
\hat{f}(x)=\sum_{j=1}^NN_j(x)\hat{\theta}_j.
f^(x)=j=1∑NNj(x)θ^j.
Degrees of Freedom and Smoother Matrices
介绍一种不使用交叉验证直接选择 λ \lambda λ的方法:linear smoother
从前面的推到可以得到:
f
^
=
N
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
y
=
S
λ
y
.
\begin{array}{rcl}\hat{\mathbf{f}}&=&\mathbf{N}(\mathbf{N}^T\mathbf{N}+\lambda\boldsymbol{\Omega}_N)^{-1}\mathbf{N}^T\mathbf{y}\\&=&\mathbf{S}_\lambda\mathbf{y}.\end{array}
f^==N(NTN+λΩN)−1NTySλy.
再次可以看到估计值是Y的线性函数,其中
S
λ
S_\lambda
Sλ被称作smoother matrix,它只和X、
λ
\lambda
λ有关,和一般的最小二乘估计的帽子矩阵H对比来说有以下的特点:
- 都是半正定对称矩阵
- H 2 = H H^2=H H2=H是幂等阵, S λ S λ ⪯ S λ \mathbf{S}_\lambda \mathbf{S}_\lambda \preceq \mathbf{S}_\lambda SλSλ⪯Sλ,也就是 t r a c e ( S λ S λ ) ≤ t r a c e ( S λ ) trace(\mathbf{S}_\lambda\mathbf{S}_\lambda)\le trace(S_\lambda) trace(SλSλ)≤trace(Sλ)
和之前的岭回归一致,定义自由度:
d
f
:
=
t
r
a
c
e
(
S
λ
)
df:=trace(S_\lambda)
df:=trace(Sλ)
现在重新改写矩阵
S
λ
S_\lambda
Sλ:
S
λ
=
N
(
N
T
N
+
λ
Ω
N
)
−
1
N
T
=
N
[
N
T
(
I
+
λ
(
N
−
1
)
T
Ω
N
N
−
1
)
N
]
−
1
N
T
=
(
I
+
λ
K
)
−
1
\begin{aligned} S_\lambda=&\mathbf{N}(\mathbf{N}^T\mathbf{N}+\lambda\boldsymbol{\Omega}_N)^{-1}\mathbf{N}^T\\ =&N[N^T(I+\lambda(N^{-1})^T\boldsymbol{\Omega}_NN^{-1})N]^{-1}N^T\\ =&(I+\lambda K)^{-1} \end{aligned}
Sλ===N(NTN+λΩN)−1NTN[NT(I+λ(N−1)TΩNN−1)N]−1NT(I+λK)−1
其中
K
=
(
N
−
1
)
T
Ω
N
N
−
1
K=(N^{-1})^T\boldsymbol{\Omega}_NN^{-1}
K=(N−1)TΩNN−1只和X有关和
λ
\lambda
λ无关,此时可以把估计值写为
f
^
=
(
I
+
λ
K
)
−
1
Y
\hat f=(I+\lambda K)^{-1}Y
f^=(I+λK)−1Y,是以下问题的解:
min
f
(
y
−
f
)
T
(
y
−
f
)
+
λ
f
T
K
f
\min_\mathbf{f}(\mathbf{y}-\mathbf{f})^T(\mathbf{y}-\mathbf{f})+\lambda\mathbf{f}^T\mathbf{K}\mathbf{f}
fmin(y−f)T(y−f)+λfTKf
所以也把K称作penalty matrix。K是一个对称阵,对角化
K
=
U
D
U
T
K=UDU^T
K=UDUT,其中
U
=
[
u
1
,
.
.
.
,
u
N
]
U=[u_1,...,u_N]
U=[u1,...,uN],
D
=
d
i
a
g
(
d
1
,
.
.
.
,
d
N
)
D=diag(d_1,...,d_N)
D=diag(d1,...,dN),从而有:
S
λ
=
∑
k
=
1
N
ρ
k
(
λ
)
u
k
u
k
T
\mathbf{S}_\lambda=\sum_{k=1}^N\rho_k(\lambda)\mathbf{u}_k\mathbf{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
Y
^
=
S
λ
Y
=
∑
k
=
1
N
ρ
k
(
λ
)
u
k
u
k
T
Y
=
∑
k
=
1
N
ρ
k
(
λ
)
u
k
<
u
k
,
Y
>
\hat Y=S_\lambda Y=\sum_{k=1}^N\rho_k(\lambda)\mathbf{u}_k\mathbf{u}_k^T Y=\sum_{k=1}^N\rho_k(\lambda)\mathbf{u}_k<\mathbf{u}_k,Y>
Y^=SλY=k=1∑Nρk(λ)ukukTY=k=1∑Nρk(λ)uk<uk,Y>
可以看到
u
k
u_k
uk和
λ
\lambda
λ无关,本质上
λ
\lambda
λ就是做了一个shrinkage,因此smoothing splines也被称作shrinking smoothers, 一般的splines被称作projection smoothers.针对
u
k
u_k
uk和
ρ
k
(
λ
)
\rho_k(\lambda)
ρk(λ)有以下的讨论:
- u k u_k uk并不会被 λ \lambda λ影响(\emph{事实上K和 λ \lambda λ无关})
- S λ y = ∑ k = 1 N u k ρ k ( λ ) ⟨ u k , y ⟩ \mathbf{S}_\lambda\mathbf{y}=\sum_{k=1}^N\mathbf{u}_k\rho_k(\lambda)\langle\mathbf{u}_k,\mathbf{y}\rangle Sλy=∑k=1Nukρk(λ)⟨uk,y⟩可以把 ρ k ( λ ) \rho_k(\lambda) ρk(λ)看成一个shrinkage,并且有 u k u_k uk越复杂,则 ρ k ( λ ) \rho_k(\lambda) ρk(λ)越小,也就是越复杂的shrink的越多
- shrinkage的速率由 λ \lambda λ控制, λ \lambda λ越大,则shrink的越多
- 原始的参数估计等价于:
min θ ∥ y − U θ ∥ 2 + λ θ T D θ , \min_\theta\|\mathbf{y}-\mathbf{U}\theta\|^2+\lambda\boldsymbol{\theta}^T\mathbf{D}\boldsymbol{\theta}, θmin∥y−Uθ∥2+λθTDθ,
其中 D = d i a g ( d k ) D=diag(d_k) D=diag(dk),则有 θ ^ = ( U T U + λ D ) − 1 U T Y = U ( I + λ D ) − 1 U T Y \hat \theta=(U^TU+\lambda D)^{-1}U^T Y=U(I+\lambda D)^{-1}U^T Y θ^=(UTU+λD)−1UTY=U(I+λD)−1UTY -
ρ
k
(
λ
)
\rho_k(\lambda)
ρk(λ)中一定有两个等于1,也就是K的特征值中一定有两个等于零,事实上:
K = ( N − 1 ) T Ω N N − 1 K=(N^{-1})^T\Omega_NN^{-1} K=(N−1)TΩNN−1
由于N是满秩的,现在看 Ω N = ∫ N j ′ ′ N k ′ ′ d s \Omega_N=\int N_j''N_k''ds ΩN=∫Nj′′Nk′′ds,有两列两行对应 N 1 ( x ) = 1 , N 2 ( x ) = x N_1(x)=1,N_2(x)=x N1(x)=1,N2(x)=x所以为0,因此肯定有两个特征值为0,说明这两个是不会被shrink的 - λ → 0 , d f λ → N , S λ → I ; λ → ∞ , d f λ → 2 , S λ → H \lambda\to0,df_\lambda\to N,S_\lambda\to I;\lambda \to \infty,df_\lambda \to 2,S_\lambda\to H λ→0,dfλ→N,Sλ→I;λ→∞,dfλ→2,Sλ→H,H是线性回归的帽子矩阵
Automatic Selection of the Smoothing Parameters
承接上文如何选择
λ
\lambda
λ的问题,一个和显然的想法是先定
d
f
λ
df_\lambda
dfλ
d
f
λ
=
∑
i
=
1
N
1
1
+
λ
d
k
df_\lambda=\sum_{i=1}^N\frac{1}{1+\lambda d_k}
dfλ=i=1∑N1+λdk1
由于是
λ
\lambda
λ的单调函数,所以可以数值求解。而定
d
f
λ
df_\lambda
dfλ则可以使用最小化EPE(integrated squared prediction error)来决定。需要注意的是关于
d
f
λ
df_\lambda
dfλ存在一个trade-off,df越大偏差越小,但是方差越大。
E
P
E
(
f
^
λ
)
=
E
(
Y
−
f
^
λ
(
X
)
)
2
=
V
a
r
(
Y
)
+
E
[
B
i
a
s
2
(
f
^
λ
(
X
)
)
+
V
a
r
(
f
^
λ
(
X
)
)
]
=
σ
2
+
M
S
E
(
f
^
λ
)
.
\begin{aligned} \mathrm{EPE}(\hat{f}_{\lambda})& =\quad\operatorname{E}(Y-\hat{f}_\lambda(X))^2 \\ &=\quad\mathrm{Var}(Y)+\mathrm{E}\left[\mathrm{Bias}^2(\hat{f}_\lambda(X))+\mathrm{Var}(\hat{f}_\lambda(X))\right] \\ &=\quad\sigma^{2}+\mathrm{MSE}(\hat{f}_{\lambda}). \end{aligned}
EPE(f^λ)=E(Y−f^λ(X))2=Var(Y)+E[Bias2(f^λ(X))+Var(f^λ(X))]=σ2+MSE(f^λ).
【注】:EPE并不是MSE!但由于 σ 2 \sigma^2 σ2无法控制,所以本质上还是最小化MSE。
由于EPE无法计算,所以常常使用交叉验证的方法来估计,从而选择最小损失下的df,再确定 λ \lambda λ即可。
Nonparametric Logistic Regression
非参数的方法实际上并不是和参数方法一样,实现给定包含参数的拟合函数形式,再根据最小化损失函数得到参数估计值。非参数方法是在实现给定的损失函数下,推导最小化损失函数的拟合函数是什么,并且往往这个函数需要具有一定的光滑性,常可以通过推导最小化损失函数得到这个拟合函数的形式,从而使用参数化的方法具象表示出来,再结合数据估计即可。例如对于natural cubic splines来说,就是在残差平方和以及 J = ∫ ( f ′ ′ ) 2 d x J=\int (f^{''})^2 dx J=∫(f′′)2dx进行的,由此得到natural cubic splines的形式,在此基础上得到“自由度拉满”的basis function, X ~ = g ( X ) \tilde X=g(X) X~=g(X)转化为一般的线性回归建模。
例如本节的非参数二分类逻辑回归就是假设:
log
Pr
(
Y
=
1
∣
X
=
x
)
Pr
(
Y
=
0
∣
X
=
x
)
=
f
(
x
)
,
\log\frac{\Pr(Y=1|X=x)}{\Pr(Y=0|X=x)}=f(x),
logPr(Y=0∣X=x)Pr(Y=1∣X=x)=f(x),
Pr
(
Y
=
1
∣
X
=
x
)
=
e
f
(
x
)
1
+
e
f
(
x
)
.
\Pr(Y=1|X=x)=\frac{e^{f(x)}}{1+e^{f(x)}}.
Pr(Y=1∣X=x)=1+ef(x)ef(x).
损失函数一般包括两项,一项是衡量准确度,另一项是控制复杂程度:
ℓ
(
f
;
λ
)
=
∑
i
=
1
N
[
y
i
log
p
(
x
i
)
+
(
1
−
y
i
)
log
(
1
−
p
(
x
i
)
)
]
−
1
2
λ
∫
{
f
′
′
(
t
)
}
2
d
t
=
∑
i
=
1
N
[
y
i
f
(
x
i
)
−
log
(
1
+
e
f
(
x
i
)
)
]
−
1
2
λ
∫
{
f
′
′
(
t
)
}
2
d
t
\begin{array}{rcl}\ell(f;\lambda)&=&\sum_{i=1}^N[y_i\log p(x_i)+(1-y_i)\log(1-p(x_i))]-\frac12\lambda\int\{f''(t)\}^2dt\\\\&=&\sum_{i=1}^N\left[y_if(x_i)-\log(1+e^{f(x_i)})\right]-\frac12\lambda\int\{f''(t)\}^2dt\end{array}
ℓ(f;λ)==∑i=1N[yilogp(xi)+(1−yi)log(1−p(xi))]−21λ∫{f′′(t)}2dt∑i=1N[yif(xi)−log(1+ef(xi))]−21λ∫{f′′(t)}2dt
类似于smoothing natural splines的推导,这里也可以推导得到f(.)是smoothing natural splines,即
f
(
x
)
=
∑
i
=
1
N
N
j
(
x
)
θ
j
f(x)=\sum_{i=1}^N N_j(x)\theta_j
f(x)=∑i=1NNj(x)θj。由于一阶导数不是
θ
\theta
θ的线性函数,无法直接得到解析解,可以使用Newton-Raphson迭代。
Multidimensional Splines
以上讨论的都是一维的splines,本届推广到多维度的场合。从一维的basis function出发,不难联想到以下两种最直接的推广:
- tensor product basis。以两个维度为例:
g j k ( X ) = h 1 j ( X 1 ) h 2 k ( X 2 ) , j = 1 , … , M 1 , k = 1 , … , M 2 g_{jk}(X)=h_{1j}(X_1)h_{2k}(X_2),j=1,\ldots,M_1,k=1,\ldots,M_2 gjk(X)=h1j(X1)h2k(X2),j=1,…,M1,k=1,…,M2
从而进一步建模为:
g ( X ) = ∑ j = 1 M 1 ∑ k = 1 M 2 θ j k g j k ( X ) . g(X)=\sum_{j=1}^{M_1}\sum_{k=1}^{M_2}\theta_{jk}g_{jk}(X). g(X)=j=1∑M1k=1∑M2θjkgjk(X). - additive splies。以两个维度为例:
g ( X ) = ∑ j = 1 M 1 h 1 j ( X 1 ) + ∑ i = 1 M 2 h 2 i ( X 2 ) g(X)=\sum_{j=1}^{M_1}h_{1j}(X_1)+\sum_{i=1}^{M_2}h_{2i}(X_2) g(X)=j=1∑M1h1j(X1)+i=1∑M2h2i(X2)
对比来说以上两种方法的区别在于:product的方法是更加flexible的 d f p r o d = Π i = 1 p M i , d f s u m = ∑ i = 1 p ( M i − 1 ) + 1 df_{prod}=\Pi_{i=1}^p M_i,df_{sum}=\sum_{i=1}^p (M_i-1)+1 dfprod=Πi=1pMi,dfsum=∑i=1p(Mi−1)+1;但是随着维度的增加参数估计的数量是呈现指数倍增长的。
类似于前面的非参数逻辑回归,多维的、不同basis function下的、不同组合的spline也可以看成是某一个损失下的最优函数形式,例如thine-plate spline:
min
f
∑
i
=
1
N
{
y
i
−
f
(
x
i
)
}
2
+
λ
J
[
f
]
,
\min_f\sum_{i=1}^N\{y_i-f(x_i)\}^2+\lambda J[f],
fmini=1∑N{yi−f(xi)}2+λJ[f],
以二维为例:
J
[
f
]
=
∫
∫
R
2
[
(
∂
2
f
(
x
)
∂
x
1
2
)
2
+
2
(
∂
2
f
(
x
)
∂
x
1
∂
x
2
)
2
+
(
∂
2
f
(
x
)
∂
x
2
2
)
2
]
d
x
1
d
x
2
.
J[f]=\int\int_{\mathbb{R}^2}\left[\left(\frac{\partial^2f(x)}{\partial x_1^2}\right)^2+2\left(\frac{\partial^2f(x)}{\partial x_1\partial x_2}\right)^2+\left(\frac{\partial^2f(x)}{\partial x_2^2}\right)^2\right]dx_1dx_2.
J[f]=∫∫R2[(∂x12∂2f(x))2+2(∂x1∂x2∂2f(x))2+(∂x22∂2f(x))2]dx1dx2.
以上损失函数的解具有形式:
f
(
x
)
=
β
0
+
β
T
x
+
∑
j
=
1
N
α
j
h
j
(
x
)
,
h
j
(
x
)
=
∣
∣
x
−
x
j
∣
∣
2
log
∣
∣
x
−
x
j
∣
∣
f(x)=\beta_0+\beta^Tx+\sum_{j=1}^N\alpha_jh_j(x),h_j(x)=||x-x_j||^2\log||x-x_j||
f(x)=β0+βTx+j=1∑Nαjhj(x),hj(x)=∣∣x−xj∣∣2log∣∣x−xj∣∣
其中
h
j
h_j
hj被称作radial basis function。
而对于多维下的thin-plate spline的计算复杂度,一维的thin-plate spline是 O ( N 3 ) O(N^3) O(N3),高维度下可以不完全使用N个点作为Knots,减少为K个knots,计算复杂度为 O ( N K 2 + K 3 ) O(NK^2+K^3) O(NK2+K3)。
对于additive spline models,也可以找到对应的正则函数,但更简单的表达是直接假设
f
(
X
)
=
α
+
f
1
(
X
1
)
+
.
.
.
+
f
d
(
X
d
)
f(X)=\alpha+f_1(X_1)+...+f_d(X_d)
f(X)=α+f1(X1)+...+fd(Xd),并设
J
[
f
]
=
J
(
f
1
+
f
2
+
⋯
+
f
d
)
=
∑
j
=
1
d
∫
f
j
′
′
(
t
j
)
2
d
t
j
.
\begin{array}{rcl}J[f]&=&J(f_1+f_2+\cdots+f_d)\\&=&\sum_{j=1}^d\int f_j''(t_j)^2dt_j.\end{array}
J[f]==J(f1+f2+⋯+fd)∑j=1d∫fj′′(tj)2dtj.
ANOVA spline decompositions:
f
(
X
)
=
α
+
∑
j
f
j
(
X
j
)
+
∑
j
<
k
f
j
k
(
X
j
,
X
k
)
+
⋯
,
f(X)=\alpha+\sum_jf_j(X_j)+\sum_{j<k}f_{jk}(X_j,X_k)+\cdots,
f(X)=α+j∑fj(Xj)+j<k∑fjk(Xj,Xk)+⋯,
这就会涉及一些讨论:
- 最大的交叉项阶数
2. 需要包含哪些部分,哪些主要部分,哪些交互项
3. 需要使用怎样的 f . ( . ) f_.(.) f.(.)并且同时考虑到参数估计的数量
补充:Wavelet Smoothing
本质上是使用正交的(相乘积分等于0)的basis来表示函数,再使用shrink或选模型的方法来得到sparse representation.它可以有效地表示平滑和局部的波动,这一部分是选读部分,放一张图}来大概看一下basis function长什么样: