1.内积(点积)
内积,又叫做点积,数量积或标量积。假设存在两个向量 a = [ a 1 , a 2 , . . . , a n ] a=[a_{1}, a_{2}, ..., a_{n}] a=[a1,a2,...,an]和 b = [ b 1 , b 2 , . . . , b n ] b=[b_{1},b_{2},...,b_{n}] b=[b1,b2,...,bn],内积的计算方法为:
a ⋅ b = a 1 b 1 + a 2 b 2 + ⋯ + a n b n a\cdot b= a_{1}b_{1}+a_{2}b_{2}+\cdots +a_{n}b_{n} a⋅b=a1b1+a2b2+⋯+anbn
2.核方法 1
核方法的主要思想是基于这样一个假设:“在低维空间中不能线性分割的点集,通过转化为高维空间中的点集时,很有可能变为线性可分的” ,例如有两类数据,一类为 x < a ∪ x > b x<a\cup x>b x<a∪x>b;另一部分为 a < x < b a<x<b a<x<b。要想在一维空间上线性分开是不可能的。然而我们可以通过F(x)=(x-a)(x-b)把一维空间上的点转化到二维空间上,这样就可以划分两类数据 F ( x ) > 0 F(x)>0 F(x)>0, F ( x ) < 0 F(x)<0 F(x)<0;从而实现线性分割。如下图所示:
定义一个核函数 K ( x 1 , x 2 ) = ⟨ ϕ ( x 1 ) , ϕ ( x 2 ) ⟩ K(x_{1},x_{2})=\left \langle \phi (x_{1}),\phi (x_{2})\right \rangle K(x1,x2)=⟨ϕ(x1),ϕ(x2)⟩, 其中 x 1 x_{1} x1和 x 2 x_{2} x2是低维度空间中的点(在这里可以是标量,也可以是向量), ϕ ( x i ) \phi (x_{i}) ϕ(xi)是低维度空间的点转化为高维度空间中的点的表示, ⟨ , ⟩ \left \langle ,\right \rangle ⟨,⟩表示向量的内积。这里核函数的表达方式一般都不会显式地写为内积的形式,即我们不关心高维度空间的形式。
这里有个很重要的问题,就是我们为什么要关心内积。一般的我们可以把分类或回归问题分为两类:参数学习和基于实例的学习。参数学习就是通过一堆训练数据把模型的参数学习出来,训练完成之后训练数据就没有用了,新数据使用已经训练好的模型进行预测,例如人工神经网络。而基于实例的学习(又叫基于内存的学习)是在预测的时候会使用训练数据,例如KNN算法,会计算新样本与训练样本的相似度。计算相似度一般通过向量的内积来表示。从这里可以看出,核方法不是万能的,它一般只针对基于实例的学习。
3.核方法的定义和例子2
给定一个映射关系 ϕ \phi ϕ,我们定义相应的核函数为:
K ( x , y ) = ϕ ( x ) T ϕ ( y ) K(x,y)=\phi (x)^{T}\phi (y) K(x,y)=ϕ(x)Tϕ(y)
则内积运算 < ϕ ( x ) , ϕ ( y ) > <\phi (x), \phi (y)> <ϕ(x),ϕ(y)>可以用核 K ( x , y ) K(x,y) K(x,y)来表示。
例如,给定两个 n n n维向量 x x x和 y y y, x , y ∈ R n x,y\in \mathbb{R}^{n} x,y∈R