本章我们来介绍一下对核函数的理解。在先讲核函数之前,我们先来看一下非线性分类问题。
1.非线性分类问题
简要概述之前我们讲到的都是可以直接通过一条直线将样本分成两类,现在的问题是数据样本无法用一条直线线性区分正负样本,如图所示:
2.核函数
2.1核函数定义
例如在Ng之前将线性回归的篇幅中,有一个预测房价的问题,输入x是房子的面积,假设我们用三次函数拟合数据,这是一个非线性的问题,用
ϕ
ϕ
表示特征映射,会得到:
我们希望用 ϕ ϕ 即特征映射后的特征来应用于SVM分类,为什么要用映射后的特征而不是最初的特征,原因是1.希望用更过的特征来更好的拟合。2.样例中如果有线性不可分的情况,将特征映射到高维空间后,往往就可分了。
我们来看看核函数的定义(参考李航《统计学习方法》中的定义):

来看一个例子假设x,z∈R, K(x,z)=(xTz)2 K ( x , z ) = ( x T z ) 2 ,即:
2.2核函数的表示形式
核函数通常的表达形式为
K(x,z)=(xTz+c)2
K
(
x
,
z
)
=
(
x
T
z
+
c
)
2
,对应的映射后特征维度为
[n+dn]
[
n
+
d
n
]
,(个人也不能理解)
此外还有另外一种核函数的表达方式:
K(x,z)=exp(−||x−z||22σ2)
K
(
x
,
z
)
=
e
x
p
(
−
|
|
x
−
z
|
|
2
2
σ
2
)
这种表达方式考虑x和z的相似性,如果x和z很相近,即分子接近0,那么核函数值接近1,如果x和z相差很远,那么核函数约等于0。这个形式类似高斯分布,因此称为高斯核函数,也就做径向基函数(RBF)。它能够把原始特征映射到无穷维。
所以说当我们遇到一个新的机器学习问题,如果我们希望学习算法认为x和z是相似的,那么我们可以使
K(x,z)
K
(
x
,
z
)
取一个较大的值;如果我们希望学习算法认为x和z不一样,那么我们可以使
K(x,z)
K
(
x
,
z
)
取一个较小的值(注意:
K(x,z)
K
(
x
,
z
)
是内积,大于0)。
当然核函数还有其他的表现形式,那么如何判定一个选择的核函数是否有效呢?
2.3核函数有效性判定
我们通常假设K是一个合理的核函数,考虑对于一个有限集 m=x(1),...,x(m) m = x ( 1 ) , . . . , x ( m ) ,再定义一个 m∗m m ∗ m 的矩阵K使得 Ki,j=K(x(i),x(j)) K i , j = K ( x ( i ) , x ( j ) ) ,将K叫做核矩阵。则有:
3.软间隔SVM
注意,我们之前讨论的都是建立在样例线性可分的假设下,当样例线性不可分时,我们可以尝试使用核函数将原始特征映射到更高维度的新空间中,再将它线性划分。但是,如果映射后的特征我们也不能保证100%可分,那怎么办呢?这就需要我们将模型调整,保证在不可分的情况下,我们也能找到分割超平面。
先看这张图:
这时候我们就要给原来的模型加一些条件,即允许这些个别离群点违背限制条件(函数间隔大于),设计的新模型如图:
平白无故的放宽了条件,总是要讨回一点债的。因此我们将目标函数进行了调整,用来对离群点进行惩罚,目标函数后面加上的 C∑mi=1ξi C ∑ i = 1 m ξ i ,表示离群点越多,目标函数值越大,而我们要求的是尽可能小的目标函数值,也就是说我在选择超平面时,要选择最合适的超平面使离群点的数目最小,这样目标函数的值就会相对离群点多的时候更小。C是离群点的权重,C越大表明离群点对目标函数影响越大,所以我们不希望超平面分离出更多的离群点。
这个模型是原始问题,是一个凸优化问题,因而在关于(w,b, ξ ξ )的解释存在的。可以证明w的解释唯一的,但b的解不唯一,而是在一个区间。模型修改后,对应的拉格朗日公式为:
4.总结
下一章我们将会介绍坐标上升,并采用SMO优化算法来解决我们一直悬而未解的问题——对偶函数最后的优化问题:
4万+

被折叠的 条评论
为什么被折叠?



