引言
空间就是一个集合
正常情况下,感知机算法和支持向量机都是默认数据是线性可分的,这类问题叫做线性分类问题。当数据线性不可分的时候,但高维可分(多看书),我们仍然想用线性分类的方法去解决,这个时候就需要用非线性变换将非线性问题转换成线性问题。
于是,我们得到求解非线性分类问题的一个思路:
- 用一个非线性变换,将数据特征从原空间映射到一个新的空间,这里的原空间是低维的输入空间(欧式空间或离散集合),新的空间是高维的特征空间(希尔伯特空间,完备的内积空间)
- 在新的空间上使用线性分类算法求解
1 各空间介绍
-
线性空间:只定义了加法和数乘,空间里的一个元素就可以由其他元素线性表出,这就是线性空间。
-
度量空间:定义了距离的线性空间。我们可以按照我们的需要或者具体问题的具体情况,用不同的方式来定义距离。距离说白了就是两个点(元素)对应一个数,x, y是集合中的两个元素,那么x, y的距离d(x,y)是由x,y这两个元素决定的一个数。
事实上,有很多种不同距离的定义方式,例如闵可夫斯基距离,马氏距离,切比雪夫距离,曼哈顿距离等等,我们最常用的两点之间的连线叫做欧式距离。
在定义距离时,有三条公理必须遵守,这三条公理来源于我们对距离的常识:
-
(1)非负性、同一性:d(x,y)≥0,当且仅当x=y时取等号, 即距离不能为负;
-
(2)对称性:d(x,y)=d(y,x);
-
(3)三角不等式:d(x,z)≤d(x,y)+d(y,z)。
如果可以满足以上三条,那么任何定义距离的方式都是OK的。
一个定义了距离的线性空间称为度量空间
-
-
赋范空间:度量空间加了范数的限制,定义了范数的空间。定义范数和距离一样也要满足一些要求:
-
(1)非负性:||x||≥0;
-
(2)||ax||=|a| ||x||,积里面的数乘可以提出来;
-
(3)三角不等式:||x||+||y||≥||x+y||。
如果我们定义了范数,可以在这基础上定义距离:d(x,y)=||x-y||。根据范数的三条性质,我们可以证明我们这样定义的距离也满足距离的定义。也就是说范数其实是一个更加具体的概念,有了范数一定能利用范数定义距离,但是有距离不能定义范数。
-
-
线性赋范空间:就是定义了加法、数乘和范数的空间。
-
巴拿赫空间:完备的赋范空间。
完备指如果一个空间是完备的,那么该空间中的任何一个柯西序列都收敛在该空间之内。
柯西序列指随着序数增加,值之间的距离越来越小的序列。换一种说法是,柯西序列可以在去掉有限个值之后,使任意两个值之间的距离都小于任意给定正常数(极限)。
例如:有理数空间Q是不完备的。
总的来说,完备空间就是指就是在一个空间上我们定义了极限,但是不论你怎么取极限,它的极限的值都不会跑出这个空间,那么这个空间就是完备空间。另外,定义完备空间之前,要先有距离的概念。所以完备空间,其实也是完备度量空间(距离、范数、完备)。
-
内积空间:定义了内积的空间就是内积空间。内积就是我们所说的点乘、标积,它的定义方式也不是唯一的,但如同距离范数的定义一样,内积的定义也要满足某些条件,不能随便定义。
只有定义了内积,才会有夹角的概念,才会有正交的概念,另外内积也可以定义范数,也就是说内积是比范数更具体的一个概念。
欧式空间(三维空间)和希尔伯特空间(高维空间)都是内积空间的一种。希尔伯特空间的元素是函数,因此可以看成是无穷维度的向量。SVM(支持向量机)就是通过核函数将低维数据从欧式空间中映射到了高维的希尔伯特空间中。
-
欧式空间:定义了内积的有限维实线性空间。我们使用的距离、长度、夹角等计算都是在欧式空间中定义。该空间定义了加、数乘、范数、内积。
8. 希尔伯特空间(高维空间):完备的内积空间。该完备要求是为了取极限时,极限值不会跑出自己的空间。希尔伯特空间的元素是函数,因为一个函数可以视为一个无穷维的向量,即依据傅里叶变换或者泰勒展开,我们便能明白这个空间的基底是一组无限多的函数,因此可以看成是无穷维度的向量。
9. 再生核希尔伯特空间:核技巧将不能线性可分的数据集映射到高维空间,使其变得线性可分,再生核希尔伯特空间和这个核技巧的关系是:我们定义了一种核函数(例如径向基函数),就定义了一个希尔伯特空间,而这个核函数的再生性使得我们可以不去计算高维特征空间中的內积,而只需计算核函数,降低了大量的计算量。
2 数据升维
对于二维样本空间中任意点(x,y),通过选择线性核函数k(x,y),能够将二维空间映射到三维空间,
3 如何选择核函数
首先,常用的核函数有:线性核函数、多项式核函数、(高斯)RBF径向基核函数,sigmoid核等。在 SVM 中,选择线性核函数和径向基核函数时,需要对数据进行归一化处理。一般性建议,高维数据(数据维度大,是或者可以视为线性可分)的情况下,选择线性核函数,不行换特征,再不行换高斯核。维度少的时候,如果可以的话提取特征使用线性核函数,不行再换高斯核函数,因为线性核函数最简单最快,高斯核可捕捉非线性特征,且需要调整的参数也少,除了速度之外的性能一般都可以达到或优于线性核的效果,就是复杂而慢。多项式核的参数比高斯核的多,参数越多模型越复杂;高斯核的输出值域在 0-1之间,计算方便;多项式核的输出值域在 0-inf 在某些情况下有更好的表现。