ESL读书笔记:Chap 5 Basis Expansions and Regularization

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):RpR,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=1Mβmhm(X)
这样处理好处在于进行参数估计的时候还可以使用原来的一整套方法。

常用的变换有:

  1. 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,也就是使用选模型;
  2. 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(.)的高阶泰勒展开
  3. h m ( X ) = log ⁡ ( X j ) , X j . . . h_m(X)=\log (X_j),\sqrt{X_j}... hm(X)=log(Xj),Xj ...等常见的对于单变量的非线性变换
  4. h m ( X ) = I ( L m ≤ X k < U m ) h_m(X)=I(L_m\le X_k< U_m) hm(X)=I(LmXk<Um)也就是表示 X j X_j Xj的取值区间

那么接下来的问题就在于如何选择合适的变换,并且使用一定的方法来控制模型的复杂度。常见的控制模型复杂度的方法:

  1. 控制每一个变换 h m ( . ) h_m(.) hm(.)涉及的变量数
  2. 变量选择,例如选模型,使用stagewise greedy approaches(例如CART,boosting)
  3. 正则化

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),...,(xn1,xn)],共有n+1个点,其中两个端点 x 0 = a , x n = b x_0=a,x_n=b x0=a,xn=b,每个小区间的曲线是一个三次多项式,并且满足条件:

  1. 在每个分段小区间上 [ 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. 在节点处是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(n1)×3,前面是不加任何光滑性限制的参数估计个数,后面减去的是每一个节点由于是二阶导连续的,所以函数值、一阶导数值、二阶导数值都需要是相等的,即每一个节点都有三个方程限制,所以要减去 ( n − 1 ) × 3 (n-1)\times 3 (n1)×3

(定义)order-M spline:分段多项式是M-2阶导数连续的
【注】:

  1. 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)MK(M1)=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)==Xj1,j=1,,M,(Xξ)+M1,=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+44=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)dK1(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=03βjxj+k=1Kθ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θ,HT×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=1N{yif(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=1N1g′′′(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)2dtabg′′(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=1N(yif(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=1NNj(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(θ,λ)=(yNθ)T(yNθ)+λθ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=1NNj(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对比来说有以下的特点:

  1. 都是半正定对称矩阵
  2. 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+λ(N1)TΩNN1)N]1NT(I+λK)1
其中 K = ( N − 1 ) T Ω N N − 1 K=(N^{-1})^T\boldsymbol{\Omega}_NN^{-1} K=(N1)TΩNN1只和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(yf)T(yf)+λ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=1Nρ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=1Nρk(λ)ukukTY=k=1Nρ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(λ)有以下的讨论:

  1. u k u_k uk并不会被 λ \lambda λ影响(\emph{事实上K和 λ \lambda λ无关})
  2. 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的越多
  3. shrinkage的速率由 λ \lambda λ控制, λ \lambda λ越大,则shrink的越多
  4. 原始的参数估计等价于:
    min ⁡ θ ∥ y − U θ ∥ 2 + λ θ T D θ , \min_\theta\|\mathbf{y}-\mathbf{U}\theta\|^2+\lambda\boldsymbol{\theta}^T\mathbf{D}\boldsymbol{\theta}, θminyUθ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
  5. ρ k ( λ ) \rho_k(\lambda) ρk(λ)中一定有两个等于1,也就是K的特征值中一定有两个等于零,事实上:
    K = ( N − 1 ) T Ω N N − 1 K=(N^{-1})^T\Omega_NN^{-1} K=(N1)TΩNN1
    由于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的
  6. λ → 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=1N1+λ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(Yf^λ(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)+(1yi)log(1p(xi))]21λ{f′′(t)}2dti=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出发,不难联想到以下两种最直接的推广:

  1. 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=1M1k=1M2θjkgjk(X).
  2. 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=1M1h1j(X1)+i=1M2h2i(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(Mi1)+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=1N{yif(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[(x122f(x))2+2(x1x22f(x))2+(x222f(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=1Nαjhj(x),hj(x)=∣∣xxj2log∣∣xxj∣∣
其中 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=1dfj′′(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)=α+jfj(Xj)+j<kfjk(Xj,Xk)+,
这就会涉及一些讨论:

  1. 最大的交叉项阶数
    2. 需要包含哪些部分,哪些主要部分,哪些交互项
    3. 需要使用怎样的 f . ( . ) f_.(.) f.(.)并且同时考虑到参数估计的数量

补充:Wavelet Smoothing

本质上是使用正交的(相乘积分等于0)的basis来表示函数,再使用shrink或选模型的方法来得到sparse representation.它可以有效地表示平滑和局部的波动,这一部分是选读部分,放一张图}来大概看一下basis function长什么样:
Wavelet Smoothing basis functions

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值