Kernel Methods
大刀 (持续努力,不断进步)
- 章节名:Kernel Methods
本书第六章介绍了核方法(Kernel)。记得上高等数理统计的时候,老师布置过关于核方法的一片小论文作业,只不过当时并没有重视,作业也是应付了事。这两天读了这一章,觉得核方法是一种非常重要的工具。当然,这一章中也有众多地方读不懂,慢慢继续读吧。 下面写点读书笔记和心得。 6.1节,先从最基本的一维核平滑说起。 所谓的平滑,我觉得可以这样理解。对于一维变量及其相应,可以在二维空间中画一个散点图。如果利用插值,将点连接起来,那么连线可能是曲折不平的。所谓的平滑,就是用某种手段使得连线变得平滑光滑一点。那么手段可以有多种,比如第五章介绍的样条平滑,是利用了正则化的方法,使得连线达到高阶可微,从而看起来比较光滑。而本章要介绍的核方法,则是利用核,给近邻中的不同点,按照其离目标点的距离远近赋以不同的权重,从而达到平滑的效果。 下面比较详细的介绍 之前介绍过k-最近邻方法,是用($\hat{f}(x)=Ave(y_i|x_i \in N_k/(x))$)作为回归方程($E(Y|X=x)$)的估计。
上图显示的是一个利用最近邻方法对回归方程的估计。真模型是图中蓝色的线,绿色的曲曲折折的这一条就是用30最近邻方法对这个真模型的估计。可以看到,确实是非常的不平滑,而且也很丑,也是不必要的。下面图是利用了核平滑之后得到的结果,可以明显地看出来,拟合的曲线确实平滑了很多。
上面仅仅是一个核平滑的例子。下面给出一维核平滑的一些具体的公式 ($\hat{f}(x_0)=\frac{\sum_{i=1}^N K_{\lambda}(x_0,x_i)y_i}{{\sum_{i=1}^N K_{\lambda}(x_0,x_i)}}$) 这个就是利用核平滑对($x_0$)点的真实值的估计,可以看出,这其实是一个加权平均,相比起最近邻方法,这里的特殊的地方就是权重($K_{\lambda}(x_0,x)$)。这个权重就称为核。 核函数有很多种,常用的包括 Epanechnikov quadratic 核:($K_{\lambda}(x_0,x)=D(\frac{x-x_0}{\lambda})$) with ($D(t)=\frac{3}{4}(1-t^2),|t|<1$)
这个图就是($D(t)$)的图像,可以看出,随着离目标点的距离越来越远,所附加的权重也是平滑的越来越小。核函数的定义中($\lambda$)是所谓的窗宽(window width)。这个值限制了权重赋值的范围。比如说设置$\lambda=0.2$,对于上面的核函数而言,只有离目标点的距离(差的绝对值)小于等于0.2的点,才会被赋以一个正的权重,剩下的点的权重均为0,因此也就是说在加权平均的时候,只考虑这些点。 更为一般的,窗宽我们认为是一个关于目标点($x_0$)的函数($h_{\lambda}(x_0)$)。那么,对于上面定义的Epanechnikov quadratic kernel,窗宽是一个常数($h_{\lambda}(x_0)=\lambda$)。而对于k-最近邻而言,($h_{\lambda}(x_0)=|x_0-x_{[k]}|$) Epanechnikov核具有紧支集。 此外,还有比较流行的具有紧支集的核函数,based on tri-cube function:($D(t)=(1-t^3)^3$),当($|t|<1$)时,其他时候为0.
可以看到,这个核函数的目标点处于中间部位的时候,所赋权重比较平缓,在边界处则非常的不同。 另外,还有一个比较常用的核函数,是基于高斯密度的。这个核函数的支撑不紧。 一般比较常用的就是如上所说的三种核函数。为了方便,在本笔记的后续部分,我们分别称之为E核函数,T核函数,G核函数。 上面我们介绍了核方法,对于最近邻方法的一种修正。下面来看一看,在回归中如何利用核方法。事实上,即使用核函数加权,最近邻方法仍然是某种平均。在某一个邻域内仍旧是常量。回归方法相比来说,就显得更近了一步。 局部加权线性回归是如下问题的解: ($min_{\alpha(x_0),\beta(x_0)}\sum_{i=1}^N K_{\lambda}(x_0,x_i)[y_i-\alpha(x_0)-\beta(x_0)x_i]^2$) 得到的估计值是($\hat{f}(x_0)=\hat{\alpha}(x_0)+\hat{\beta}(x_0)x_0$) 当我们用向量和矩阵的形式表达上面的式子之后,我们发现,这个估计值对于($y$)来说,确实是线性的。($\hat{f}(x_0)=\sum_{i=1}^Nl_i(x_0)y_i$) 对于这个式子中的($l_i(x_0)$),它是结合了核以及最小二乘算子的,有的时候,这个东西也被称为equivalent kernel。相当于是对响应($y$)赋权重。 之所以要引入局部线性回归,主要的原因是局部的加权平均值在边界处非常不稳定,而局部线性回归则将这个不稳定的因素自动的限制在了一阶,这个现象又称为automatic kernel carpentry。这部分用到了泰勒展开,具体的推到原书中写得比较详细。 有了局部线性回归,就自然可以推广到局部多项式回归。这里也不赘述。 值得一提的是,虽然阶数越高,偏差越小,但是方差会增大。在选择模型的时候,需要进行权衡。此外,局部多项式回归在边界处方差比较大。 (插进一腿,请区分:核平滑与局部回归。其实就是一个概念辨析) 以上的讨论都是在x是一维的情况下进行的。下面讨论在p维下的推广。通常在p维情况下,核函数为一个径向函数(radial function)比如p维的E核函数或者T核函数,($K_{\lambda}(x_0,x)=D(\frac{||x_0-x||}{\lambda})$),事实上里面的范数也可以有多种选择。 对于多维的局部回归或者核平滑,条件散点图是一种可视化的好手段。
本书第四节介绍了结构化的回归方法,我在阅读的过程中,对“结构化”并不怎么理解。因此,这一节读来也没什么心得,因此这里也不写什么了。 第五节,介绍了局部似然核一些其他的模型,感觉挺靠谱的。介绍一下。 首先要介绍的概念是变系数模型,这个模型与之前提到的条件散点图是相关的。不同条件下,自变量和响应之间拟合的模型不同,这个模型的系数是随着条件变化的,因此叫做变系数模型。书中提到了一句话“any parametric model can be made local if the fitting method accommodates observation weights”。 比如说,很多似然模型,也就是基于极大似然估计得到的模型,也可以引入核,对于每一个观测($y_i$),都有一个参数($\theta_i=\theta(x_i)=x_i^T\beta$),而($\beta$)则是基于对数似然的($l(\beta)=\sum_{i=1}^N l(y_i,x_i^T\beta)$),当我们要预测某一个点局部的参数值的时候,就可以用($l(\beta(x_0))=\sum_{i=1}^n K_{\lambda}(x_0,x_i)l(y_i,x_i^T\beta(x_0))$)。 便是所谓的局部似然。 当然在时间序列做自回归模型的时候,也可以引入核,这一点我记得在我关于时间序列的笔记中有介绍过,这一点就不再赘述了。 至此,我们已经介绍了核方法的三个方面的应用,一是核平滑,二是局部回归,三是局部似然以及其他模型。下面介绍另外一种非常常用的,核密度估计。 比如说我们有N个点,从某一个概率密度函数($f_X(x)$)中随机抽取的,我们希望能够估计某一个点($x_0$)处的密度值($f_X(x_0)$)。那么一个自然而然的估计是:($\hat{f}_X(x_0)=\frac{the~ number~ of ~x_i \in N(x_0)}{N \lambda}$)。当然这个想法是比较原始的,更进一步,我们的估计可以更加平滑一些($\hat{f}_X(x_0)=\frac{1}{N\lambda}\sum_{i=1}^N K_{\lambda}(x_0,x_i)$)。这个更加的平滑,叫做smooth Parzens estimate。这个利用核估计谜底的情况下,通常选用的是高斯核函数。 有了核密度,我们可以直接套bayes公式来做分类问题, ($P(G=j|X=x_0)=\frac{\hat{\pi_j}\hat{f_j}(x_0)}{\sum\hat{\pt_k}\hat{f_k}(x_0)}$) (这又是一种分类器。似乎已经读到了不少分类器,应该适时的总结一下不同的分类器了。) 本书的6.6.3节介绍了一种相当重要的分类器,Naive Bayes Classifier。当维度比较高的时候,这个分类器比较实用。这个模型假设,给定所属类别,不同变量之间是独立的。因此,在给定类别的条件下,边际密度可以单独估计,之后得到变量的联合密度,然后利用Bayes公式计算后验概率密度,得到分类的结果。这种方法似乎是非常非常常用。应该值得注意。 至此,已经介绍了利用核密度估计来分类以及利用Naive Bayes方法分类。其不同点在于对自变量联合概率密度的估计方法不同。那么,还有一种非常常用的分类方法,是利用混模型(Mixture Models):($f(x)=\sum_{m=1}^M \alpha_m \phi(x;\mu_m,\Sigma_m)$),混模型中最常用的是高斯密度,通常来说系数是利用极大似然估计的。有了混模型,我们可以估计观测落在某一个分布下的概率:($\hat{r_{im}}=\frac{\hat{\alpha}_m \phi(x_i;\hat{\mu}_m,\hat{\Sigma}_m)}{\sum_{k=1}^M\hat{\alpha}_m \phi(x_i;\hat{\mu}_k,\hat{\Sigma}_k}$) 设定某个阈值,我们就可以做分类了。 这又是一种分类的方法。目前为止,已经接触到的分类方法包括线性回归,判别分析,logisitic回归,用了样条的logistic回归,利用核密度做分类,Naive Bayes分类器,还有就是混模型分类吧,今后专门总结一下,然后写一篇笔记。
大刀对本书的所有笔记 · · · · · ·
-
分类的线性方法
这两天看这本书,每天都要遭受不同程度的打击。读起来进度非常之慢,并且时不时会卡壳。如果...
-
5.2 分段多项式和样条
本次笔记的内容主要是集中于第五章的第二节。第五章的内容比较重,因此计划每一小节读完都写...
-
Kernel Methods
-
第201页
这一章看得太费劲了,笔记得一点儿一点儿写。现在就单写201页的这张图。图中的红线,是预测误...
-
第七章 模型评估与选择
这一章的内容是模型评估与选择,断断续续看了两周时间,感觉比看模型还费劲。其实这一章的大...
说明 · · · · · ·
表示其中内容是对原文的摘抄