机器学习算法——支持向量机SVM2(硬间隔与支持向量)

上一节中,说了超平面(W,b)方程为

W^Tx+b=0

样本点到超平面的距离怎么求?假设样本点x0(x0为向量)到超平面S距离d的计算过程为:

设点x0在平面S上的投影为x1,则wTx1+b=0

由于向量\overline{x_0x_1}与平面S的法向量w平行,所以

\left | \omega \cdot \overline{x_0x_1} \right |=|\omega||\overline{x_0x_1}|=\sqrt{(w_1)^2+(w_2)^2+...+(w_n)^2}d=||w||_2d (公式 2.1)

在这里为了方便理解,我们先讲解一下范数的概念。

范数,是具有“距离”概念的函数。在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。我们这里只涉及向量范数。一共有四种范数,包括:

L-P范数:L_p=||x||_p=\sqrt[p]{\sum_{i=1}^{n}x_i^p},x=(x_1,x_2,...,x_n)

L-0范数:当p=0时,就是L0范数。

L-1范数:||x||_1=\sum_{i=1}^{n}|x_i|

L-2范数:||x||_2=\sqrt{\sum_{i=1}^{n}x_i^2} 这其实就是欧式距离。

L∞范数:当p=∞时,就是L∞范数。

公式2.1的||w||就是L2范数。

而:

\omega \cdot \overline{x_0x_1} = w^1(x_0^1-x_1^1)+w^2(x_0^2-x_1^2)+...+w^n(x_0^n-x_1^n)=w^1x_0^1+w2x_0^2+...+w^nx_0^n-(w^1x_1^1+w^2x_1^2+...+w^nx_1^n)=w^1x_0^1+w2x_0^2+...+w^nx_0^n-(-b)

所以||w||d=|w^1x_0^1+w^2x_0^2+...+w^nx_0^n+b|=|w^T \cdot x_0+b|

所以d=\frac{|w^T \cdot x_0+b|}{||w||}

假设超平面(w,b)能将训练样本正确分类,即

对于(x_i,y_i)∈D

若yi=+1,则w^Tx_i+b>0

若yi=-1,则w^Tx_i+b<0

\left\{\begin{matrix} w^Tx_i+b \geqslant +1, y_i=+1& \\ w^Tx_i+b \leqslant -1, y_i=-1& \end{matrix}\right.   (公式2.2)

公式2.2可以推导出:y_i(w^Tx_i+b)\geqslant 1

距离超平面最近的这几个训练样本点使上述式子的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为

r=\frac{2}{||w||}

它被称为“硬间隔”。

想要找到“最大间隔”的划分超平面,也就是要找到满足公式2.2中约束的参数w和b,使得r最大,即

\underset{w,b}{max} \frac{2}{||w||}

s.t. y_i(w^Tx_i+b) \geqslant 1, i=1,2,...,m

为了最大化间隔,仅需最大化\frac{1}{||w||},等价于最小化||w||^2

于是最终得出

\underset{w,b}{min} \frac{1}{2}||w||^2 (这里的1/2是为了求导以后形式简洁,不影响结果)

s.t. y_i(w^Tx_i+b) \geqslant 1, i=1,2,...,m

这就是支持向量机的基本型。

下节讲解支持向量机的对偶问题。

你可能感兴趣的:(支持向量机,算法,机器学习,人工智能,svm)