支持向量机 二 :非线性支持向量机

如果您还未了解 线性向量机,建议首先阅读

支持向量机 一:线性支持向量机

一、为什么要用非线性支持向量机?

线性支持向量机不香吗?为什么还要用非线性支持向量机?
线性支持向量机香是香,但并不适合大多数数据集啊。比如下图这个数据,使用线性SVM就无法划分。
非线性SVM的话便可以解决这个问题,因为非线性SVM通过将低维的数据集变换成高位的数据集,从而使线性不可分的数据可分。上图的数据经变换成下图的方式,数据便可分了。
在这里插入图片描述

二、低维怎么到高维的呢?— 核函数介绍

对于线性不可分数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\} D={(x1,y1),(x2,y2),...,(xn,yn)},其中 x i x_i xi是第 i i i个实例, y i y_i yi x i x_i xi的类标签,并且有 y i ∈ { − 1 , 1 } y_i∈\{-1,1\} yi{1,1}。我们需要通过变换将数据集 D D D转换到较高的维度,核函数就是一个很好的方法。我们假设原数据集的空间为 X \Chi X,我们的数据集一般可以度量并且可以计算内积,但我们的数据集不能存在极限,所以 X \Chi X属于欧式空间。

2.1 核函数是什么

我们来看看核函数是什么,我们希望将输入空间 X \Chi X(欧式空间)映射到特征空间 H \Eta H(希尔伯特空间),如果存在一个从 X \Chi X H \Eta H的映射 ϕ ( x ) : X → H \phi(x):\Chi\rarr\Eta ϕ(x):XH使得对所有 x i , x j ∈ X x_i,x_j∈\Chi xi,xjX,函数 K ( x i , x j ) K(x_i,x_j) K(xi,xj)满足条件 K ( x i , x j ) = ϕ ( x i ) . ϕ ( x j ) K(x_i,x_j)=\phi(x_i).\phi(x_j) K(xi,xj)=ϕ(xi).ϕ(xj)则称 K ( x i , x j ) K(x_i,x_j) K(xi,xj)为核函数, ϕ ( x ) \phi(x) ϕ(x)为映射函数,式中 ϕ ( x i ) . ϕ ( x j ) \phi(x_i).\phi(x_j) ϕ(xi).ϕ(xj) ϕ ( x i ) \phi(x_i) ϕ(xi) ϕ ( x j ) \phi(x_j) ϕ(xj)的内积。

2.2 简单介绍一下 欧式空间 与 希尔伯特空间

如果你是入门者,你可能感叹“天哪!什么跟什么啊!这就是核函数啦?什么是欧式空间?什么是希尔伯特空间?”简单说一句,以便你理解欧式空间与希尔伯特空间。

欧式空间里的元素是可以计算距离的,并且欧式空间中的元素之间的角度也是可以通过内积计算的。如下图, v 1 , v 2 v_1,v_2 v1,v2的距离是可度量的,并且通过内积可以计算其夹角。“可度量,有内积?这就够了吗?”不够。考虑一下我们日常使用的数据,首先你会提出极限值,因为极限值是无法度量的,你或许会用一个很大的值代表无限,但是这个很大的值并不是无限的度量。另外你的数据中某个实例肯定是有限维的,就比如你研究你和某人合不合适,你会分析多少个方面(维度呢),但无论多少个都不会是无限个,即使你子子孙孙无穷尽也也不会子子孙孙去分析无限个。再比如,虽然说大数据时代数据特征特别高,但是也是有限度的,不然电脑和硬盘存不下,而且你也会对这些特征进行特征筛选获取最主要的特征。因此除了可度量,有内积,欧式空间还是不考虑极限,维度有限的。最后一点就是欧式空间属于实数域
在这里插入图片描述

希尔伯特空间又是什么?“希尔伯特空间=欧式空间+维度无限+可定义极限”,希尔伯特空间是在欧式空间的基础上加了完备性,也就是说希尔伯特空间除了可度量,有内积之外,其内的元素存在无极限的情况,而且允许维度无限维,并且属于复数域。也因为希尔伯特空间允许无限维度和极限值,所以希尔伯特空间往往是更高维的空间,甚至是无穷维的空间。目前希尔伯特空间多运用在泛函分析和量子力学中。

三、核函数如何与SVM产生联系

我在《支持向量机:线性支持向量机》中已经介绍了线性支持向量机最终要解决的对偶问题,即: m i n a    1 2 ∑ i = 1 N ∑ j = 1 N a i a j y i y j ( x i . x j ) − ∑ i = 1 N a i    . . .    ( 1 )   s . t .    ∑ i = 1 N a i y i = 0 ,       i = 1 , 2 , . , N    . . .    ( 2 )   0 ≤ a i ≤ C ,      i = 1 , 2 , . , N    . . .    ( 3 ) min_a\ \ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^Na_ia_jy_iy_j(x_i.x_j)-\sum_{i=1}^Na_i \ \ ... \ \ (1) \\\ s.t.\ \ \sum_{i=1}^Na_iy_i=0, \ \ \ \ \ i=1,2,.,N \ \ ...\ \ (2)\\\ 0\leq a_i\leq C,\ \ \ \ i=1,2,.,N\ \ ...\ \ (3) mina  21i=1Nj=1Naiajyiyj(xi.xj)i=1Nai  ...  (1) s.t.  i=1Naiyi=0,     i=1,2,.,N  ...  (2) 0aiC,    i=1,2,.,N  ...  (3)非线性支持向量机便是使用 K ( x i , x j ) K(x_i,x_j) K(xi,xj)代替式(1)中的 ( x i , x j ) (x_i,x_j) (xi,xj)。不要误会,虽然我们这里是从式(1)开始替换,但其实从数据集 D D D开始将 x i x_i xi映射到 ϕ ( x i ) \phi(x_i) ϕ(xi)的,只不过最后得到式子与从式(1)开始替换一样。并且从式(1)替换还有另外一个原因,就是找到一个映射 ϕ ( x ) : X → H \phi(x):\Chi\rarr\Eta ϕ(x):XH是很难的操作,所以研究人员往往先确定 K ( x i , x j ) K(x_i,x_j) K(xi,xj)再从 K ( x i , x j ) = ϕ ( x i ) . ϕ ( x j ) K(x_i,x_j)=\phi(x_i).\phi(x_j) K(xi,xj)=ϕ(xi).ϕ(xj)反推得到 ϕ ( x ) \phi(x) ϕ(x)。因此我们得到了非线性支持向量机最终要解决的对偶问题,即: m i n a    1 2 ∑ i = 1 N ∑ j = 1 N a i a j y i y j K ( x i . x j ) − ∑ i = 1 N a i    . . .    ( 4 )   s . t .    ∑ i = 1 N a i y i = 0 ,       i = 1 , 2 , . , N    . . .    ( 5 )   0 ≤ a i ≤ C ,      i = 1 , 2 , . , N    . . .    ( 6 ) min_a\ \ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^Na_ia_jy_iy_jK(x_i.x_j)-\sum_{i=1}^Na_i \ \ ... \ \ (4) \\\ s.t.\ \ \sum_{i=1}^Na_iy_i=0, \ \ \ \ \ i=1,2,.,N \ \ ...\ \ (5)\\\ 0\leq a_i\leq C,\ \ \ \ i=1,2,.,N\ \ ...\ \ (6) mina  21i=1Nj=1NaiajyiyjK(xi.xj)i=1Nai  ...  (4) s.t.  i=1Naiyi=0,     i=1,2,.,N  ...  (5) 0aiC,    i=1,2,.,N  ...  (6)

四、非线性SVM的 分离超平面 与 目标决策函数

