1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 支持向量机 二 :非线性支持向量机

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

时间:2020-07-22 06:30:16

相关推荐

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

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

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

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

线性支持向量机不香吗?为什么还要用非线性支持向量机?

线性支持向量机香是香,但并不适合大多数数据集啊。比如下图这个数据,使用线性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):X→H使得对所有 x i , x j ∈ X x_i,x_j∈\Chi xi​,xj​∈X,函数 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​21​i=1∑N​j=1∑N​ai​aj​yi​yj​(xi​.xj​)−i=1∑N​ai​...(1)s.t.i=1∑N​ai​yi​=0,i=1,2,.,N...(2)0≤ai​≤C,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):X→H是很难的操作,所以研究人员往往先确定 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​21​i=1∑N​j=1∑N​ai​aj​yi​yj​K(xi​.xj​)−i=1∑N​ai​...(4)s.t.i=1∑N​ai​yi​=0,i=1,2,.,N...(5)0≤ai​≤C,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=1∑N​ai∗​yi​(xi​⋅x)+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=1∑N​ai∗​yi​(xi​⋅x)+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∗=yj​−i=1∑N​ai∗​yi​(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∗=yj​−i=1∑N​ai∗​yi​K(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=1∑N​ai∗​yi​K(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=1∑N​ai∗​yi​K(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​)必须满足一定的条件才会是核函数,而这个条件就是核函数必须是正定核函数。我们对什么是正定核不做多余的解释,但是我们可以介绍两个成功的核函数。

多项式核函数 K ( x i , x ) = ( x i ⋅ x + 1 ) p K(x_i,x)=(x_i·x+1)^p K(xi​,x)=(xi​⋅x+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=0∑N​ai∗​yi​(xi​⋅x+1)p+b∗)高斯核函数 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σ2∣∣xi​−x∣∣2​)其对应的决策函数 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=0∑N​ai∗​yi​exp(−2σ2∣∣xi​−x∣∣2​))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。