我们之前遇到的分类问题都是线性可分的,在一个空间中很容易找到一个超平面对其进行分类,但是大多数的时候我们可能会遇到如下图这样的的数据分布:
假设以上数据是2维,那我们的超平面用一条直线是无法进行分类的,因为无论你用那条直线都不好将上述数据进行划分,这就是线性不可分。那线性的不可分,非线性的了?我们发现如果我们用曲线来将上述数据分类还是可以做到的,我们就用一个简单的曲线方程进行分类:
如果数据分布比较复杂,我们也是可以用复杂的多项式曲线来进行拟合,所以可以用这样的超曲面的来解决,那我们之前费了很大力气推导的数学公式是不是要重新来过?其实不用的,数学上是可以进行灵活变换,我们举一个例子:
这里有必要说明一点的是,曲线和直线不同的是变化率为常数(即对变量求偏导时为常数),对于多元函数也是同样的道理,这样我们仍然可以套用原来的数学模型进行运算,通过一个非线性变换将输入空间对应于一个特征空间,使得输入空间的超曲面模型对应于特征空间中的超平面模型。
现在来数学推导一下:
我们发现一个问题,我们通过映射函数求得内积的核函数是依赖映射函数的,为此我们还需要构造一个映射函数,这就有点坑爹了,映射函数这么多,又不唯一,我们是否可以直接判断一个给定的K(x,z)是不是核函数?又或者我们需要知道函数K(x,z)满足什么条件才能成为核函数?
核函数的充要条件是该核函数是正定核函数:
关于这里的数学证明需要一定的数学专业知识,不过为了清晰明了的说明,我打算后面专门写比较体系的数学过程来证明这个,这里就不做过多叙述。
我们常用的核函数有很多,有高斯核函数,多项式,字符串核函数…等等。
由于我们推导的数学模型,仅存在一步将输入参数进行核函数转换,所以依然可以延用之前的算法,这里我们基本将整个支持向量机的原理介绍一遍,后面的博客我会写其他机器学习方面的算法,并将数学证明理解和算法用不同的文章分开写,好啦基本完成,有错误希望大佬指正。
领取专属 10元无门槛券
私享最新 技术干货