数学基础系列博客是自己在学习了稀牛学院&网易云课堂联合举办的《人工智能数学基础》微专业后的课程笔记总结。怀着对授课讲师Jason博士无限的敬佩与感激之情,我在完整听了两遍课程之后,对这门进行了笔记整理。Jason博士用深入浅出的方式把数学知识真的是讲透彻了,我的笔记显然无法完整传达Jason博士的精彩授课内容,在此非常推荐每一个打算进入或了解AI的同学去学习这门课程!
一:机器学习中的两类问题
1.1 回归问题
-
回归预测的是连续值
-
线性回归问题的结果是一条直线(二维)、一个平面(三维)或超平面(高于三维)。
1.2 分类问题
- 分类问题预测的是离散值
今天我们来整理学习一下支持向量机,这么多天都没有更新机器学习算法系列,就是因为一直在学习SVM,但是,感觉我还是没有领悟支持向量机这个经典算法的精髓。只能在此将自己的理解整理一下,供各位朋友参考。在学习过程中也参考了很多优秀的博客,其中寒小阳的博客对自己帮助最大,在此表示非常感谢!在这篇文章中,我们着重从数学的角度来理解学习SVM。希望能够对真正理解算法有帮助。
二:支持向量机简介
首先,我们要说强调以下两点内容,可能现在还不清楚,但是当你读完博文之后,自然就能够理解这两句话的意思了。
- 支持向量机是一类分类算法。
- 我们需要使用有标签的数据进行训练,所以说SVM是有监督学习算法。
三:线性分类器和最优线性分类器
我们来说一下线性分类器。什么是线性分类器?顾名思义,数学表达为线性方程的分类器,我们就称之为线性分类器。从数学上来讲,形如 w T x + b = 0 \mathbf{w^Tx}+b=0 wTx+b=0的平面被称为超平面,在一维空间中,超平面就是一个点;在二维空间中,超平面就是一条直线;在三维空间中,超平面是一个平面;在更高维空间中,由于无法直观展现出来,因此我们称之为超平面。
其实,我们前面的算法中学习过这种分类器,那就是逻辑回归算法。大家仔细回忆一下,或者回顾一下前面的博客文章 机器学习算法系列(二):逻辑回归,逻辑回归本质上是通过判断一个样本点在分类直线的哪一侧来判定样本的类别,所以说逻辑回归的分类器就是一个线性分类器。但是能够区分两个样本的分类器只有一个吗?大家可以观察下边这幅图,从图中可以看出,能够区分两类样本点的直线其实有很多,那么这些直线的分类效果都一样吗?哪一条直线的分类效果最好呢?这也就引出了SVM算法。
SVM算法本质上就是要找到一条直线(二维空间中为直线,高维空间中统称为超平面)将两类样本点尽可能地分开,使得直线离两类样本点的距离最大。这样的分类器鲁棒性最好。什么是鲁棒性?鲁棒性用土话说就是“皮实”,在预测的时候不容易出错,容错性更好。举个例子:
下图中有两类样本点(women和men),分别用“圆圈”和“十字”表示。我们仔细观察就会发现,图中的四条直线其实都可以把两类样本点分开,那么这四条直线都可取吗?
假如我们选取图中的绿色直线,然后用一些数据点来进行测试,如下图所示。很容易就会发现,红色样本点被分错了好多,这说明什么呢?说明这条直线的鲁棒性不好。很容易分类错误。究其原因,就是因为这条直线离红色样本点太近了。这种离某一个类别太近的分类器的分类效果就不是很好。那么,我们自然就能想到好的分类器应该满足的标准:离两类样本尽可能地远!
比如下图中的黑色分类器,离两类样本都比较远,当进行分类时,鲁棒性就很好,不容易分错。写到这里,我想读者朋友应该能够明白SVM的目标了吧。就是要找到一条离两类样本都尽可能远的直线!很容易可以理解,当分类器在两类样本正中间的时侯最合适。如果不在中间,那么肯定就偏向了某一类样本,因此,按照svm的目标,最优的线性分类器一定是在两类样本点的正中间。
四:SVM建模
4.1 点到超平面的距离
- 超平面 { x ∣ w T x + b = 0 } \{\mathbf{x}|\mathbf{w^Tx}+b=0\} { x∣wTx+b=0}
- 空间中任意一点p到该点的距离
r = ∣ w T p + b ∣ ∣ ∣ w ∣ ∣ 2 r = \frac{|\mathbf{w^Tp}+b|}{||\mathbf{w}||_2} r=∣∣w∣∣2∣wTp+b∣
推导:
4.2 SVM目标函数
-
几何间隔:(找出到超平面距离最小的那个点,然后计算出这个距离)
M = min i r i = min i ∣ w T x i + b ∣ ∥ w ∥ 2 M=\min _{i} r_{i}=\min _{i} \frac{\left|\mathbf{w}^{T} \mathbf{x}_{i}+b\right|}{\|\mathbf{w}\|_{2}} M=iminri=imin∥w∥2∣∣wTxi+b∣∣ -
SVM目标函数
max w , b M max w , b { min i ∣ w T x i + b ∣ ∥ w ∥ 2 } \begin{array}{c}{\max _{\mathbf{w}, b} M} \\ {\max _{\mathbf{w}, b}\left\{\min _{i} \frac{\left|\mathbf{w}^{T} \mathbf{x}_{i}+b\right|}{\|\mathbf{w}\|_{2}}\right\}}\end{array} maxw,bMmaxw,b{ mini∥w∥2∣wTxi+b∣}- 目标是使得最小的距离最大化。每给定一个w,b,就可以计算出所有样本到超平面的距离,这时候就可以找到一个最小距离,然后就可以通过穷举的方法优化w和b,让最小的距离最大化。
4.3 简化目标函数
-
分子部分 w T x i + b \mathbf{w^Tx_i}+b wTxi+b可以改写为:
y i ( w T x i + b ) y_i(\mathbf{w^Tx_i}+b) yi(wTxi+b)- y i y_i yi是人为定义的 y i ∈ { 1 , − 1 } y_i \in \{1,-1\} yi∈{ 1,−1}
- 如果 w T x i + b > 0 \mathbf{w^Tx_i}+b>0 wTxi+b>0,则 y i = 1 y_i=1 yi=1;
- 如果 w T x i + b < 0 \mathbf{w^Tx_i}+b<0 wTxi+b<0,则 y i = − 1 y_i=-1 yi=−1;
- 目标函数由 max w , b { min i ∣ w T x i + b ∣ ∥ w ∥ 2 } {\max _{\mathbf{w}, b}\left\{\min _{i} \frac{\left|\mathbf{w}^{T} \mathbf{x}_{i}+b\right|}{\|\mathbf{w}\|_{2}}\right\}} maxw,b{
mini∥w∥2∣wTxi+b∣}变为:
max w , b { min i y i ( w T x i + b ) ∥ w ∥ 2 } {\max _{\mathbf{w}, b}\left\{\min _{i} \frac{ y_i(\mathbf{w}^{T} \mathbf{x}_{i}+b)}{\|\mathbf{w}\|_{2}}\right\}} w,bmax{ imin∥w∥2yi(wTxi+b)}
- 上述目标函数中,大括号里边是对i进行遍历,与w无关,因此目标函数可以写成:
max w , b { 1 ∥ w ∥ 2 min i y i ( w T x i + b ) } \max _{\mathbf{w}, b}\left\{\frac{1}{\|\mathbf{w}\|_{2}} \min _{i} y_{i}\left(\mathbf{w}^{T} \mathbf{x}_{i}+b\right)\right\} w,bmax{ ∥w∥21iminyi(wTxi+b)}
-
进行scaling, w → k w \mathbf{w} \rightarrow k\mathbf{w} w→kw和 b → k b b \rightarrow kb b→kb,将这两个参数分别缩放后,我们可以知道点到平面的距离不变。(分子分母同时提出一个k)
-
因此,我们可以设计距离最近的一个点,使得 y i ( w T x i + b ) = 1 y_i(\mathbf{w}^{T} \mathbf{x}_{i}+b)=1 yi(wTxi+b