支持向量机
算法原理
- 从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好。
超平面
- n维空间的超平面(w^Tx + b =0,其中w, x ∈R^n)∶ 超平面方程不唯一 法向量w和位移项b确定一个唯一超平面
- 法向量w垂直于超平面(缩放w, b时,若缩放倍数为负数会改变法向量方向)。
- 法向量w指向的那一半空间为正空间,另一半为负空间
- 任意点到超平面的距离公式为
r = ∣ w T x + b ∣ ∣ w ∣ r=\frac{|w^Tx+b|}{|w|} r=∣w∣∣wTx+b∣
几何间隔
- 对于给定的数据集X和超平面 w T x + b = 0 w^Tx +b =0 wTx+b=0,定义数据集X中的任意一个样本点 ( x i , y i ) , y i ∈ { − 1 , 1 } , i = 1 , 2 , . . . , m (x_i, y_i), y_i∈ \{-1,1\},i= 1,2,...,m (xi,yi),yi∈{−1,1},i=1,2,...,m关于超平面的几何间隔为 γ i = y i ( w T x i + b ) ∣ w ∣ \gamma_i=\frac{y_i(w^Tx_i+b)}{|w|} γi=∣w∣yi(wTxi+b)正确分类时(负样本在负空间,正样本在正空间): γ i > 0 \gamma_i > 0 γi>0几何间隔此时也等价于点到超平面的距离没有正确分类时 γ i < 0 \gamma_i<0 γi<0对于给定的数据集X和超平面 w T x + b = 0 w^Tx+b =0 wTx+b=0,定义数据集X关于超平面的几何间隔为︰数据集X中所有样本点的几何间隔最小值 γ = min i = 1 , 2 , . . . , m γ i \gamma =\min \limits_{i=1,2,...,m}\gamma_i γ=i=1,2,...,mminγi
支持向量机
-
模型:给定线性可分数据集X,支持向量机模型希望求得数据集X关于超平面的几何间隔丫达到最天的那个超中面,然后套上一个sign函数实现分类功能
y = s i g n ( w T x + b ) = { 1 , w T x + b > 0 − 1 , w T x + b < 0 y=sign(w^Tx+b)= \left\{\begin{matrix} 1 ,w^Tx+b > 0\\ -1 ,w^Tx+b\lt0\end{matrix}\right. y=sign(wTx+b)={1,wTx+b>0−1,wTx+b<0
所以其本质和感知机一样,仍然是在求一个超平面。那么几何间隔最大的超平面就一定是我们前面所说的那个“距离正负样本都最远的超平面”吗?
答:是的,原因有以下两点:当超平面没有正确划分正负样本时:几何间隔最小的为误分类点,因此 γ < 0 \gamma<0 γ<0当超平面正确划分超平面时: γ ⩾ 0 \gamma\geqslant 0 γ⩾0,且越靠近中央 γ \gamma γ越大 -
策略∶给定线性可分数据集X,设X中几何间隔最小的样本为 x m i n , y m i n x_{min},y_{min} xmin,ymin,那么支持向量机找超平面的过程可以转化为以下带约束条件的优化问题
max s . t γ γ i ⩾ γ , i = 1 , 2 , . . . , m \mathop{\max}\limits_{s.t} \mathop{\gamma} \limits_{\gamma_i\geqslant \gamma,i=1,2,...,m} s.tmaxγi⩾γ,i=1,2,...,mγ
max w , b y m i n ( w T x m i n + b ) ∣ w ∣ \max_{w,b}\ \ \frac{y_{min}(w^Tx_{min}+b)}{|w|} maxw,b ∣w∣ymin(wTxmin+b)
s . t y i ( w T x i + b ) ∣ w ∣ ⩾ y m i n ( w T x m i n + b ) ∣ w ∣ , i = 1 , 2 , . . . , m s.t \ \ \ \ \ \ \frac{y_i(w^Tx_i+b)}{|w|}\geqslant\frac{y_{min}(w^Tx_{min}+b)}{|w|},i=1,2,...,m s.t ∣w∣yi(wTxi+b)⩾∣w∣ymin(wTxmin+b),i=1,2,...,m
max w , b max w , b y m i n ( w T x m i n + b ) ∣ w ∣ \max_{w,b} \ \ \max_{w,b}\ \ \frac{y_{min}(w^Tx_{min}+b)}{|w|} maxw,b maxw,b ∣w∣ymin(wTxmin+b)
s . t y i ( w T x i + b ) ⩾ y m i n ( w T x m i n + b ) i = 1 , 2 , . . . , m s.t \ \ \ y_i(w^Tx_i+b)\geqslant y_{min}(w^Tx_{min}+b) \ i=1,2,...,m s.t yi(wTxi+b)⩾ymin(wTxmin+b) i=1,2,...,m- 假设该问题的最优解为
(
w
∗
,
b
∗
)
(w^*,b^*)
(w∗,b∗),那么
(
α
w
∗
,
α
b
∗
)
,
α
∈
R
+
(\alpha w^* , \alpha b^*), \alpha∈R^+
(αw∗,αb∗),α∈R+也是最优解,且超平面也不变,因此还需要对w, b做一定限制才能使得上述优化问题有可解的唯一解。不妨令
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min}(w^T x_{min} +b)=1
ymin(wTxmin+b)=1,因为对于特定的
(
x
m
i
n
,
y
m
i
n
)
(x_{min}, y_{min})
(xmin,ymin)来说,能使得
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min} ( w^Tx_{min}+b)=1
ymin(wTxmin+b)=1的α有且仅有一个。因此上述优化问题进一步转化为
max w , b 1 ∣ w ∣ \max_{w,b}\ \ \ \frac{1}{|w|} maxw,b ∣w∣1
s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , . . . , m s.t. \ \ \ \ \ y_i(w^Tx_i+b)\geqslant 1 ,\ i=1,2,...,m s.t. yi(wTxi+b)⩾1, i=1,2,...,m - 为了方便后续计算,再进一步进行恒等变换
min w , b 1 2 ∣ w ∣ 2 \min_{w,b} \ \ \frac{1}{2}|w|^2 minw,b 21∣w∣2
s . t . 1 − y i ( w T x i + b ) ⩽ 0 , i = 1 , 1 , . . . , m s.t. \ \ \ \ 1-y_i(w^Tx_i+b)\leqslant 0,\ i=1,1,...,m s.t. 1−yi(wTxi+b)⩽0, i=1,1,...,m - d对于一般凸优化问题
m i n f ( x ) min \ \ f(x) min f(x)
s . t . g i ( x ) ⩽ 0 , i = 1 , 2 , . . . , m s.t. \ \ g_i(x)\leqslant 0, \ i=1,2,...,m s.t. gi(x)⩽0, i=1,2,...,m
h j ( x ) = 0 , j = 1 , 2 , . . . , n \ \ \ \ \ \ \ \ \ h_j(x)=0, \ j=1,2,...,n hj(x)=0, j=1,2,...,n - 若目标函数f(x)是凸函数,约束集合是凸集,则称上述优化问题为凸优化问题,特别地,g_i(x)是凸函数,h_j(x)是线性函数时,约束\&集合为凸集,该优化问题为凸优化问题。显然,支持向量机的目标函数,\frac{1}{2}|w|2是关于w的凸函数,不等式约束1一y_i(wTx_i+b)是也\&是关于w的凸函数,因此支持向量机是一个凸优化问题。
- 假设该问题的最优解为
(
w
∗
,
b
∗
)
(w^*,b^*)
(w∗,b∗),那么
(
α
w
∗
,
α
b
∗
)
,
α
∈
R
+
(\alpha w^* , \alpha b^*), \alpha∈R^+
(αw∗,αb∗),α∈R+也是最优解,且超平面也不变,因此还需要对w, b做一定限制才能使得上述优化问题有可解的唯一解。不妨令
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min}(w^T x_{min} +b)=1
ymin(wTxmin+b)=1,因为对于特定的
(
x
m
i
n
,
y
m
i
n
)
(x_{min}, y_{min})
(xmin,ymin)来说,能使得
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min} ( w^Tx_{min}+b)=1
ymin(wTxmin+b)=1的α有且仅有一个。因此上述优化问题进一步转化为
-
此优化问题为含不等式约束的优化问题,且为凸优化问题,因此可以直接用很多专门求解凸优化问题的方法求解该问题,在这里,支持向量机通常采用拉格朗日对偶来求解,具体原因待求解完后解释,下面先给出拉格朗日对偶相关知识。
推荐阅读:王书宁译.《凸优化》、王燕军.《最优化基础理论与方法(第二版)》 -
为什么支持向量机通常都采用拉格朗日对偶求解呢?
- 无论主问题是何种优化问题,对偶问题恒为凸优化问题,因此更容易求解(尽管支持向量机的主问题本就是凸优化问题),而且原始问题的时间复杂度和特征维数呈正比(因为未知量是 w w w),而对偶问题和数据量成正比(因为未知量是 α \alpha α),当特征维数远高于数据量的时候拉格朗日对偶更高效
- 对偶问题能很自然地引入核函数,进而推广到非线性分类问题((最主要的原因)