【Machine Learning, Coursera】机器学习Week7 核函数

Kernels


本节内容:
核函数(Kernel)是一类计算变量间相似度的函数,它可用于构造新的特征变量,帮助SVM解决复杂的非线性分类问题。

相关机器学习概念:
相似度函数(Similarity Function)
高斯核函数(Gaussian Kernel)


1. Kernels

对于下图中的非线性分类问题,常用的思路是构造多项式特征变量,如果 θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 x 2 + θ 4 x 1 2 + θ 5 x 2 2 + . . . ≥ 0 \theta^T x=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1x_2+\theta_4x^2_1+\theta_5x^2_2 +...≥0 θTx=θ0+θ1x1+θ2x2+θ3x1x2+θ4x12+θ5x22+...0,预测 y = 1 y=1 y=1,反之预测0.

然而,将所有高阶项纳入特征变量会导致运算成本过高等问题,有没有更好的选择特征变量的方法呢?

核函数就是一种可用于构造新的特征变量的方法。

把新的特征变量记作 f f f θ T f = θ 0 + θ 1 f 1 + . . . + θ n f n \theta^T f=\theta_0+\theta_1f_1+...+\theta_nf_n θTf=θ0+θ1f1+...+θnfn
f i f_i fi的计算方法如下:
f i = s i m i l a r i t y ( x , l ( i ) ) = e x p ( − ‖ x − l ( i ) ‖ 2 2 σ 2 ) f_i=similarity(x,l^{(i)})=exp(-\frac{‖ x-l^{(i)} ‖^2}{2\sigma^2}) fi=similarity(x,l(i))=exp(2σ2xl(i)2)
其中, l ( i ) l^{(i)} l(i)是我们事先选择的一些标记点(选择方法在下一节会讲到),它的维度和样本点的维度相同,每个标记点定义一个新的特征变量。这里的similarity函数是高斯核函数(Gaussian Kernel),它是核函数中的一种。核函数是众多相似度函数的总称。

高斯核函数所做的,其实是计算了样本点和标记点的远近程度,距离越近, f i f_i fi的值越接近1,反之,其值越接近0.
如果 x ≈ l ( i ) x≈l^{(i)} xl(i),那么 f i ≈ e x p ( − 0 2 σ 2 ) ≈ 1 f_i≈exp(-\frac{0}{2\sigma^2})≈1 fiexp(2σ20)1
如果 x x x距离 l ( i ) l^{(i)} l(i)很远,那么 f i ≈ e x p ( − ( l a r g e   n u m b e r ) 2 2 σ 2 ) ≈ 0 f_i≈exp(-\frac{(large\ number)^2}{2\sigma^2})≈0 fiexp(2σ2(large number)2)0

高斯核函数的表达式中有一个 σ 2 \sigma^2 σ2,它是高斯核函数的参数,它控制了 f i f_i fi下降的速度。
在这里插入图片描述

\qquad

2. Application

2.1 SVM with Kernels

要使用核函数,首先需要选择一系列标记点。

标记点该如何选择呢?

在实践中,一种选择标记点的方法是将标记点与样本点完全对应。有m个样本点,就能得到m个标记点。此外,按照惯例,我们可能还会加入一个额外的标记点 f 0 f_0 f0,其值始终为1.

在这里插入图片描述

这样我们就得到了带核函数的SVM模型:

Hypothesis: Given x, compute features f ∈ R m + 1 f∈\R^{m+1} fRm+1
\qquad Predict “y=1” if θ T f = θ 0 + θ 1 f 1 + . . . + θ m f m ≥ 0 \theta^T f=\theta_0+\theta_1f_1+...+\theta_mf_m≥0 θTf=θ0+θ1f1+...+θmfm0

Objective function:
J ( θ ) = C ∑ i = 1 m [ y ( i ) c o s t 1 ( θ T f ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T f ( i ) ) ] + 1 2 ∑ j = 1 m θ j 2 J(\theta)=C\sum_{i=1}^{m}[y^{(i)}cost_1(\theta^T f^{(i)})+(1-y^{(i)})cost_0(\theta^T f^{(i)})]+\frac{1}{2}\sum_{j=1}^m\theta_j^2 J(θ)=Ci=1m[y(i)cost1(θTf(i))+(1y(i))cost0(θTf(i))]+21j=1mθj2
\qquad
从原理上看,核函数不仅可以应用于SVM,也可应用于其他算法,如逻辑回归等。但在实践中我们并不这样做,原因是用于SVM的计算技巧不能很好地推广到其他算法上,核函数和其他算法结合时运算速度会非常慢。
\qquad

2.2 SVM parameters

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值