Smoothing spline的数学推导

参考斯坦福统计学习原理
光滑样条的精髓在于在原本的拟合误差的基础上加了一个λ∫{f′′(t)}2dt\lambda\int\left\{f^{''}(t)\right\}^{2}dtλ∫{f′′(t)}2dt,这样就有人问,为什么这个能达到光滑的作用,如果能达到光滑的作用,那么他的光滑效果怎么衡量。以及如何选择参数λ\lambdaλ的问题

一般的不加入光滑因子的拟合误差如下式:
RSS(f,λ)=∑i=1N{yi−f(xi)}2RSS(f,\lambda)=\sum_{i=1}^{N}\left\{y_{i}-f(x_{i})\right\}^{2}RSS(f,λ)=i=1∑N​{yi​−f(xi​)}2 引入λ光滑因子式均方误差\lambda光滑因子式均方误差λ光滑因子式均方误差
RSS(f,λ)=∑i=1N{yi−f(xi)}2+λ∫{f′′(t)}2dtRSS(f,\lambda)=\sum_{i=1}^{N}\left\{y_{i}-f(x_{i})\right\}^{2}+\lambda\int\left\{f^{''}(t)\right\}^{2}dtRSS(f,λ)=i=1∑N​{yi​−f(xi​)}2+λ∫{f′′(t)}2dt其中,f(x)=∑j=1NNj(x)θjf(x)=\sum_{j=1}^{N}N_{j}(x)\theta_{j}f(x)=∑j=1N​Nj​(x)θj​,对上式用矩阵的形式表示可得如下形式:
RSS(θ,λ)=(y−Nθ)T(y−Nθ)+λθTΩNθRSS(\theta,\lambda) = (y-N\theta)^{T}(y-N\theta)+\lambda\theta^{T}\Omega_{N}\thetaRSS(θ,λ)=(y−Nθ)T(y−Nθ)+λθTΩN​θ其中,{N}ij=Nj(xi)\left\{N\right\}_{ij}=N_{j}(x_i){N}ij​=Nj​(xi​) , {ΩN}ij=∫Nj′′Nk′′dt\left\{\Omega_{N}\right\}_{ij}=\int N_{j}^{''}N_{k}^{''}dt{ΩN​}ij​=∫Nj′′​Nk′′​dt,我相信有一部分同学觉得公式来的太突然。当我们将前面f(x)=∑j=1NNj(x)θjf(x)=\sum_{j=1}^{N}N_{j}(x)\theta_{j}f(x)=∑j=1N​Nj​(x)θj​代入RSSRSSRSS的计算公式中,将{f′′(t)}2\left\{f^{''}(t)\right\}^{2}{f′′(t)}2分解成f′′(t)∗f′′(t)f^{''}(t)*f^{''}(t)f′′(t)∗f′′(t)根据矩阵的一些乘积变换即可得到RSS(θ,λ)RSS(\theta,\lambda)RSS(θ,λ)
然后对θ\thetaθ求导等于0,也就是最小二乘法的思想
θ^=(NTN+λΩN)−1NTy\hat{\theta}=(N^{T}N+\lambda\Omega_{N})^{-1}N^{T}yθ^=(NTN+λΩN​)−1NTy将我们得到的θ^\hat\thetaθ^带入原来的拟合函数可得f^(x)=∑j=1NNj(x)θj^\hat{f}(x)=\sum_{j=1}^{N}N_{j}(x)\hat{\theta_{j}}f^​(x)=j=1∑N​Nj​(x)θj​^​
−−−−−−−−−−−−−−−−−分割线−−−−−−−−−−−−−−−−-----------------分割线----------------−−−−−−−−−−−−−−−−−分割线−−−−−−−−−−−−−−−−
在我们进行接下来的分析前我们先回顾一下未引入光滑参数的情况,并一次来探讨自由度和光滑矩阵的问题:
设B是一个N*M的矩阵,N代表有N观测点
此时f^=B(BTB)−1BTy=Hy\hat f = B(B^{T}B)^{-1}B^{T}y=Hyf^​=B(BTB)−1BTy=Hy
矩阵H具有对称,半正定的性质,类似的矩阵SλS_{\lambda}Sλ​也具有对称半正定的性质。
矩阵H还是幂等矩阵,所以H∗H=HH*H=HH∗H=H这点不难证明,只需要乘一次就能得到,幂等矩阵具有特征值非1即0的性质,而Sλ∗Sλ&lt;=SλS_{\lambda}*S{_{\lambda}}&lt;=S_{\lambda}Sλ​∗Sλ​<=Sλ​,在这里也能看到矩阵SλS_{\lambda}Sλ​有着压缩的作用。
矩阵H秩为M,矩阵S的秩为N,在投影空间中M=trace(H),这也是基础函数的个数,类似的我们定义光滑样条的有效自由度为:dfλ=trace(Sλ)df_{\lambda}=trace(S_{\lambda})dfλ​=trace(Sλ​)
有很多讨论支持有效自由度的定义,下面进行讨论:
将SλS_{\lambda}Sλ​写成ReinshReinshReinsh形式:
Sλ=N(NTN+λΩN)NT=N(NT[I+λN−TΩNN−1]N)−1NT=(I+λN−TΩNN−1)−1S_{\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ΩN​N−1]N)−1NT=(I+λN−TΩN​N−1)−1也就是说矩阵SλS_{\lambda}Sλ​可以写成如下形式
Sλ=(I−λK)−1S_{\lambda}=(I-\lambda K)^{-1}Sλ​=(I−λK)−1
此时RSS(f)=(y−f)T(y−f)+λfTKfRSS(f)=(y-f)^{T}(y-f)+\lambda f^{T}KfRSS(f)=(y−f)T(y−f)+λfTKf,最小化RSS的f^=Sλy\hat f=S_{\lambda}yf^​=Sλ​y。
由于矩阵S的对称半正定性质,所以对其进行特征分解:
Sλ=∑k=1Nρk(λ)ukukTS_{\lambda}=\sum\limits_{k=1}^{N}\rho_{k}(\lambda)u_{k}u_{k}^{T}Sλ​=k=1∑N​ρk​(λ)uk​ukT​
其中,ρk(λ)=11+λdk\rho_{k}(\lambda)=\frac{1}{1+\lambda d_{k}}ρk​(λ)=1+λdk​1​,这里的dkd_{k}dk​是矩阵K的特征值。

