Traditional machine learning to climb Everest -SVM (in)

About non-linear soft margin SVM and SVM, in the learning process, it is estimated there are a lot of entry of the students will be curious difference between soft and hard spaced intervals there a more reasonable explanation? What soft slack variable intervals introduced in the end is? After an interval of soft and hard interval optimization function optimization function simplification, why look so similar? There is no more vivid way to divide the support vector soft interval, noises and misclassification point? The cost of soft margin SVM function, hard interval SVM cost function and hinge loss function are the same do? And kernel What the hell? Kernel advantage in the end how to explain?

Now I will use the idea of ​​the EM algorithm to explain the difference between hard and soft spacing intervals, and explain in plain language slack variable geometry meaning, and the impact of the support coefficient C variables. Explained by a picture is how to distinguish between soft margin support vector, the noise point and the point of misclassification. Cost function soft margin SVM, consistency, cost function and hinge loss function of hard intervals SVM were deduced. After the core idea of ​​space and kernel features were described and analyzed the advantage in the form of nuclear origin and function of the phrase is unpredictable. Finally, a brief introduction about several important kernel functions.

As the article contains many of them part of their understanding of, if inappropriate, please correct me a lot! ! !

Linear SVM classification problems faced by

In the last class, we linearly separable principle and flow of SVM algorithm are summarized as shown below, the data set is linearly separable, we can use linear separable support vector machine, also known as hard margin support vector machine.

When the data set number doped noise, as shown below, since the doping of a red noise points, leading to the decision boundary model learning movement by the thick broken line in the figure to the bold solid line.

Q1: The figure is a thick solid line as a border more rational decision-making, decision-making or the thick dashed line as the boundary is more reasonable? why?

It is clear that the thick dashed line more reasonable, because the thick dashed line ignores the effect of noise, the greater its margin, the effect on the test set is better than the thick solid line.

How to solve these problems? SVM method was introduced to solve the soft margin maximization.

Soft Margin SVM

Recalling maximum SVM hard interval:

Q2: We think about how to transform the equation to get soft maximize interval it?

Last time we talked, hard interval SVM draws on the core idea EM, the core consists of two steps: find a support vector (sample limit), then maximize support vector interval (lower limit minimized). Here we will look at these two aspects is how soft margin came from a hard transition interval.

The lower limit what changes

Let us recall the hard interval support vector machine, as shown below:

All sample points from the hyperplane to the decision was not less than 1, the lower limit is hard SVM interval:

$ H_1 $ and $ H_2 $ like two walls separated as the two types of samples.

When the noise data added later point or misclassification, such as between H_1 $ and $ $ H_2 $, SVM introduces a magic variable $ ξ_i≥0 $, this variable is called slack variables, the geometric meaning of the FIG. below:

Simple, red dot sample, for example, $ ξ $ express to $ H_1 $ Distance:

When the sample point $ $ H_1 the right, including support and sample points other than the support vector when the vector $ ξ_i = 0 $, i.e., we can be processed in the hard intervals.

$ $ H_1 sample point for the left side, the sample $ ξ> 0 $, including two cases, one is the correct classification, it is within the range of margin of sample points (i.e. point close to the hyperplane), then $ 0 <ξ <1 $; one is misclassified point where $ ξ> 1 $.

Q2: $ 1-xi $ What kind of geometric meaning?

For noises and sample points for misclassification, $ 1-xi $ represents the sample point to the distance between the plane over decision, and is directed away. Specifically, the noise point distance of the hyperplane $ 0 <1-xi <1 $, misclassification point distance of the hyperplane $ 1-xi <0 $.

After adding slack variables $ ξ $, our $ H_1 $ and $ H_2 $ like spring, we do different treatment for different sample point, change "soft" the. Written mathematical formula is:

How to optimize the lower limit

We know that if we stretch the spring, we will consume energy, pay the price. Similarly slack variables also add cost, each slack variable $ xi_i $ are paid a cost of $ xi_i $, now cost function becomes:

The principle of this formula is not enough to understand, let us revert to see if in the end this is what a meaning. by:

