主讲人 网神
(新浪微博: @豆角茄子麻酱凉面)
网神(66707180) 18:59:22
大家好,今天一起交流下PRML第7章。第六章核函数里提到,有一类机器学习算法,不是对参数做点估计或求其分布,而是保留训练样本,在预测阶段,计算待预测样本跟训练样本的相似性来做预测,例如KNN方法。
将线性模型转换成对偶形式,就可以利用核函数来计算相似性,同时避免了直接做高维度的向量内积运算。本章是稀疏向量机,同样基于核函数,用训练样本直接对新样本做预测,而且只使用了少量训练样本,所以具有稀疏性,叫sparse kernel machine。
本章包括SVM和RVM(revelance vector machine)两部分,首先讲SVM,支持向量机。首先看SVM用于二元分类,并先假设两类数据是线性可分的。
二元分类线性模型可以用这个式子表示:。其中
是基函数,这些都跟第三章和第四章是一样的。
两类数据线性可分,当时,分类结果是
;
时,分类结果
;也就是对所有训练样本总是有
.要做的就是确定决策边界y(x)=0
为了确定决策边界,SVM引入margin的概念。margin定义为决策边界y(x)到最近的样本的垂直距离。如下图所示:
SVM的目标是寻找一个margin最大的决策边界。 我们来看如何确定目标函数:
首先给出一个样本点x到决策边界的垂直距离公式是什么,先给出答案:|y(x)|/||w||
这个距离怎么来的,在第四章有具体介绍。看下图:
图例,我们看点x到y=0的距离r是多少:
上面我们得到了任意样本点x到y(x)=0的距离,要做的是最大化这个距离。
同时,要满足条件
所以目标函数是:
求w和b,使所有样本中,与y=0距离最小的距离 最大化,整个式子就是最小距离最大化
这个函数优化很复杂,需要做一个转换
可以看到,对w和b进行缩放,距离
并不会变化
根据这个属性,调整w和b,使到决策面最近的点满足:
从而左右样本点都满足
这样,前面的目标函数可以变为:
同时满足约束条件:
这是一个不等式约束的二次规划问题,用拉格朗日乘子法来求解
构造如下的拉格朗日函数:
是拉格朗日乘子 ,这个函数分别对w和b求导,令导数等于0,可以得到w和b的表达式:
将w带入前面的拉格朗如函数L(w,b,a),就可以消去w和b,变成a的函数,这个函数是拉格朗日函数的对偶函数:
为什么要转换成对偶函数,主要是变形后可以借助核函数,来解决线性不可分的问题,尤其是基函数的维度特别高的情况。求解这个对偶函数,得到参数,就确定了分类模型
把带入
,就是用核函数表示的分类模型:
这就是最终的分类模型,完全由训练样本 ,n=1...N决定。
SVM具有稀疏性,这里面对大部分训练样本,都等于0,从而大部分样本在新样本预测时都不起作用。
我们来看看为什么大部分训练样本,都等于0。这主要是由KKT条件决定的。我们从直观上看下KKT条件是怎么回事:
KKT是对拉格朗日乘子法的扩展,将其从约束为等式的情况扩展为约束为不等式的情况。所以先看下约束为等式的情况:例如求函数的极大值,同时满足约束
,拉格朗日乘子法前面已经介绍,引入拉式乘子,构造拉式函数,然后求导,解除的值就是极值。这里从直观上看一下,为什么这个值就是满足条件的极值。设想取不同的z值,使
,就可以得到f(x1,x2)的不同等高线,如图:
构成图中的曲线,图中标记的g=c,对于这种情况,改成g-c=0就可以了.假设g与f的某些等高线相交,交点就是同时满足约束条件和目标函数的值,但不一定是极大值。。有两种相交形式,一种是穿过,一种是相切。因为穿过意味着在该条等高线内部还存在着其他等高线与g相交,新等高线与目标函数的交点的值更大。只有相切时,才可能取得最大值。因此,在极大值处,f的梯度与g的梯度是平行的,因为梯度都垂直于g或f曲线,也就是存在lamda,使得
,这个式子正是拉格朗日函数
对x求导的结果。
接下来看看约束条件为不等式的情况,例如约束为,先看个图: