Machine Learning第七讲[支持向量机] --(二)核函数

内容来自Andrew老师课程Machine Learning的第七章内容的Kernels部分。


一、Kernels I(核函数I)


在非线性函数中,假设函数为:
Machine Learning第七讲[支持向量机] --(二)核函数
现在我们将表达式改变一下,将其写为:
Machine Learning第七讲[支持向量机] --(二)核函数
联想到上次讲到的计算机视觉的例子,因为需要很多像素点,因此若f用这些高阶函数表示,则计算量将会很大,那么对于Machine Learning第七讲[支持向量机] --(二)核函数我们有没有更好的选择呢?
由此引入核函数的概念。
Machine Learning第七讲[支持向量机] --(二)核函数
对于给定的x,
Machine Learning第七讲[支持向量机] --(二)核函数
其中,similarity( )函数叫做核函数(kernel function),又叫高斯核函数,其实就是相似度函数,但我们平时写成Machine Learning第七讲[支持向量机] --(二)核函数

这里将Machine Learning第七讲[支持向量机] --(二)核函数代入,则f1表达式为:
Machine Learning第七讲[支持向量机] --(二)核函数
Machine Learning第七讲[支持向量机] --(二)核函数,则Machine Learning第七讲[支持向量机] --(二)核函数
若x is far fromMachine Learning第七讲[支持向量机] --(二)核函数,则 Machine Learning第七讲[支持向量机] --(二)核函数
下面的图形会给出比较直观的感受:
Machine Learning第七讲[支持向量机] --(二)核函数
delta^2比较小,则图形比较陡峭;随着delta^2越来愈大,图形渐趋平稳。

在此基础上,看下面的例子:
Machine Learning第七讲[支持向量机] --(二)核函数
对于紫色的点x,因为其距离Machine Learning第七讲[支持向量机] --(二)核函数比较近,距离Machine Learning第七讲[支持向量机] --(二)核函数Machine Learning第七讲[支持向量机] --(二)核函数比较远,因此Machine Learning第七讲[支持向量机] --(二)核函数,theta值是已知的,将theta和f的值代入即可得到这个点的预测值。
对于蓝色的点,因为其距离Machine Learning第七讲[支持向量机] --(二)核函数Machine Learning第七讲[支持向量机] --(二)核函数Machine Learning第七讲[支持向量机] --(二)核函数都比较远,因此Machine Learning第七讲[支持向量机] --(二)核函数,代入即可得到预测值。

通过选取很多这样的x值,得到他们的预测值,得到边界,如图红色不规则封闭图形所示,在图形内部预测值为y=1,在图形外部的预测值y=0。

二、Kernels II(核函数II)


上面Kernels I内容中讲到了Machine Learning第七讲[支持向量机] --(二)核函数,那我们应该怎么样选出Machine Learning第七讲[支持向量机] --(二)核函数呢?
Machine Learning第七讲[支持向量机] --(二)核函数
我们采取的方法是将每一个样本都作为一个标记点。

SVM with Kernels
给出Machine Learning第七讲[支持向量机] --(二)核函数,我们选择Machine Learning第七讲[支持向量机] --(二)核函数
对于x,则有
Machine Learning第七讲[支持向量机] --(二)核函数
有向量
Machine Learning第七讲[支持向量机] --(二)核函数
其中Machine Learning第七讲[支持向量机] --(二)核函数
对于训练样本Machine Learning第七讲[支持向量机] --(二)核函数,有
Machine Learning第七讲[支持向量机] --(二)核函数
其中,Machine Learning第七讲[支持向量机] --(二)核函数
Machine Learning第七讲[支持向量机] --(二)核函数

于是,假设函数变成
Machine Learning第七讲[支持向量机] --(二)核函数
其中,m为训练集的大小
带核函数的代价函数为:
Machine Learning第七讲[支持向量机] --(二)核函数
注意:这里我们仍然不把θ0计算在内。
最小化这个函数,即可得到支持向量机的参数。

若涉及到一些优化问题,可以选择n=m。

另外,说明:
Machine Learning第七讲[支持向量机] --(二)核函数,其中,Machine Learning第七讲[支持向量机] --(二)核函数

另外,在实际应用中有人将其实现为下述公式,这是另一种略有区别的距离度量方法,这种方法可以适应超大的训练集:
Machine Learning第七讲[支持向量机] --(二)核函数
因为若使用第一种方法,当m非常大时,求解很多参数将会成本非常高。

SVM参数以及方差、偏差的关系
c=1/λ,参数C很大,即λ较小,则过拟合,低偏差,高方差
                若参数C很小,即λ较大,则前拟合,高偏差,低方差

       δ^2,若参数δ^2很大,则欠拟合,高偏差,低方差,f_i图形比较平稳
               若参数δ^2很小,则过拟合,低偏差,高方差,f_i图形比较陡峭
Machine Learning第七讲[支持向量机] --(二)核函数

附上一题关于f_i参数的题目:
Machine Learning第七讲[支持向量机] --(二)核函数