显然对于支持向量和支持向量以外的点,$max; frac{2}{||w||_2^2}$,相当于最大化margin。$max;frac C msumlimits_{i=1}^{m}(1-xi_i)$ 对于margin内的噪声点,最大化噪声点和决策边界之间的距离 $1-xi_i$; 对于误分类的点,其到决策边界之间的距离为 $-(1-xi_i)$ ,那么$max;;Csumlimits_{i=1}^{m}(1-xi_i)Rightarrow min;;|Csumlimits_{i=1}^{m}(1-xi_i)|$ ,也就是最小化误分类点到决策边界之间的距离,翻译成汉语就是让其尽量不要错得那么离谱。

综合起来看一下

综合起来,我们就得到了最大软间隔SVM的优化目标:

最小化 $frac{1}{2}||w||_2^2$ 意味着让支持向量距离超平面的距离尽可能大,最小化 $sumlimits_{i=1}^{m}xi_i $ 意味着保证 margin 内的点尽可能远离超平面,对误分类的点不要偏离的太远。$C$ 是协调两者关系的系数,需要调参来选择。

下面是取不同的 $C$ 值的分类器对比情况,这两种分类器的性能相差不大,都比较差。$C$ 越小,margin越大,$C$ 越大,margin 越小。$C$ 越大,$sumlimits_{i=1}^{m}xi_i $ 作用越大,模型会更多得关注噪声点和误分类点,即决策边界周围的点,$C$ 越小,模型会更多关注距离决策边界更远的点,当 $C=0$ 时,软间隔变成了硬间隔。 $C$ 的取值可以采用交叉验证的方式求得。

对于硬间隔和软间隔的理解,下面我们举一个更形象的例子。比如我们要用 svm 来划分金庸武侠里的人物性别。

对于《射雕英雄传》,《神雕侠侣》,《倚天屠龙记》,《天龙八部》等小说中的人物,性格鲜明,性别明显,不存在噪声点和误分类点(例如tai jian,ren yao等),显然硬间隔SVM就能较好区分这一类小说中人物的性别。

然而,对于《笑傲江湖》,由于葵花宝典(据说辟邪剑谱和日月神教的葵花宝典都是原本葵花宝典的残本)的这部神奇的变性秘籍,可以将男人变成女人(典型的如“东方姑娘”)出现了我们所说的噪声点或者误分类的点,这样我们就必须采用软间隔SVM。具体可以把里面的角色分为以下几类,对于令狐冲,任盈盈,岳灵珊等人,很显然,他们性格鲜明,性别明显,我们可以把他们归为 $xi = 0$ 的人群里面(支持向量还没有想到是谁,恒山派和少林派?希望大家帮忙补充,囧)。对于岳不群,林平之这种噪声点,我们可以把它们划分到margin中区,即 $ 0 < xi < 1$ ,对于东方不败(徐克版和于正版的东方不败都直接启用林青霞和陈乔恩扮演,而且还和令狐冲谈起了恋爱),很显然“她”处于误分类的点,即 $ xi > 1$。而我们的代价函数是用来做什么的呢?是让令狐冲,任盈盈,岳灵珊等人的性别更加鲜明,男的更man,女的更woman;让岳不群、林平之尽量靠向男人的这一方(是不是像岳不群伪君子行为);让“东方姑娘”不要太woman了。

Q3:影响软间隔SVM决策超平面的样本是否和硬间隔SVM一样,只有支持向量呢?

是的,影响软间隔SVM的决策超平面的只有支持向量。之所以不包含噪声点和误分类点,是为了防止过拟合。

软间隔SVM优化算法

和线性可分SVM的优化方式类似,优化过程分为以下五步:

  • 转化为拉格朗日函数
  • 转化为对偶问题
  • 简化对偶问题
  • SMO 算法求解 $alpha$
  • 根据 $α$ 求解出 $w $ 和 $b$

转化为拉格朗日函数

根据凸优化理论,代价函数满足 KKT 条件,我们可以通过拉格朗日函数将我们的优化目标转化为无约束的优化函数:

其中 $mu_i geq 0, alpha_i geq 0$ ,均为拉格朗日系数。

我们的优化目标变成:

转化为对偶问题

这个拉格朗日函数满足KKT条件,我们可以通过拉格朗日对偶将该问题转化为等价的对偶问题来求解。即:

简化对偶问题

