如果您还未了解 线性向量机,建议首先阅读
《支持向量机 一:线性支持向量机》
一、为什么要用非线性支持向量机?
线性支持向量机不香吗?为什么还要用非线性支持向量机?
线性支持向量机香是香,但并不适合大多数数据集啊。比如下图这个数据,使用线性SVM就无法划分。
非线性SVM的话便可以解决这个问题,因为非线性SVM通过将低维的数据集变换成高位的数据集,从而使线性不可分的数据可分。上图的数据经变换成下图的方式,数据便可分了。
二、低维怎么到高维的呢?— 核函数介绍
对于线性不可分数据集D={(x1,y1),(x2,y2),...,(xn,yn)},其中xi是第i个实例,yi是xi的类标签,并且有yi∈{−1,1}。我们需要通过变换将数据集D转换到较高的维度,核函数就是一个很好的方法。我们假设原数据集的空间为X,我们的数据集一般可以度量并且可以计算内积,但我们的数据集不能存在极限,所以X属于欧式空间。
2.1 核函数是什么
我们来看看核函数是什么,我们希望将输入空间X(欧式空间)映射到特征空间H(希尔伯特空间),如果存在一个从X到H的映射ϕ(x):X→H使得对所有 xi,xj∈X,函数K(xi,xj)满足条件K(xi,xj)=ϕ(xi).ϕ(xj)则称K(xi,xj)为核函数,ϕ(x)为映射函数,式中ϕ(xi).ϕ(xj)为ϕ(xi)与ϕ(xj)的内积。
2.2 简单介绍一下 欧式空间 与 希尔伯特空间
如果你是入门者,你可能感叹“天哪!什么跟什么啊!这就是核函数啦?什么是欧式空间?什么是希尔伯特空间?”简单说一句,以便你理解欧式空间与希尔伯特空间。
欧式空间里的元素是可以计算距离的,并且欧式空间中的元素之间的角度也是可以通过内积计算的。如下图,v1,v2的距离是可度量的,并且通过内积可以计算其夹角。“可度量,有内积?这就够了吗?”不够。考虑一下我们日常使用的数据,首先你会提出极限值,因为极限值是无法度量的,你或许会用一个很大的值代表无限,但是这个很大的值并不是无限的度量。另外你的数据中某个实例肯定是有限维的,就比如你研究你和某人合不合适,你会分析多少个方面(维度呢),但无论多少个都不会是无限个,即使你子子孙孙无穷尽也也不会子子孙孙去分析无限个。再比如,虽然说大数据时代数据特征特别高,但是也是有限度的,不然电脑和硬盘存不下,而且你也会对这些特征进行特征筛选获取最主要的特征。因此除了可度量,有内积,欧式空间还是不考虑极限,维度有限的。最后一点就是欧式空间属于实数域。
希尔伯特空间又是什么?“希尔伯特空间=欧式空间+维度无限+可定义极限”,希尔伯特空间是在欧式空间的基础上加了完备性,也就是说希尔伯特空间除了可度量,有内积之外,其内的元素存在无极限的情况,而且允许维度无限维,并且属于复数域。也因为希尔伯特空间允许无限维度和极限值,所以希尔伯特空间往往是更高维的空间,甚至是无穷维的空间。目前希尔伯特空间多运用在泛函分析和量子力学中。
三、核函数如何与SVM产生联系
我在《支持向量机:线性支持向量机》中已经介绍了线性支持向量机最终要解决的对偶问题,即:mina 21i=1∑Nj=1∑Naiajyiyj(xi.xj)−i=1∑Nai ... (1) s.t. i=1∑Naiyi=0, i=1,2,.,N ... (2) 0≤ai≤C, i=1,2,.,N ... (3)非线性支持向量机便是使用K(xi,xj)代替式(1)中的(xi,xj)。不要误会,虽然我们这里是从式(1)开始替换,但其实从数据集D开始将xi映射到ϕ(xi)的,只不过最后得到式子与从式(1)开始替换一样。并且从式(1)替换还有另外一个原因,就是找到一个映射ϕ(x):X→H是很难的操作,所以研究人员往往先确定K(xi,xj)再从K(xi,xj)=ϕ(xi).ϕ(xj)反推得到ϕ(x)。因此我们得到了非线性支持向量机最终要解决的对偶问题,即:mina 21i=1∑Nj=1∑NaiajyiyjK(xi.xj)−i=1∑Nai ... (4) s.t. i=1∑Naiyi=0, i=1,2,.,N ... (5) 0≤ai≤C, i=1,2,.,N ... (6)
四、非线性SVM的 分离超平面 与 目标决策函数
首先,我们来回顾以下线性SVM的分离超平面:i=1∑Nai∗yi(xi⋅x)+b∗=0 ... (7)以及线性SVM分类决策函数:f(x)=sign(i=1∑Nai∗yi(xi⋅x)+b∗) ... (8)
并且在线性SVM中,我们确定参数b的规则是b∗=yj−i=1∑Nai∗yi(xi.xj) ... (9)式(7)(8)(9)的获得已在《支持向量机:线性支持向量机》中解释,想了解的请移步以下。
根据式(7)(8)(9),我们来求解以下非线性SVM的分离超平面和分类决策函数。
首先,通过SMO算法我们求得式(4)(5)(6)的最优解a=(a1∗,a2∗,...,aN∗)T其次,我们从a∗中选择一个分量aj∗(要求0≤aj∗≤C,这也表明b∗不唯一),根据式(9)有b∗=yj−i=1∑Nai∗yiK(xi,x)于是,我们求得分离超平面:i=1∑Nai∗yiK(xi,x)+b∗=0还有分类决策函数:f(x)=sign(i=1∑Nai∗yiK(xi,x)+b∗)
五、介绍几个常用的核函数
随便写一个K(xi,xj)就是核函数了吗?当然不是,K(xI,xj)必须满足一定的条件才会是核函数,而这个条件就是核函数必须是正定核函数。我们对什么是正定核不做多余的解释,但是我们可以介绍两个成功的核函数。
- 多项式核函数K(xi,x)=(xi⋅x+1)p其对应的决策函数f(x)=sign(i=0∑Nai∗yi(xi⋅x+1)p+b∗)
- 高斯核函数K(xi,x)=exp(−2σ2∣∣xi−x∣∣2)其对应的决策函数f(x)=sign(i=0∑Nai∗yiexp(−2σ2∣∣xi−x∣∣2))