此时我们可以对f^\hat ff^​重新写成:f^=Sλy=∑k=1Nρk(λ)ukukTy\hat f=S_{\lambda}y=\sum\limits_{k=1}^{N}\rho_{k}(\lambda)u_{k}u_{k}^{T}yf^​=Sλ​y=k=1∑N​ρk​(λ)uk​ukT​y,这里可以看作uku_{k}uk​对y的分解。
引入下面一张图片,对这里所说的特征向量进行说明:

从这张图中我们可以看到随着特征值的减少,矩阵的特征向量越复杂,但同时也在压缩,这也就是为什么矩阵的特征值能达到压缩自由度的原因,而且特征向量与参数λ\lambdaλ无关。
关于参数λ\lambdaλ大小的选取(这里仅仅给出R语言的实现,具体证明有空再写):
1:固定有效自由度,反解出其大小

2:利用留一交叉验证进行求解

(光滑样条)Smoothing spline的数学推导相关推荐

  1. Matlab样条工具箱(Spline ToolBox)与曲线拟合

    MATLAB 样条工具箱可以通过节点获得样本函数值,但不能根据x求y或z,也不能求得样本曲线方程.例如: ctrlpoints=[     0    -1.2   -1.6   -1.4   -1   ...

  2. 数学推导+纯Python实现机器学习算法:GBDT

    Datawhale推荐 作者:louwill,Machine Learning Lab 时隔大半年,机器学习算法推导系列终于有时间继续更新了.在之前的14讲中,笔者将监督模型中主要的单模型算法基本都过 ...

  3. 样条+样条函数+样条分析+spline+样条插值+样条回归

    样条+样条函数+样条分析+spline+样条插值+样条回归 spline spline analysis spline regression cubic spline analysis 三次样条 样条 ...

  4. 数学推导+纯Python实现机器学习算法:逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 自本系列第一讲推出以来,得到了不少同学的反响和赞成,也有同学留言说最好能把数学推导部分写的详细点,笔者只能说尽力,因为打公式实 ...

  5. 详解CAPM的数学推导

    详解CAPM的数学推导 资本配置线 最优投资组合 市场投资者与资本资产定价公式 今年居然是咱本命年啊,难怪从二月开始就总是遇到各种奇奇怪怪的bug,不管怎么说还是祝我生日快乐吧.虽说已经不搞金融了,但 ...

  6. 机器学习——线性回归数学推导

    文章目录 线性回归数学推导 基础知识 线性回归的计算 利用矩阵知识对线性公式进行整合 误差项的分析 似然函数的理解 矩阵求偏导 线性回归的最终求解 实验 1 二维直线实验 2 三维平面实验 3 利用最 ...

  7. Lucene学习总结之六:Lucene打分公式的数学推导

     Lucene学习总结之六:Lucene打分公式的数学推导 在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下.因为Lucene的搜索 ...

  8. BZOJ 3119 Book (贪心+数学推导)

    BZOJ 3119 Book (贪心+数学推导) 手动博客搬家: 本文发表于20191029 22:49:41, 原地址https://blog.csdn.net/suncongbo/article/ ...

  9. 【机器学习基础】数学推导+纯Python实现机器学习算法30:系列总结与感悟

    Python机器学习算法实现 Author:louwill Machine Learning Lab 终于到了最后的总结.从第一篇线性回归的文章开始到现在,已经接近有两年的时间了.当然,也不是纯写这3 ...

  10. 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...

最新文章

  1. Go modules基础精进,六大核心概念全解析(下)
  2. Linux的Nginx二:代理
  3. SPOJ 3267: DQUERY 树状数组,离线算法
  4. 启动python内核时发生错误_启动内核时出错
  5. linux wait函数头文件_手把手教Linux驱动9-等待队列waitq
  6. 将视图转为image_使用视图绑定替代 findViewById
  7. Linux系统编程:代码实现多重管道功能
  8. dwz java_dwz.cn接口java客户端实现
  9. 电脑分辨率是什么_吵翻天的2K、3K、4K屏到底是什么鬼?
  10. SQL Server 2019重新安装失败的处理方法
  11. 计算机科学家壁纸,电脑励志好看的文字壁纸推荐
  12. 高校社团管理系统的设计与开发学习论文
  13. handsome主题添加服务器信息,Typecho handsome主题一言接口修改,使用自己的一言服务...
  14. RadioButton 只读
  15. 心理测试详解:猴子小鸟蛇包
  16. iOS路由设计(三)带你一步步构建iOS路由
  17. Android 隐藏 返回键 Home键 隐藏最下面的NAVIGATION栏
  18. 2017年全国高中数学联赛及2017年贵州省预赛试题
  19. Prometheus 之 Alertmanager告警抑制与静默
  20. 信息时代的生活到底给我们带来了什么?

热门文章

  1. 天线越大越好吗_路由器的天线是不是越多越好?告知你真实答案,很多人都买错了...
  2. 笔记-中项/高项学习期间的错题笔记2
  3. C#中操作Excel(4)—— 向Excel中插入两种图表以及设置图表格式
  4. python一张纸超过8848_「一张纸的厚度」JavaScript问题:一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米 - seo实验室...
  5. 由于CredSSP加密数据库修正
  6. Windows 虚拟机Keypair获取登陆密码
  7. PaaS平台设计思想
  8. 如何查找office安装路径
  9. 个人百科怎么做,如何申请个人百度百科
  10. 阿里安全研究员路全:如何运用AI对抗“数据污染”?