首先我们来求优化函数对于 $w,b,ξ$ 的极小值,这个可以通过求偏导数求得:

好了,我们可以利用上面的三个式子去消除 $w$ , $b$ 和 $C$ 了。

将 $ C= alpha_i + mu_i$ (记住这个式子,以后还会用得到) 带入式子,并进行化简:

$begin{align} L(w,b,xi,alpha,mu) & = frac{1}{2}||w||_2^2 +Csumlimits_{i=1}^{m}xi_i - sumlimits_{i=1}^{m}alpha_i[y_i(w^Tx_i + b) - 1 + xi_i] - sumlimits_{i=1}^{m}mu_ixi_i  \&= frac{1}{2}||w||_2^2 - sumlimits_{i=1}^{m}alpha_i[y_i(w^Tx_i + b) - 1 + xi_i] + sumlimits_{i=1}^{m}mu_ixi_i \& = frac{1}{2}||w||_2^2 - sumlimits_{i=1}^{m}alpha_i[y_i(w^Tx_i + b) - 1] end{align}$

这个式子是否似曾相识,大家想想有没有在哪见过呢?像不像我们硬间隔SVM里讲到的 $psi (alpha)$?

下面按照惯例,我们进行化简(那一连串让人懵逼又超级简单的数学公式大家还记得吗?),得到:

对于 $C- alpha_i - mu_i = 0, alpha_i geq 0 , mu_i geq 0 ​$ 这 3 个式子进行化简。得到最终结果:

Q4:软间隔最大SVM的代价函数,和硬间隔最大SVM相比,发生了什么变化呢?为什么?

样本下限从 $0 leq alpha_i$ 变为 $0 leq alpha_i leq C$, 对 $alpha$ 限制得更厉害了。支持向量最大化的的方式不变。

SMO算法求解 $α$

只要我们可以求出上式极小化时对应的 $α$ 向量就可以求出 $w$ 和 $b$ 了 (需要用到SMO算法)。在这里,我们假设通过SMO算法,我们得到了对应的 $α$ 的值 $α^∗$。

根据 $α$ 求解出 $w $ 和 $b$

那么我们根据 $w = sumlimits_{i=1}^{m}alpha_iy_ix_i$, 可以求出对应的 $w$ 的值:

再求出 b 我们就大功告成啦。注意到,对于支持向量 (Q3),都有:

$y_s(w^{*T}x_s+b) = 1$

将 带入上式可以得到:

$y_s(sumlimits_{i=1}^{m}alpha_i^*y_ix_i^Tx_s+b) = 1 $

求得:

$b_s^{*} = y_s - sumlimits_{i=1}^{m}alpha_iy_ix_i^Tx_s$

假设我们有 S 个支持向量,则对应我们求出 S 个 $b^∗_s$,然后将其平均值作为最后的结果。

Q5:上面的公式怎么得到的呢? $frac{1}{y_s} = y_s$ 是什么鬼?大家解释一下

因为在SVM中 $y$ 只能取 1 或 -1,显然 $frac{1}{y_s} = y_s$。

那么问题来了,怎样求解支持向量、噪声点以及误分类点呢?

在硬间隔最大化时,根据 KKT 条件中的对偶互补条件 $alpha_{i}^{*}(y_i(w^Tx_i + b) - 1) = 0$。

  • 如果 $alpha_{i}^{*}>0$ 则有 $y_i(w^Tx_i + b) =1$ 即点在支持向量上,
  • 如果 $alpha_{i}^{*}=0$ 则有 $y_i(w^Tx_i + b) geq 1$,即样本在支持向量上或者已经被正确分类。

软间隔最大化时 KKT 条件中的对偶互补条件包含两个:

我们有:

  • 如果 $α=0$ , 那么 $xi_i = 0 ,;; y_i(w^Tx_i + b) - 1 geq 0$,即样本在支持向量上或者已经被正确分类。
  • 如果 $0<α<C$ ,那么 $xi_i = 0 ,;; y_i(w^Tx_i + b) - 1 = 0$,即该点为支持向量。
  • 如果 $α=C$,说明这要么是噪声点,要么是误分类点,需要检查此时 $ξ_i$
    • 如果 $0<ξ_i<1$,该点被正确分类,但是却在超平面和自己类别的支持向量之间。
    • 如果 $ξ_i=1$,该点在分离超平面上,无法被正确分类。
    • 如果 $ξ_i>1$,该点就是误分类的点。

