Kernel
Kernel Method
前言
参考书籍:
[1]Kernel Methods for Pattern Analysis
[2]learning with Kernels:Support Vector Machines, Regularization, Optimization and Beyond
一、General introduction to kernel methods
1.The Basic Idea
①mapping
φ将二维空间映射到三维空间,这里面有一个映射特点:
z
1
z_{1}
z1和
z
3
z_{3}
z3恒为正,
z
2
z_{2}
z2要根据
x
1
x_{1}
x1和
x
2
x_{2}
x2乘积的值而定,因此可以看到feature space Η坐标全在右上象限上。
在original space x上,想要分开两个类,就需要使用椭圆:
x
1
2
a
2
+
x
2
2
b
2
=
1
\frac{x_{1}^{2}}{a^{2}}+\frac{x_{2}^{ 2}}{b^{2}}=1
a2x12+b2x22=1,但是在feature space H中只要使用平面就可以分离两个类。
(注:
z
3
z_{3}
z3下的分母应该是
b
2
b^{2}
b2)
通过上面式子转换,椭圆式就变成了一个平面方程,本来在原始空间中要用一个非线性的椭圆,但是在映射空间中只要使用一个线性的平面就可以实现类别分离。
②kernel function
利用kernel function将原始空间上的点投影到映射空间,这里面的映射函数
φ
(
x
1
,
x
2
)
=
(
x
1
2
,
2
x
1
x
2
,
x
2
2
)
=
(
z
1
,
z
2
,
z
3
)
φ(x_{1},x_{2})=(x_{1}^{2},\sqrt{2}x_{1}x_{2},x_{2}^{2})=(z_{1},z_{2},z_{3})
φ(x1,x2)=(x12,2x1x2,x22)=(z1,z2,z3)
然后对投影后的点进行内积
<
φ
(
x
1
,
x
2
)
,
φ
(
x
1
′
,
x
2
′
)
>
=
(
<
x
,
x
′
>
)
2
=
k
(
x
,
x
′
)
<φ(x_{1},x_{2}),φ(x_{1}^{'},x_{2}^{'})>=(<x,x^{'}>)^{2}=k(x,x^{'})
<φ(x1,x2),φ(x1′,x2′)>=(<x,x′>)2=k(x,x′)(注:具体过程如上图所示),等式后面两项就是我们将要定义的kernel function。
在算映射空间的内积时,只要知道kernel function,φ函数有没有都不影响求映射空间的内积。
③process
♦Kernel Methods work by
☞embedding data in a vector space(with more high dimensionality):将我们的数据送入一个新的向量空间上面,一般希望这个空间具有比较高的纬度。
☞looking for(linear)relations in such space:要想办法在这个空间上找到一个线性关系,将它们分开。
♦If map is chosen suitably,complex relations can be simplified,and easily detected:如果选择到一个比较适当的空间,复杂的关系就会变得比较简单,而且容易被发现。
♦Much of the geometry of the data in the embedding space(relative position)is contained in all pairwise inner products
♦In many cases,inner product in the embedding space is very cheap to compute
内积可以帮我们决定高维空间的几何性质。几何性质:距离和角度。
③Distance in the Feature Space
在映射空间中两点的距离平方可以如下图中表示的那样
这样的话,两点之间的距离就转化成内积:
<
φ
(
x
)
,
φ
(
x
)
>
−
2
<
φ
(
x
)
,
φ
(
x
′
)
>
+
<
φ
(
x
′
)
,
φ
(
x
′
)
>
=
k
(
x
,
x
)
−
2
k
(
x
,
x
′
)
+
k
(
x
′
,
x
′
)
<φ(x),φ(x)>-2<φ(x),φ(x^{'})>+<φ(x^{'}),φ(x^{'})>=k(x,x)-2k(x,x^{'})+k(x^{'},x^{'})
<φ(x),φ(x)>−2<φ(x),φ(x′)>+<φ(x′),φ(x′)>=k(x,x)−2k(x,x′)+k(x′,x′)
只要知道Kernel Function,我们就能得到两个点之间的距离,而并不需要去关心
φ
(
x
)
φ(x)
φ(x)长什么样子。
④Angle in the Feature Space
在映射空间中两点的角度可以如下图中表示的那样
因此只要知道Kernel Function,就能知道两点在空间中的角度。
⑤总结
映射空间中的距离和角度都可以用内积表示,
φ
(
x
)
φ(x)
φ(x)到底长什么样子其实就变得对我们来说不重要了。
2.Inner Product Matrix(Gram Matrix/Kernel Matrix)
根据第一节的思想,n个点之间的内积就可以有一个内积矩阵:
①A Simple Recognition Algorithm
y
i
y_{i}
yi是标签,只有两个类别+1和-1,然后利用
φ
φ
φ将x映射到更高维空间
φ
(
x
)
φ(x)
φ(x),下面就是投影之后的空间
然后算中心点,也就是当前类别之后求平均得到
c
+
c_{+}
c+以及
c
−
c_{-}
c−
现在我们主要的想法就是找一条线将两个类分开,先找出两个中心点向量:
w
=
c
+
−
c
−
w=c_{+}-c_{-}
w=c+−c−
然后从中心点出发,找出垂直平分w的点
c
=
1
2
(
c
+
+
c
−
)
c=\frac{1}{2}(c_{+}+c_{-})
c=21(c++c−),也就是下方蓝色线和红色线的交点
现在当测试点进入的时候,先进行的就是feature mapping,之后就是算角度,判断标签y是+1还是-1
两个向量之间的内积要小于零,这样就能保证角度是在0-180°之间,当角度小于90°的时候,就表明表示是+1,90°-180°表明y是-1
利用sgn将上面的关系转换成关系式(sgn取内积的正负号)
接下来就是计算上面的式子:
y
=
s
g
n
(
<
φ
(
x
)
−
c
,
w
>
)
y=sgn(<φ(x)-c,w>)
y=sgn(<φ(x)−c,w>)
第一个方法:已知φ
直接将所有的sample送到高维空间中去,直接计算。
第二种方法:不知道φ,知道kernel function
将表达是化成内积形式,这样就不需要feature mapping。如下所示:
②kernel function and feature mapping
因此就形成下面几个问题:
●只要知道kernel function,φ就不是必须的
●只要知道kernel function就可以达到计算需求
●有限半正定的kernel matrix可以使用
●k和φ是一一对应的
●知道kernel function 可以构建feature space
One definition:
Finitely positive semi-definite functions
One theorem:
Characterization of kernels
③一些常用的核函数
二、Dual Representation
Dual Representation主要求一个线性函数表达式:
f
(
x
)
=
w
T
φ
(
x
)
+
b
f(x)=w^{T}φ(x)+b
f(x)=wTφ(x)+b
因此需要求解
w
T
w^{T}
wT和
b
b
b,在我们上一个例子中,对w的求解就是相当于求
φ
(
x
i
)
φ(x_{i})
φ(xi)的线性组合,系数
α
i
α_{i}
αi的数量和样本数量有关,假设w是100维的,α的值是有可能大于这个值的也有可能小于这个值。
上面的概念可以总结成下面的两个式子
最后也可以化成内积的表达形式,有利于减少计算复杂度
注意w和α维度的区别
一般投影流程
三、PCA and KPCA
具有降噪功能,除去一些对数据结构影响很小的特征
1.Principal Component Analysis (PCA)
对下面的数据进行投影,投影到蓝色的线的variance是最大的
这里需要用到投影的知识:
寻找投影坐标的过程,先找到一个投影最大的轴
前提条件:均值为零
现在就是优化找出v,使用拉格朗日乘法
这里可以看出v和λ一个是特征值一个是特征向量
因此λ最大就可以得到
a
r
g
m
a
x
v
T
C
v
argmax v^{T}Cv
argmaxvTCv就是最大
由于直接是特征向量和特征值,因此它们相互正交,很好的满足了轴之间的对称垂直性。
2.Kernel Principal Component Analysis (KPCA)
先进行维度投影然后在使用PCA,直接投影计算是没有办法进行的,因为我们是不知道φ(feature mapping)
接下来就需要将C变成与kernel function有关的式子
先观察kernel matrix
四、LDA and GDA
这里面还是需要用到投影的知识
1.Linear Discriminant Analysis(LDA)
了解LDA,要先知道LDA和PCA的区别,假设有两个群
①PCA:找到两个群投影的最大variance,也就是投影之后散的最开的,但是如果作分类就会发现始终有个地方是重叠的,无法区分类别。
②LDA:LDA可以解决PCA遗留的缺陷,也就是投影之后两个群之间的mean分隔最大。而且每个群自身的variance越集中越好。(这里面可以理解成类别,类别之间尽量保持不交叉)
LDA具备的属性
符号定义
将所有的样本投射到方向v,每一个类有不一样的投影mean,也就是说要分别计算
●Linear Discriminant Analysis-Between-class scatter matrix
每个类别之间的mean相减平方和
这里面的转换过程和KPCA相似
上面的式子中已经计算了
m
i
−
m
j
m_{i}-m_{j}
mi−mj,后面就不会计算了,但是在一些资料里面会重复计算,具体如下面所示,但是两个是一样的。
由上式化简之后就只要计算下面的那个式子
本来需要考虑下面三个mean之间的距离尽可能大
经过转换之后可以化成下面的关系
这就是组间分散矩阵
●Linear Discriminant Analysis-Within-class scatter matrix
这里就是希望组内mean越小越好,说明类内是比较集中的,对象就变成了样本实例,而不是上面样本空间
●优化目标:最大化组间距离之和,最小化组内距离之和
这里面用了一个思想,固定分母,优化分子,最后化成求广义逆
v的计算式如下是为了保证
v
T
S
w
L
D
A
V
=
1
v^{T}S_{w}^{LDA}V=1
vTSwLDAV=1
2.Generalized Discriminant Analysis(GDA)
符号定义
为了方便,前提假设样本的均值是零,类间距离和LDA相同,但是类内距离计算不同,含义投影之后的点越往中心集中越好,相当于每个点都减去了
m
0
m_{0}
m0,这样所有点都要往中心靠齐。
计算过程:
将1化成B,只留外面一个
1
N
\frac{1}{N}
N1便于后面化简消去
五、Hard-margin and Soft-margin SVMs
SVM中的一个比较重要的思想,将优化问题转成拉格朗日问题
除此之外还有一个比较重要的理论:KKT
这里面有一个优化方向target,三个优化条件constrain
现在假设的条件是在
x
∗
x^{*}
x∗上取得
m
i
n
f
(
x
)
minf(x)
minf(x),因此
g
1
g_{1}
g1和
g
2
g_{2}
g2取值是零,而
g
3
g_{3}
g3无法取到零,只能取小于零的数,因此只有
g
1
g_{1}
g1和
g
2
g_{2}
g2是有效的(active),
g
3
g_{3}
g3无效,由下图可以看出
f
(
x
)
f(x)
f(x)的导数可以由
g
1
g_{1}
g1和
g
2
g_{2}
g2的导数表示,因此就有如下表达式:
▽
f
(
x
)
=
α
1
(
−
▽
g
1
)
+
α
2
▽
g
2
▽f(x)=α_{1}(-▽g_{1})+α_{2}▽g_{2}
▽f(x)=α1(−▽g1)+α2▽g2
根据方向
α
1
、
α
2
α_{1}、α_{2}
α1、α2需要大于零,
α
3
α_{3}
α3等于零
可以观察到只有不等式才有限制,而且不等式要化成小于等于零的情况,等式系数是没有限制的
1.Hard-margin SVMs
首先考虑二分类问题
样本散点图如下所示,因此需要找一条线分开两类,这条线的选择十分多,因此需要选择最中间的那条,也就是两个类之间最大的那个距离
w
T
x
+
b
=
−
1
/
+
1
w^{T}x+b=-1/+1
wTx+b=−1/+1其中这个-1/+1是可以任意取值的,如果取-2/+2的话,两边同时除2之后是等价的,我们希望上面的值带入之后都是大于+1的数,下方的值带入是小于-1的数
计算边缘距离
可以将上面的式子化成拉格朗日乘子
这一步将
W
(
α
)
W(α)
W(α)矩阵化
之后优化目标就变成下式
从下图中可以观察到,在虚线上的α是大于零的,其余的都是等于零的,因此在训练的过程中,只有边缘点是起作用的,其他点都没有作用
计算b的过程,其实就是当α大于零的时候
2.Soft-margin SVMs
problem one:当类无法用直线或者平面分开的时候,可以容忍在分割的时候存在一些误差,如下面所示的两个类,它们是无法完全分开的。
problem two:过拟合问题
由于上面两个问题,因此需要对边间条件进行放松,允许存在误差分类。
C增加,就会导致ξ相对会减小,这样的话边界就相当于减小了,因为容许误差的范围变小了。
上面的式子化成拉格朗日乘式,加入了两个系数α和β,分别对w、b、ξ求导,可以得到下面的式子。可以发现C的值和α、β是有关系的。
如果进行了空间映射,就可以表示成下面的式子:
得到w的L2-norm以及
x
i
x_{i}
xi的投影坐标
将上面求出的值,代入优化目标函数中
化简之后就得到下面的式子
有了优化目标,就可以得到一个最优解,之后就是将新的sample代入进去判断是来自那个类的以及具体在哪个区域,这里主要就是根据KKT条件进行分析。
根据上面可以得到两个式子,然后由这两个式子进行分析(注意这里面是建立在α、β、C≥0的条件):
①当α=0时,这时候β就是等于C,因此ξ就是等于0,计算表达式不为零,因此只能在界限两端;
②当0<α<C时,这样β就不为零,ξ就必须等于零,而且计算表达式要等于零,因此点是在界限上面的;
③当a=C时,β就是为零,因此ξ可取任意值,而表达式必须为零,所有点是在界限之间。
多分类SVM