首先,我们来回顾以下线性SVM的分离超平面 ∑ i = 1 N a i ∗ y i ( x i ⋅ x ) + b ∗ = 0    . . .    ( 7 ) \sum_{i=1}^Na_i^*y_i(x_i·x)+b^*=0\ \ ...\ \ (7) i=1Naiyi(xix)+b=0  ...  (7)以及线性SVM分类决策函数 f ( x ) = s i g n ( ∑ i = 1 N a i ∗ y i ( x i ⋅ x ) + b ∗ )    . . .    ( 8 ) f(x)=sign(\sum_{i=1}^Na_i^*y_i(x_i·x)+b^*)\ \ ... \ \ (8) f(x)=sign(i=1Naiyi(xix)+b)  ...  (8)
并且在线性SVM中,我们确定参数 b b b的规则是 b ∗ = y j − ∑ i = 1 N a i ∗ y i ( x i . x j )    . . .    ( 9 ) b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i.x_j)\ \ ...\ \ (9) b=yji=1Naiyi(xi.xj)  ...  (9)式(7)(8)(9)的获得已在《支持向量机:线性支持向量机》中解释,想了解的请移步以下。

根据式(7)(8)(9),我们来求解以下非线性SVM的分离超平面和分类决策函数。

首先,通过SMO算法我们求得式(4)(5)(6)的最优解 a = ( a 1 ∗ , a 2 ∗ , . . . , a N ∗ ) T a=(a_1^*,a_2^*,...,a_N^*)^T a=(a1,a2,...,aN)T其次,我们从 a ∗ a^* a中选择一个分量 a j ∗ a_j^* aj(要求 0 < a j ∗ < C 0< a_j^*<C 0<aj<C,即选择支持向量中的样本点,这也表明 b ∗ b^* b不唯一),根据式(9)有 b ∗ = y j − ∑ i = 1 N a i ∗ y i K ( x i , x ) b^*=y_j-\sum_{i=1}^Na_i^*y_iK(x_i,x) b=yji=1NaiyiK(xi,x)于是,我们求得分离超平面: ∑ i = 1 N a i ∗ y i K ( x i , x ) + b ∗ = 0 \sum_{i=1}^Na_i^*y_iK(x_i,x)+b^*=0 i=1NaiyiK(xi,x)+b=0还有分类决策函数: f ( x ) = s i g n ( ∑ i = 1 N a i ∗ y i K ( x i , x ) + b ∗ ) f(x)=sign(\sum_{i=1}^Na_i^*y_iK(x_i,x)+b^*) f(x)=sign(i=1NaiyiK(xi,x)+b)

五、介绍几个常用的核函数

随便写一个 K ( x i , x j ) K(x_i,x_j) K(xi,xj)就是核函数了吗?当然不是, K ( x I , x j ) K(x_I,x_j) K(xI,xj)必须满足一定的条件才会是核函数,而这个条件就是核函数必须是正定核函数。我们对什么是正定核不做多余的解释,但是我们可以介绍两个成功的核函数。

  1. 多项式核函数 K ( x i , x ) = ( x i ⋅ x + 1 ) p K(x_i,x)=(x_i·x+1)^p K(xi,x)=(xix+1)p其对应的决策函数 f ( x ) = s i g n ( ∑ i = 0 N a i ∗ y i ( x i ⋅ x + 1 ) p + b ∗ ) f(x)=sign(\sum_{i=0}^Na_i^*y_i(x_i·x+1)^p+b^*) f(x)=sign(i=0Naiyi(xix+1)p+b)
  2. 高斯核函数 K ( x i , x ) = exp ⁡ ( − ∣ ∣ x i − x ∣ ∣ 2 2 σ 2 ) K(x_i,x)=\exp(-\frac{||x_i-x||^2}{2\sigma^2}) K(xi,x)=exp(2σ2xix2)其对应的决策函数 f ( x ) = s i g n ( ∑ i = 0 N a i ∗ y i exp ⁡ ( − ∣ ∣ x i − x ∣ ∣ 2 2 σ 2 ) ) f(x)=sign(\sum_{i=0}^Na_i^*y_i\exp(-\frac{||x_i-x||^2}{2\sigma^2})) f(x)=sign(i=0Naiyiexp(2σ2xix2))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值