上面说了一大堆是什么意思呢,我们以红色的样本为例,将空间划分为以下五部分:

其中

  • ​ $α=0$ 对应 Ⅰ+ Ⅱ
  • $0<α<C$ 对应 Ⅱ
  • $α=C$ 对应 Ⅲ + Ⅳ + Ⅴ
  • $α=C$ 且 $0<ξ_i<1$ 对应 Ⅲ
  • $α=C$ 且 $ξ_i=1$ 对应 Ⅳ
  • $α=C$ 且 $ξ_i >1$ 对应Ⅴ

Q6:大家可以用用蓝色的样本点来解释吗?

最大软间隔SVM的算法总结

输入是 m 个线性可分的样本 ${(x_1,y_1), (x_2,y_2), …, (x_m,y_m),}$

其中 x 为 n 维特征向量。y 为二元分类结果 1 或 -1。

输出是分离超平面的参数 $w^∗$ 和 $b^∗$ 和分类决策函数。

算法过程如下:

1)构造代价函数:

2) 用 SMO 算法求出 $α$ 向量的值 $α^∗ = (α^∗ _1,α^∗ _2,cdots, N)$ 。

3) 计算 。

4) 找出满足 的所有的 分量 ,求得

​ 取平均得到 $b$

5) 最终的分类决策函数为:

SVM损失函数详解

总结一下,关于线性支持向量机我们学了三种代价函数:

  • 合页损失函数 (hinge loss function):
  • 硬间隔损失函数:

  • 软间隔损失函数:

其实归根到底都是合页损失函数。

推导如下:

  • 对于硬间隔损失函数

    由以下条件:

    ​ 可得:

    ​ 则:

    ​ 得证。

  • 对于软间隔损失函数

    由以下两个条件:

    合并为:

    得到 $xi_i$ 的下限 $max{0,1 - y_i(w^Tx_i + b)}$,翻译成公式就是:

    令 $C=frac 1 lambda​$ 即可求证。

如下图中的绿线:如果点被正确分类,且在支持向量以外,损失是 0,否则损失是 $1−y(w∙x+b)$。如果点被正确分类,且在margin之内,损失为小于1的小数;如果点被分类错误,损失函数大于1,且随样本到超平面距离的增大,损失函数增大。

从下图中我们还可以看出其他各种模型损失和函数间隔的关系:

对于 0-1损失函数,如下图黑线,如果正确分类,损失是0,误分类损失 1, 且 0-1 损失函数是不可导的。

对于感知机模型,感知机的损失函数是 $[−y_i(w∙x+b)]_+$,如下图紫线。当样本被正确分类时,损失是 0,误分类时,损失是 $−y_i(w∙x+b)$。

对于逻辑回归之类和最大熵模型对应的对数损失,损失函数是 $log[1+exp(-y(w bullet x + b))]$, 如下图红线所示。

非线性支持向量机与核函数

核函数的引入

以上介绍的都是SVM作为线性分类器的作用,那对于非线性问题,SVM该怎样做呢?     

对于非线性问题,我们采取的做法是将进行一个非线性变换映射到特征空间中,将原空间非线性问题转变为特征空间的线性问题,然后再用线性分类器SVM求解。什么意思呢?我们举例说明:

图中的两类数据,分别分布为两个圆圈的形状,因为这样的数据本身就是线性不可分的,线性分类器是没法处理。那我们该如何处理呢?

对于上图的数据,我们可以表示为:

$a_1X_1^2 + a_2(X_2-c)^2 + a_3 = 0$

其中 $X_1$ 和 $X_2$ 是两个坐标系。

我们令 $Z_1=X^2_1, Z_2=X^2_2, Z_3=X_2$ (其中$Z_1, Z_2, Z_3$ 为三维空间的三个坐标)将其映射到三维空间中进行求解,如下图:

可以找到一个平面,将红色的样本和蓝色样本区分开。

下面展示了另一种特征映射和线性分类相结合的方式:

世界上怎么会有如此奇妙的求解手段,如此美妙的图片!!!我们再来欣赏一组:

也就是说对于在低维线性不可分的数据,在映射到了高维以后,就变成线性可分的了。这个思想我们同样可以运用到 SVM 的线性不可分数据上。也就是说,对于 SVM 线性不可分的低维特征数据,我们可以将其映射到高维,就可以运用线性可分 SVM 的进行求解了。

Q7:特征变换还有没有其他应用?

特征变换可以说是遍布整个机器学习界。

机器学习处理分类和回归问题本身就是特征变换。对于分类问题,输入空间维n维特征空间,输出为只有0 (-1) 和1的一维向量。对于回归问题,输入空间维n维特征空间,输出为连续的一维向量。这是高维空间转换为一维空间的情况。

对于熟悉深度学习的学生而言,$w^Tx+b$ 为特征空间的线性变化,激活函数为特征空间的非线性变换(空间扭曲)。

我们这种思想运用到我们的SVM的算法上。回顾线性可分SVM的优化目标函数:

再次友情提示,对数学符号不太敏感的小朋友注意啦,对于任意两个向量 $x$ 和 $y$, $x^Ty = x bullet y$ 始终成立!!!

我们定义一个低维特征空间到高维特征空间的映射 $ϕ$,将所有输入空间映射到一个更高维度的特征空间,让数据线性可分,我们就可以利用 SVM 的优化目标函数求出分类决策边界了。也就是说现在的 SVM 的优化目标函数变成:

可以看到,和线性可分SVM的优化目标函数的区别仅仅是将内积 $x_i∙x_j$ 替换为 $ϕ(x_i)∙ϕ(x_j)$。

得到的超平面即为:

我们发现在SVM算法的求解过程中 $phi (x)​$ 并不是单独存在的, 而是始终以 $phi (x_i) bullet phi (x_j)​$ 的形式出现,我们不如把他们写在一起,定义一个新的函数:

这玩意就是著名的核函数 $K(x, z) $(在这里我也解释了为什么核函数长成这个鬼样子)。

下面我们来看看官方是怎么定义核函数的的:

假设 $phi$ 是一个从低维的输入空间 $chi$(欧式空间的子集或者离散集合)到高维的希尔伯特空间的 $H$ 映射。对于所有的 $x,z in chi$,都有 $K(x,z)$ 满足:

那么我们就称 $K(x,z)$ 为核函数, $phi(x)$ 为映射函数 。

左看看,右看看,这核函数也没什么神奇之处啊。核函数的神奇之处在与:用低维的运算来解决高维的运算问题。什么意思呢?

至今为止我们所使用的思想是拿到非线性数据,就找一个映射 $ϕ(⋅)$ ,然后一股脑把原来的数据映射到高维空间中,再在高维空间内做线性 SVM 。下面借鉴一下李航大神的案例:

上面是什么意思呢?估计还是很多同学没有看懂。我们有原始的二维空间,要求解 $phi(x) bullet phi(z)$,有很多途径:

  • 法1:直接在原始空间 $R^2$ 中求解核函数得到:

    ​ $(x^{(1)}z^{(1)})^2 +2x^{(1)}z^{(1)}x^{(2)}z^{(2)} +(x^{(2)}z^{(2)})^2 $

  • 法2:我们也可以先映射到三维空间 $R^3$ 得到映射函数

    ​ $phi (x) = frac{1}{sqrt{2}}((x^{(1)})^2-(x^{(2)})^2,2x^{(1)}x^{(2)}, (x^{(1)})^2+(x^{(2)})^2)^T$

    ​ 然后再求解$phi(x) bullet phi(z)$

  • 法3:我们也可以先映射到四维空间 $R^4$ 得到映射函数

    ​ $phi (x) = ((x^{(1)})^2,x^{(1)}x^{(2)}, x^{(1)}x^{(2)}, (x^{(2)})^2)^T$

    然后再求解 $phi(x) bullet phi(z)$

当然我们还可以映射到 $R^5,R^6 cdots$

显然第一种方法更为简单。原始空间三维空间,四维空间,五维空间呢?特征空间会呈爆炸性增长的,这给 $ϕ(⋅)$ 的计算带来了非常大的困难,而且如果遇到无穷维的情况,就根本无从计算了。

也就是说,核函数可以让我们好好享受在高维特征空间线性可分的同时,避免了高维特征空间恐怖的内积计算量。

至此,我们总结下线性不可分时核函数的引入过程:

我们遇到线性不可分的样例时,常用做法是把样例特征映射到高维空间中去,但是有时候这个维度大小是会高到令人恐怖的,通常我们会采用核函数来处理这类问题。核函数好在它在低维上进行计算,而将实质上的分类效果(向量内积)表现在了高维上,避免了直接在高维空间中的复杂计算。

核函数的介绍

从上面的分析发现,因此我们只需要定义核函数 $K(x,z)$,而不用显示的定义映射函数 $phi$, 即可求出 $phi(x_i) bullet phi(x_j)$, 这样就省去了寻找映射函数的麻烦(映射函数由无数个)。但是却带来了另一个问题:我们怎样定义核函数 $K(x,z)$ 呢?

其实已经有人帮我们找到了很多的核函数,而且常用的核函数也仅仅只有那么几个(专业的人做专业的事)。下面我们简要介绍 sklearn 中默认可选的几个核函数。

线性核函数

线性核函数(Linear Kernel)其实就是线性可分SVM,表达式为:

也就是说,线性SVM是非线性SVM的一个特殊的情况,即线性SVM是使用线性核函数的SVM。

多项式核函数

多项式核函数(Polynomial Kernel)是线性不可分SVM常用的核函数之一,表达式为:

相当于将原始空间映射到 $p$ 维空间。其中,$gamma, r, p$ 都需要调参。

高斯核函数

高斯核函数(Gaussian Kernel)也称为径向基核函数(Radial Basis Function,RBF),它是非线性分类SVM最主流的核函数。表达式为:

相当于将原始空间映射到无穷维空间。其中,非负参数$γ$ 需要调参。

为什么是无穷维度的空间呢?

我们知道,根据泰勒公式:

$e^x = 1 +x + frac{x^2}{2!} + frac{x^3}{3!} + cdots + frac{x^n}{n!} + cdots$

$e^x$ 对应的映射:

$K(x) = (1, x,frac{x^2}{2!}, cdots, frac{x^n}{n!} , cdots)$

将泰勒展开式带入高斯核,我们得到了一个无穷维度的映射:

$K(x,z) = 1 + (-gamma||x-z||^2) + frac{(-gamma||x-z||^2)^2}{2!} + frac{(-gamma||x-z||^2)^3}{3!} + cdots + frac{(-gamma||x-z||^2)^n}{n!} + cdots$

那么,对于 $x$ 和 $z$ 的内积形式符合在SVM中无穷维度下的内积计算,即高斯核将数据映射到无穷高的维度。

Sigmoid核函数

Sigmoid核函数(Sigmoid Kernel)也是线性不可分SVM常用的核函数之一,表达式为:

其中,$gamma, r$ 都需要自己调参定义。

分类SVM的算法过程

现在我们对分类SVM的算法过程做一个总结。不再区别是否线性可分。

输入是 m 个线性可分的样本 ${(x_1,y_1), (x_2,y_2), …, (x_m,y_m),}$

其中 x 为 n 维特征向量。y 为二元分类结果 1或 -1。

输出是分离超平面的参数 $w^∗$ 和 $b^∗$ 和分类决策函数。

算法过程如下:

1)选择适当的核函数 $K(x,z)$ 和一个惩罚系数 $C>0$, 构造约束优化问题构造代价函数:

2) 用 SMO 算法求出 $α$ 向量的值 $α^∗ = (α^∗ _1,α^∗ _2,cdots, α^∗ _N)$ 。

3) 计算 。

4) 找出满足 的所有的 分量 ,求得

​ 取平均得到 $b$

5) 最终的分类决策函数为:

参考文献:

SVM principle (c) linear support vector machine http://www.cnblogs.com/pinard/p/6103615.html

T. Hastie/ R. Tibshirani / J. H. Friedman 《The Elements of Statistical Learning》

pluskid "SVM: Kernel" http://blog.pluskid.org/?p=685

Li Hang "statistical learning methods."

Original: Big Box  climb Everest traditional machine learning -SVM (in)


Guess you like

Origin www.cnblogs.com/chinatrump/p/11584781.html