支持向量机解析

1 简介

1.0 概念

支持向量机(Support Vector Machine, SVM),支持向量即支持或支撑平面上把两类类别划分开来的超平面的向量点;机即算法.
支持向量机本身是一种监督式学习算法,广泛应用于统计分类及回归分析中,用于解决数据挖掘中的维数灾难,将计算问题最终转化为凸二次规划问题.巧妙地利用向量内积的回旋,通过将非线性核函数将问题变为高维特征空间与低维输入空间的相互计算.

1.2 目标

找到一个超平面,使得他能尽可能多的将两类数据点正确分开,同时使分开的两类数据点距离分类面最远.

1.3 处理方式

构造一个在约束条件下的优化问题,即一个约束二次规划问题,求解该问题,得到分类器.

1.4 数学描述

  • 最大边缘超平面(MMH)
    边缘:从超平面到其边缘的侧面的最短距离等于到其边缘的另一侧面的最短距离,边缘侧面平行于超平面.
    在这里插入图片描述
图1.0 超平面与测评面边界
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist
from matplotlib.font_manager import FontProperties

font = FontProperties(fname='/usr/share/fonts/truetype/arphic/ukai.ttc')
fig = plt.figure(figsize=(8, 8))
ax = axisartist.Subplot(fig, 111)
fig.add_axes(ax)
# 隐藏坐标轴
ax.axis[:].set_visible(False)
# 添加坐标轴
ax.axis['x'] = ax.new_floating_axis(0, 0)
ax.axis['y'] = ax.new_floating_axis(1, 0)
# x轴添加箭头
ax.axis['x'].set_axisline_style('-|>', size=1.0)
ax.axis['y'].set_axisline_style('-|>', size=1.0)
# 设置坐标轴刻度显示方向
ax.axis['x'].set_axis_direction('top')
ax.axis['y'].set_axis_direction('right')
plt.xlim(-1, 7)
plt.ylim(-1, 7)

x = np.arange(1, 5, 0.1)
y = x
x_1 = [1.2, 1.6, 2.0, 2.4, 2.8, 3.0, 3.4, 3.8, 4.2, 4.6]
y_1 = [3.3, 3.0, 4.0, 3.6, 4.0, 1.8, 1.5, 2.0, 1.5, 3.2] 
plt.plot(x, y, 'r', label="超平面")
plt.plot(x, y-1, 'b', label="边缘侧面1")
plt.plot(x, y+1, 'g', label="边缘侧面2")
plt.plot(x, -y+5, 'black', label="法向量w")
plt.scatter(x_1, y_1, color="r")
plt.legend(prop=font)
plt.savefig("./images/svm_1.png", format="png")

2 线性可分数据

2.1 超平面

超平面与边界距离:
点: ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) (x_1, y_1), (x_2, y_2),...,(x_n, y_n) (x1,y1),(x2,y2),...,(xn,yn)
标记: y i ∈ y_i \in yi{-1, 1},其中, y i = 1 y_i=1 yi=1表示 x i ∈ c l a s s 1 x_i\in class_1 xiclass1, y i = − 1 y_i=-1 yi=1表示 x i ∈ c l a s s 2 x_i\in class_2 xiclass2.
列向量:
(1) x i = ( x i 1 , x i 2 , ⋯   , x i d ) T x_i=(x_{i1}, x_{i2}, \cdots, x_{id})^T\tag 1 xi=(xi1,xi2,,xid)T(1)
(2) w i = ( w i 1 , w i 2 , ⋯   , w i d ) T w_i=(w_{i1}, w_{i2}, \cdots, w_{id})^T\tag 2 wi=(wi1,wi2,,wid)T(2)
向量的模:
(3) ∣ ∣ w i ∣ ∣ 2 = w i 1 2 + w i 2 2 + ⋯ + w i d 2 = w i T ∗ w i \mid\mid w_i\mid\mid^2=w_{i1}^2+w_{i2}^2+\cdots+w_{id}^2=w_i^T*w_i\tag 3 wi2=wi12+wi22++wid2=wiTwi(3)
(4) ∣ ∣ x i ∣ ∣ 2 = x i 1 2 + x i 2 2 + ⋯ + x i d 2 = x i T ∗ x i \mid\mid x_i\mid\mid^2=x_{i1}^2+x_{i2}^2+\cdots+x_{id}^2=x_i^T*x_i\tag 4 xi2=xi12+xi22++xid2=xiTxi(4)
分类超平面表示:
(5) f ( x ) = x T ∗ w + b = 0 f(x)=x^T*w+b=0\tag 5 f(x)=xTw+b=0(5)
分类1:
(6) f ( x ) = x T ∗ w + b = 1 f(x)=x^T*w+b=1\tag 6 f(x)=xTw+b=1(6)
分类2:
(7) f ( x ) = x T ∗ w + b = − 1 f(x)=x^T*w+b=-1\tag 7 f(x)=xTw+b=1(7)
一般:
(8) { x i T ∗ w + b ≥ + 1 , y i = + 1 x i T ∗ w + b ≤ − 1 , y i = − 1 \begin{cases}x_i^T*w+b\geq+1, &\text y_i=+1\\x_i^T*w+b\leq-1, &\text y_i=-1\end{cases}\tag 8 {xiTw+b+1,xiTw+b1,yi=+1yi=1(8)

2.2 间隔

任一点A到超平面点B距离:
(9) r = A B → ∗ w → ∣ w → ∣ = ∣ x T ∗ w + b ∣ ∣ ∣ w ∣ ∣ r=\frac{\overrightarrow{AB}*\overrightarrow{w}}{\mid \overrightarrow{w}\mid} \\=\frac{\mid x^T*w+b\mid}{\mid\mid w \mid\mid}\tag 9 r=w AB w =wxTw+b(9)
其中, w → \overrightarrow{w} w 为超平面法向量.

  • 最大间隔
    (10) r = 2 ∣ ∣ w ∣ ∣ r=\frac{2}{\mid\mid w \mid\mid}\tag {10} r=w2(10)
    w w w b b b在约束 y i ∗ ( x i T ∗ w + b ) ≥ 1 y_i*(x_i^T*w+b)\geq1 yi(xiTw+b)1使间隔最大:
    m a x w , b 2 ∣ ∣ w ∣ ∣ max_{w,b}\frac{2}{\mid\mid w \mid\mid} maxw,bw2
    等价于找间隔最小:
    (11) { m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . : y i ∗ ( x i T ∗ w + b ) ≥ 1 \begin{cases} min_{w,b} \frac{1}{2}\mid\mid w\mid\mid^2\\s.t.: y_i*(x_i^T*w+b)\geq1\end{cases}\tag {11} {minw,b21w2s.t.:yi(xiTw+b)1(11)
    (12.0) L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − C ∑ i = 1 n l 0 / 1 α i [ y i ∗ ( x i T ∗ w + b ) − 1 ] L(w,b, \alpha)=\frac{1}{2}\mid\mid w\mid\mid^2-C\sum^n_{i=1}l_{0/1}\alpha_i[y_i*(x_i^T*w+b)-1]\tag {12.0} L(w,b,α)=21w2Ci=1nl0/1αi[yi(xiTw+b)1](12.0)
  • 硬间隔
    所有正分类点到平面距离与所有负分类点到平面距离总和达最大,设平面为分类正确的超平面,即硬间隔最大化,得到的SVM模型称为硬间隔支持向量机.所有样本都必须正确划分(可能会过拟合),容错率差.
  • 软间隔
    在各自正负分类中,有对方的数据,分类仍可进行,即容忍分类误差,误差即松弛变量,通过 C C C参数式(12.0)调整,对模型进行控制,称为软间隔最大化,得到的SVM称为软间隔支持向量机.
    式(12.0)中, l 0 / 1 ( z ) l_{0/1}(z) l0/1(z)称为 0 / 1 0/1 0/1损失函数.
    l 0 / 1 ( z ) = { 1 , i f z &lt; 0 0 , o t h e r w i s e l_{0/1}(z)=\begin{cases}1,ifz&lt;0\\0,otherwise\end{cases} l0/1(z)={1,ifz<00,otherwise
    l 0 / 1 l_{0/1} l0/1非凸,不连续,数学性质不太好,使式(12.0)不易直接求解,于是有其他函数替代,称为"替代损失",有如下3中形式:
    h i n g e 损 失 : l h i n g e = m a x ( 0 , 1 , − z ) 指 数 损 失 : l e x p ( z ) = e − z 对 数 损 失 : l l o g ( z ) = l o g ( 1 + e − z ) hinge损失:l_{hinge}=max(0, 1, -z)\\ 指数损失: l_{exp}(z)=e^{-z}\\ 对数损失:l_{log}(z)=log(1+e^{-z}) hinge:lhinge=max(0,1,z):lexp(z)=ez:llog(z)=log(1+ez)

2.3 拉格朗日乘数法

(12) L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − C ∑ i = 1 n α i [ y i ∗ ( x i T ∗ w + b ) − 1 ] L(w,b, \alpha)=\frac{1}{2}\mid\mid w\mid\mid^2-C\sum^n_{i=1}\alpha_i[y_i*(x_i^T*w+b)-1]\tag {12} L(w,b,α)=21w2Ci=1nαi[yi(xiTw+b)1](12)
其中, α = ( α 1 , α 2 , . . . , α n ) \alpha=(\alpha_1, \alpha_2, ..., \alpha_n) α=(α1,α2,...,αn)为拉格朗日乘子, C C C为松弛因子,分别对 w w w b b b求偏导,有:
(13) { ∑ i n y i α i = 0 w = ∑ i n y i α i x i \begin{cases}\sum_i^ny_i\alpha_i=0\\ w=\sum_i^ny_i\alpha_ix_i \end{cases}\tag {13} {inyiαi=0w=inyiαixi(13)
w w w带入拉格朗日函数,有对偶问题:

(14) m i n i n 1 2 ∑ i n ∑ j n α i α j y i y j x i T x j − ∑ i m α i min_i^n\frac{1}{2}\sum_i^n\sum_j^n\alpha_i\alpha_jy_iy_jx_i^Tx_j-\sum_i^m\alpha_i\tag{14} minin21injnαiαjyiyjxiTxjimαi(14)
超平面:
(15) f ( x ) = x T w + b = ∑ i n y i α i x i T x i + b f(x)=x^Tw+b\\=\sum_i^ny_i\alpha_ix_i^Tx_i+b\tag{15} f(x)=xTw+b=inyiαixiTxi+b(15)
约束条件:
(16) { ∑ i n y i α i = 0 α i ≥ 0 \begin{cases}\sum_i^ny_i\alpha_i=0\\ \alpha_i\geq 0 \end{cases}\tag{16} {inyiαi=0αi0(16)
KKT约束条件:
(17) { α i ≥ 0 , 非 负 y i ∗ ( x i T ∗ w + b ) − 1 ≥ 0 , 约 束 α i ∗ [ y i ∗ ( x i T ∗ w + b ) − 1 ] = 0 , 松 弛 \begin{cases} \alpha_i\geq 0,&amp;非负\\ y_i*(x_i^T*w+b)-1\geq0,&amp;约束\\ \alpha_i*[y_i*(x_i^T*w+b)-1]=0,&amp;松弛 \end{cases}\tag{17} αi0,yi(xiTw+b)10,αi[yi(xiTw+b)1]=0,(17)

求得 α i \alpha_i αi,该 i i i对应 ( x i , y i ) (x_i, y_i) (xi,yi),求得 w w w b b b.
(18) w = ∑ i n y i α i x i w=\sum_i^ny_i\alpha_ix_i \tag{18} w=inyiαixi(18)
(19) b = 1 − y i w T x i y i b=\frac{1-y_iw^Tx_i}{y_i} \tag{19} b=yi1yiwTxi(19)
得到超平面方程:
(20) f ( x ) = x T w + b f(x)=x^Tw+b\tag{20} f(x)=xTw+b(20)

2.4 分析

KKT条件分析SVM特性,对于任意样本 ( x i , y i ) (x_i, y_i) (xi,yi)总有 α i = 0 \alpha_i=0 αi=0 y i ∗ ( x i T ∗ w + b ) = 1 y_i*(x_i^T*w+b)=1 yi(xiTw+b)=1,若 α i = 0 \alpha_i=0 αi=0,则样本不在超平面中出现,不会对超平面产生任何影响;若 α i ≥ 0 \alpha_i\geq0 αi0,则有 y i f ( x i ) − 1 = 0 y_if(x_i)-1=0 yif(xi)1=0,对应的样本点在最大间隔的边界上,是一个支持向量,即训练完成后,训练样本不需保留,最终模型仅与支持向量有关.

  • 附识:
    列向量: X X X,
    (21) X = [ a 1 a 2 ⋯ a n ] T X=\begin{bmatrix}a_1&amp;a_2&amp;\cdots &amp;a_n\end{bmatrix}^T\tag{21} X=[a1a2an]T(21)
    则有:
    (22) X T ∗ X = ∑ i n a i 2 X^T*X=\sum_i^n a_i^2\tag{22} XTX=inai2(22)
    (23) X ∗ X T = [ a 1 a 2 ⋮ a n ] ∗ [ a 1 a 2 ⋯ a n ] = [ a 1 2 a 12 ⋯ a 1 n a 21 a 2 2 ⋯ a 2 n ⋮ a n 1 a n 2 ⋯ a n 2 ] X*X^T=\begin{bmatrix}a_1\\a_2\\\vdots \\a_n\end{bmatrix}*\begin{bmatrix}a_1&amp;a_2&amp;\cdots &amp;a_n\end{bmatrix}=\begin{bmatrix}a_1^2&amp;a_{12}&amp;\cdots&amp;a_{1n}\\a_{21}&amp;a_2^2&amp;\cdots&amp;a_{2n}\\\vdots \\a_{n1}&amp;a_{n2}&amp;\cdots&amp;a_{n}^2\end{bmatrix}\tag{23} XXT=a1a2an[a1a2an]=a12a21an1a12a22an2a1na2nan2(23)

3 非线性可分

在这里插入图片描述

图3.1 非线性可分数据结构

3.1 目标

将数据 x i x_i xi变换到高维的特征空间,使样本在这个特征空间内线性可分,如图所示,将二维空间映射到合适的三维空间,找到一个超平面,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分,是一个升维的过程。
在这里插入图片描述

图3.2 空间转换(升维)

3.2 特征空间转换

原始超平面方程:
(24) f ( x ) = x T ∗ w + b f(x)=x^T*w+b\tag{24} f(x)=xTw+b(24)
规定原始数据集 x x x映射后的特征向量为 ϕ ( x ) \phi(x) ϕ(x),则映射后的超平面方程:
(25) f ( x ) = ϕ ( x ) T ∗ w + b = 0 f(x)=\phi(x)^T*w+b=0\tag{25} f(x)=ϕ(x)Tw+b=0(25)
(26) m i n i n 1 2 ∑ i n ∑ j n α i α j y i y j ϕ ( x i ) T ϕ ( x j ) − ∑ i m α i min_i^n\frac{1}{2}\sum_i^n\sum_j^n\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j)-\sum_i^m\alpha_i\tag{26} minin21injnαiαjyiyjϕ(xi)Tϕ(xj)imαi(26)

约束条件:
(27) { ∑ i n y i α i = 0 α i ≥ 0 \begin{cases}\sum_i^ny_i\alpha_i=0\\ \alpha_i\geq 0 \end{cases}\tag{27} {inyiαi=0αi0(27)
KKT约束条件:
{ α i ≥ 0 , 非 负 y i ∗ ( x i T ∗ w + b ) − 1 ≥ 0 , 约 束 α i ∗ [ y i ∗ ( x i T ∗ w + b ) − 1 ] = 0 , 松 弛 \begin{cases} \alpha_i\geq 0,&amp;非负\\ y_i*(x_i^T*w+b)-1\geq0,&amp;约束\\ \alpha_i*[y_i*(x_i^T*w+b)-1]=0,&amp;松弛 \end{cases} αi0,yi(xiTw+b)10,αi[yi(xiTw+b)1]=0,
超平面:
(28) f ( x ) = x T w + b = ∑ i n y i α i ϕ ( x i ) T ϕ ( x i ) + b f(x)=x^Tw+b\\=\sum_i^ny_i\alpha_i\phi(x_i)^T\phi(x_i)+b\tag{28} f(x)=xTw+b=inyiαiϕ(xi)Tϕ(xi)+b(28)

3.3 核函数

引入:如上所示,原始数特征空间转换后的“新”数据,需要计算内积,形如: ϕ ( x i ) T ϕ ( x i ) \phi(x_i)^T\phi(x_i) ϕ(xi)Tϕ(xi),记为核函数 k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) k(x_i,x_j)=\phi(x_i)^T\phi(x_j) k(xi,xj)=ϕ(xi)Tϕ(xj)
超平面:
(29) f ( x ) = x T w + b = ∑ i n y i α i k ( x i , x j ) + b f(x)=x^Tw+b\\=\sum_i^ny_i\alpha_ik(x_i,x_j)+b\tag{29} f(x)=xTw+b=inyiαik(xi,xj)+b(29)
对偶问题:
(30) m i n i n 1 2 ∑ i n ∑ j n α i α j y i y j k ( x i , x j ) − ∑ i m α i min_i^n\frac{1}{2}\sum_i^n\sum_j^n\alpha_i\alpha_jy_iy_jk(x_i,x_j)-\sum_i^m\alpha_i\tag{30} minin21injnαiαjyiyjk(xi,xj)imαi(30)

  • 核函数
    由上可知,核函数是映射关系( ϕ \phi ϕ)的内积,映射关系本身仅仅是一种映射函数,并没有增加数据维度,而映射后的特征维度增加是利用了核函数的特性(矩阵内积),构造可以增加维度的核函数。核函数与单纯的映射关系无关,只与映射关系的内积有关系。
    核函数将 m m m维高维空间内积运算转化为 n n n维低维输入空间的核函数计算,从而巧妙地解决了在高维特征空间中计算的“维数灾难”。

3.4 常用核函数

序号核函数描述约束
1线性核 k ( x i , x j ) = x i T x i k(x_i,x_j)=x_i^Tx_i k(xi,xj)=xiTxi
2多项式核 k ( x i , x j ) = ( x i T x i ) d k(x_i,x_j)=(x_i^Tx_i)^d k(xi,xj)=(xiTxi)d d ≥ 1 d\geq1 d1为多项式的次数
3高斯核 k ( x i , x j ) = e ( − ∣ ∣ ( x i − x j ) ∣ ∣ 2 2 σ 2 ) k(x_i,x_j)=e^{(-\frac{\mid\mid(x_i-x_j)\mid\mid^2}{2\sigma^2})} k(xi,xj)=e(2σ2(xixj)2) σ &gt; 0 为 高 斯 核 的 宽 度 \sigma&gt;0为高斯核的宽度 σ>0
4拉普拉斯核 k ( x i , x j ) = e ( − ∣ ∣ ( x i − x j ) ∣ ∣ σ ) k(x_i,x_j)=e^{(-\frac{\mid\mid(x_i-x_j)\mid\mid}{\sigma})} k(xi,xj)=e(σ(xixj)) σ &gt; 0 \sigma&gt;0 σ>0
5Sigmoid核 k ( x i , x j ) = t a n h ( β x i T x j + θ ) k(x_i,x_j)=tanh(\beta x_i^Tx_j+\theta) k(xi,xj)=tanh(βxiTxj+θ) t a n h tanh tanh双曲正切函数, β &gt; 0 \beta&gt;0 β>0, θ &lt; 0 \theta &lt;0 θ<0

4 二次规划

4.1 数学模型

二次规划(Quadratic Programming, QP),数学模型为:
(31) { m i n : f ( x ) = 1 2 x T H x + c T x s . t . : A x ≥ b \begin{cases}min: f(x)=\frac{1}{2}x^THx+c^Tx\\s.t.:Ax\geq b\end{cases}\tag{31} {min:f(x)=21xTHx+cTxs.t.:Axb(31)
其中, H ∈ R n × n H\in R^{n\times n} HRn×n n n n阶对称矩阵, A A A m × n m\times n m×n维矩阵, c c c n n n维列向量, b b b m m m维列向量。特别地,当 H H H正定时,目标函数为凸函数,线性约束下可行域又是凸集,问题称为凸二次规划,凸二次规划是一种简单的非线性规划,具有如下性质:

  • K-T条件不仅是最优解必要条件,且是充分条件;
  • 局部最优解就是全局最优解;

4.2 等式约束二次规划

(32) { m i n : f ( x ) = 1 2 x T H x + c T x s . t . : A x = b \begin{cases}min: f(x)=\frac{1}{2}x^THx+c^Tx\\s.t.:Ax= b\end{cases}\tag{32} {min:f(x)=21xTHx+cTxs.t.:Ax=b(32)
其中, H ∈ R n × n H\in R^{n\times n} HRn×n n n n阶对称矩阵, A A A m × n m\times n m×n维矩阵, c c c n n n维列向量, b b b m m m维列向量。

4.2.1 直接消去法

4.2.2 拉格朗日乘数法

(33) L ( x , λ ) = 1 2 x T H x + c T x − λ T ( A x − b ) L(x, \lambda)=\frac{1}{2}x^THx+c^Tx-\lambda^T(Ax-b)\tag{33} L(x,λ)=21xTHx+cTxλT(Axb)(33)
分别对 x x x λ \lambda λ求偏导,有:
(34) { ∇ x L ( x , λ ) = 0 ∇ λ L ( x , λ ) = 0 \begin{cases}\nabla_xL(x, \lambda)=0\\\nabla_{\lambda}L(x, \lambda)=0\end{cases}\tag{34} {xL(x,λ)=0λL(x,λ)=0(34)
得到 K − T K-T KT条件:
(35) { H x + c − A T λ = 0 A x − b = 0 \begin{cases}Hx+c-A^T\lambda=0\\Ax-b=0\end{cases}\tag{35} {Hx+cATλ=0Axb=0(35)
矩阵形式:
(36) [ H − A T − A 0 ] [ x λ ] = − [ c b ] \begin{bmatrix}H&amp;-A^T\\-A&amp;0\end{bmatrix}\begin{bmatrix}x\\\lambda\end{bmatrix}=-\begin{bmatrix}c\\b\end{bmatrix} \tag{36} [HAAT0][xλ]=[cb](36)
其中,
[ H − A T − A 0 ] \begin{bmatrix}H&amp;-A^T\\-A&amp;0\end{bmatrix} [HAAT0]称为拉格朗日矩阵,她是对称的但不一定是正定的,如果拉格朗日矩阵可逆,则存在:
(37) [ H − A T − A 0 ] − 1 = [ Q − R − R T G ] \begin{bmatrix}H&amp;-A^T\\-A&amp;0\end{bmatrix}^{-1}=\begin{bmatrix}Q&amp;-R\\-R^T&amp;G\end{bmatrix}\tag{37} [HAAT0]1=[QRTRG](37)
依据式(36)求得等式约束二次规划问题的最优解:
(38) { x ∗ = − Q c + R b λ ∗ = R T c − G b \begin{cases}x^*=-Qc+Rb\\\lambda^*=R^Tc-Gb\end{cases}\tag {38} {x=Qc+Rbλ=RTcGb(38)
H − 1 H^{-1} H1存在时,可的 Q , R , G Q, R, G Q,R,G
(39) { Q = H − 1 − H − 1 A T ( A H − 1 A T ) − 1 A H − 1 R = H − 1 A T ( A H − 1 A T ) − 1 G = − ( A H − 1 A T ) − 1 \begin{cases}Q=H^{-1}-H^{-1}A^T(AH^{-1}A^T)^{-1}AH^{-1}\\R=H^{-1}A^T(AH^{-1}A^T)^{-1}\\G=-(AH^{-1}A^T)-1\end{cases}\tag{39} Q=H1H1AT(AH1AT)1AH1R=H1AT(AH1AT)1G=(AH1AT)1(39)

下面给出 x ∗ x^* x λ ∗ \lambda_* λ的另一种表达式,设 x ( 0 ) x^{(0)} x(0)为等式约束二次规划的任意可行解,即 x ( 0 ) x^{(0)} x(0)满足关系式: A x ( 0 ) = b Ax^{(0)}=b Ax(0)=b,在 x ( 0 ) x^{(0)} x(0)处目标函数的梯度可以表示为:
(40) ∇ f ( x ( 0 ) ) = H x ( 0 ) + c \nabla f(x^{(0)})=Hx^{(0)}+c\tag{40} f(x(0))=Hx(0)+c(40)
式(38)可表示为:
(41) { x ∗ = x ( 0 ) − Q ∇ f ( x ( 0 ) ) λ ∗ = R T ∇ f ( x ( 0 ) ) \begin{cases}x^*=x^{(0)}-Q\nabla f(x^{(0)})\\\lambda_*=R^T\nabla f(x^{(0)})\end{cases}\tag{41} {x=x(0)Qf(x(0))λ=RTf(x(0))(41)

4.3 不等式约束二次规划

(42) { m i n : f ( x ) = 1 2 x T H x + c T x s . t . : A x ≥ b \begin{cases}min: f(x)=\frac{1}{2}x^THx+c^Tx\\s.t.:Ax\geq b\end{cases}\tag{42} {min:f(x)=21xTHx+cTxs.t.:Axb(42)
其中, H ∈ R n × n H\in R^{n\times n} HRn×n n n n阶对称矩阵, A A A m × n m\times n m×n维矩阵, c c c n n n维列向量, b b b m m m维列向量。

4.3.1 有效集方法

有效集算法在每次迭代中,都以已知的可行点为起点,把在该点有效的约束作为等式约束,暂时不考虑该点的无效约束,在新的约束条件下极小化目标函数,求得新的比较好的可行点后,再重复以上步骤,这样,可把问题转化为有限个仅带等式约束的二次凸规划问题。
设在第 k k k次迭代中,一直可行点 x ( k ) x^{(k)} x(k),在该点的约束指标集,用 I k I_k Ik表示,此时的等式约束问题:
(43) { m i n : f ( x ) s . t . : a i T x = b i , i ∈ I k \begin{cases}min:f(x)\\s.t.:a_i^Tx=b_i,i\in I_k\end{cases}\tag{43} {min:f(x)s.t.:aiTx=bi,iIk(43)
其中, a i a_i ai为矩阵 A T A^T AT的第 i i i列元素构成的 n n n维向量
将坐标原点移动至 x ( k ) x^{(k)} x(k)处,令 d ( k ) = x − x ( k ) d^{(k)}=x-x^{(k)} d(k)=xx(k),则,目标函数为:
(44) f ( x ) = 1 2 ( d ( k ) ) T H d ( k ) + ∇ f ( x ( k ) ) T d ( k ) + f ( x ( k ) ) f(x)=\frac{1}{2}(d^{(k)})^THd^{(k)}+\nabla f(x^{(k)})^Td^{(k)}+f(x^{(k)})\tag{44} f(x)=21(d(k))THd(k)+f(x(k))Td(k)+f(x(k))(44)
于是问题转化为求解校正量 d k d_k dk的问题:
(45) { m i n : 1 2 ( d ( k ) ) T H d ( k ) + ∇ f ( x k ) T d ( k ) s . t . : a i T d ( k ) = 0 , i ∈ I k \begin{cases}min:\frac{1}{2}(d^{(k)})^THd^{(k)}+\nabla f(x_k)^Td^{(k)}\\s.t.:a_i^Td^{(k)}=0,i\in I_k\end{cases}\tag{45} {min:21(d(k))THd(k)+f(xk)Td(k)s.t.:aiTd(k)=0,iIk(45)

4.3.2 第一种过程

确定式(43)中的约束,即索引集 A ( x ∗ ) A(x^*) A(x)
构造索引集序列 A k A_k Ak来估计 A ( x ∗ ) A(x^*) A(x), A k A_k Ak称为工作集,
式(43)KKT条件:
(46) H x + c − ∑ i ∈ A k λ i a i = 0 Hx+c-\sum_{i\in A_k}\lambda_ia_i=0\tag{46} Hx+ciAkλiai=0(46)
其中, λ i ≥ 0 , i ∈ I \lambda_i\geq 0,i\in I λi0,iI,
式(45)KKT条件:
(47) H x ∗ + c − ∑ i ∈ A k λ i ∗ a i = 0 Hx^*+c-\sum_{i\in A_k}\lambda_i^*a_i=0\tag{47} Hx+ciAkλiai=0(47)
其中, λ i ∗ ≥ 0 , i ∈ I ( x ∗ ) \lambda_i^*\geq 0,i\in I(x^*) λi0,iI(x)

  • 定理1:设 x k ∈ D , A k ⊆ A ( x k ) x_k\in D,A_k\subseteq A(x_k) xkD,AkA(xk),若满足:
    (1) x k x_k xk是问题(43)的最优解;
    (2)式(43)的拉格朗日乘子 λ ( k ) \lambda^{(k)} λ(k)满足: λ i ( k ) ≥ 0 , ∀ i ∈ A k ⋂ I \lambda_i^{(k)}\geq 0, \forall i\in A_k\bigcap I λi(k)0,iAkI,则 x k x_k xk是二次规划问题(31)的最优解.

  • 定理2: 设 x k ∈ D , A k ⊆ A ( x k ) x_k\in D,A_k\subseteq A(x_k) xkD,AkA(xk),若满足:
    (1) d k = 0 d_k=0 dk=0是问题(45)的最优解;
    (2)式(45)的拉格朗日乘子 λ ( k ) \lambda^{(k)} λ(k)满足: λ i ( k ) ≥ 0 , ∀ i ∈ A k ⋂ I \lambda_i^{(k)}\geq 0, \forall i\in A_k\bigcap I λi(k)0,iAkI,则 x k x_k xk是二次规划问题(31)的最优解.

若定理中的两个条件不全满足,则 x k x_k xk不是原问题(31)的最优解,此时需要修正工作集 A k A_k Ak:
(1) d k = 0 d_k=0 dk=0,但是 ∃ i ∈ A k ⋂ I \exists i\in A_k \bigcap I iAkI满足: λ i ( k ) &lt; 0 \lambda_i^{(k)}&lt;0 λi(k)<0,此时只修改 A k A_k Ak,过程如下:


d k = 0 d_k=0 dk=0表明 x k x_k xk是(43)的最优解,此时令
(48) x k + 1 = x k , A k + 1 = A k \ ( i ) x_{k+1}=x_k,A_{k+1}=A_k\backslash(i)\tag{48} xk+1=xk,Ak+1=Ak\(i)(48)
其中, i = m i n i=min i=min{ λ j ( k ) ∣ λ j ( k ) &lt; 0 , j ∈ A k ⋂ I \lambda_j^{(k)}\mid \lambda_j^{(k)}&lt;0,j\in A_k\bigcap I λj(k)λj(k)<0,jAkI}


(2) d k ≠ 0 d_k\neq0 dk̸=0时,此时必须产生新的可行点 x k + 1 x_{k+1} xk+1也需修正 A k A_k Ak;过程如下:


  • (2.1)首先计算步长 0 &lt; α k ≤ 1 0&lt;\alpha_k\leq 1 0<αk1使 x k + 1 = x k + α k d k ∈ D x_{k+1}=x_k+\alpha_kd_k\in D xk+1=xk+αkdkD:
    i ∈ A k i\in A_k iAk时,对 ∀ α ≥ 0 , x k + α d k \forall \alpha\geq0,x_k+\alpha d_k α0,xk+αdk满足可行性,即:
    (49) a i T ( x k + α d k ) = a i T x k + α a i T d k = b i , ∀ i ∈ E a i T ( x k + α d k ) = a i T x k + α a i T d k ≥ b i , ∀ i ∈ I ⋂ A k a_i^T(x_k+\alpha d_k)=a_i^Tx_k+\alpha a_i^Td_k=b_i,\forall i\in E\\ a_i^T(x_k+\alpha d_k)=a_i^Tx_k+\alpha a_i^Td_k\geq b_i,\forall i\in I \bigcap A_k\tag{49} aiT(xk+αdk)=aiTxk+αaiTdk=bi,iEaiT(xk+αdk)=aiTxk+αaiTdkbi,iIAk(49)
    i ∈ I \ A k i\in I\backslash A_k iI\Ak,但 a i T d k ≥ 0 a_i^Td_k\geq 0 aiTdk0时,对 ∀ α ≥ 0 \forall \alpha\geq 0 α0得,
    (50) a i T ( x k + α d k ) = a i T x k + α a i T d k ≥ a i T x k ≥ b i a_i^T(x_k+\alpha d_k)=a_i^Tx_k+\alpha a_i^Td_k\geq a_i^Tx_k\geq b_i\tag{50} aiT(xk+αdk)=aiTxk+αaiTdkaiTxkbi(50)
    下面考虑 i ∈ I \ A k i\in I\backslash A_k iI\Ak a i T d k &lt; 0 a_i^Td_k&lt;0 aiTdk<0的情况:
    ∃ α ≥ 0 \exists \alpha \geq 0 α0,要使:
    (51) a i T ( x k + α d k ) = a i T x k + α a i T d k ≥ b i a_i^T(x_k+\alpha d_k)=a_i^Tx_k+\alpha a_i^Td_k\geq b_i\tag{51} aiT(xk+αdk)=aiTxk+αaiTdkbi(51)
    有:
    (52) α ≤ b i − a i T x k a i T d k \alpha\leq \frac{b_i-a_i^Tx_k}{a_i^Td_k}\tag{52} αaiTdkbiaiTxk(52)
    从而有:
    (53) α ≤ m i n { b i − a i T x k a i T ∣ i ∈ I \ A k 且 a i T d k &lt; 0 } \alpha \leq min\begin{Bmatrix}\frac{b_i-a_i^Tx_k}{a_i^T}\mid i\in I\backslash A_k且a_i^Td_k&lt;0 \end{Bmatrix}\tag{53} αmin{aiTbiaiTxkiI\AkaiTdk<0}(53)
    因此,要使 x k + α k d k ∈ D x_k+\alpha_kd_k\in D xk+αkdkD,步长 α k \alpha_k αk应取:
    (54) α ≤ m i n { 1 , b i − a i T x k a i T ∣ i ∈ I \ A k 且 a i T d k &lt; 0 } \alpha \leq min\begin{Bmatrix}1,\frac{b_i-a_i^Tx_k}{a_i^T}\mid i\in I\backslash A_k且a_i^Td_k&lt;0 \end{Bmatrix}\tag{54} αmin{1,aiTbiaiTxkiI\AkaiTdk<0}(54)
  • (2.2)如果 ∃ i ∈ I \ A k \exists i\in I\backslash A_k iI\Ak,使得 a i T x k + 1 = b i a_i^Tx_{k+1}=b_i aiTxk+1=bi,则 A k + 1 = A k ⋃ A_{k+1}=A_k\bigcup Ak+1=Ak{i},否则 A k + 1 = A k A_{k+1}=A_k Ak+1=Ak
    由上面方法确定的 x k + 1 x_{k+1} xk+1 A k + 1 A_{k+1} Ak+1满足:
    (55) A k + 1 ⊆ A ( x k + 1 ) A_{k+1}\subseteq A(x_{k+1})\tag{55} Ak+1A(xk+1)(55)
    (56) f ( x k + 1 ) ≤ f ( x k ) f(x_{k+1})\leq f(x_k)\tag{56} f(xk+1)f(xk)(56)
    对于(56):
    d k = 0 d_k=0 dk=0时显然成立;
    d k ≠ 0 d_k\neq0 dk̸=0时,由于 d k d_k dk是问题(45)的解,则必有
    1 2 d k T H d k + ∇ f ( x k ) T d k &lt; 0 \frac{1}{2}d_k^THd_k+\nabla f(x_k)^Td_k&lt;0 21dkTHdk+f(xk)Tdk<0
    从而:
    (57) f ( x k + α k d k ) = f ( x k ) + α k ∇ f ( x k ) T d k + 1 2 α k 2 d k T H d k = f ( x k ) + α k [ ∇ f ( x k ) T d k + 1 2 d k T H d k ] + 1 2 α k ( α k − 1 ) d k T H d k &lt; f ( x k ) f(x_k+\alpha_kd_k)=f(x_k)+\alpha_k \nabla f(x_k)^Td_k+\frac{1}{2}\alpha_k^2d_k^THd_k\\=f(x_k)+\alpha_k[\nabla f(x_k)^Td_k+\frac{1}{2}d_k^THd_k]+\frac{1}{2}\alpha_k(\alpha_k-1)d_k^THd_k&lt;f(x_k)\tag{57} f(xk+αkdk)=f(xk)+αkf(xk)Tdk+21αk2dkTHdk=f(xk)+αk[f(xk)Tdk+21dkTHdk]+21αk(αk1)dkTHdk<f(xk)(57)

  • 二次规划有效集法

(1) 给定初始可行点 x 0 ∈ D x_0\in D x0D,令 A 0 = A ( x 0 ) A_0=A(x_0) A0=A(x0), k = 0 k=0 k=0;
(2) 求解子问题 { m i n : 1 2 ( d ( k ) ) T H d ( k ) + ∇ f ( x k ) T d ( k ) s . t . : a i T d ( k ) = 0 , i ∈ I k \begin{cases}min:\frac{1}{2}(d^{(k)})^THd^{(k)}+\nabla f(x_k)^Td^{(k)}\\s.t.:a^T_id^{(k)}=0,i\in I_k\end{cases} {min:21(d(k))THd(k)+f(xk)Td(k)s.t.:aiTd(k)=0,iIk的解 d k d_k dk及乘子 λ i ( k ) \lambda_i^{(k)} λi(k), i ∈ A k i\in A_k iAk;
(3) 如果 d k = 0 d_k=0 dk=0,当 λ i ( k ) ≥ 0 , ∀ i ∈ A k ⋂ I \lambda_i^{(k)}\geq0,\forall i\in A_k \bigcap I λi(k)0,iAkI时解得 x k x_k xk,终止;否则,令 x k + 1 = x k , A k + 1 = A k \ i x_{k+1}=x_k,A_{k+1}=A_k\backslash {i} xk+1=xk,Ak+1=Ak\i,其中, i = m i n i=min i=min{ λ j ( k ) ∣ λ j ( k ) &lt; 0 , j ∈ A k ⋂ I \lambda_j^{(k)}\mid \lambda_j^{(k)}&lt;0,j\in A_k \bigcap I λj(k)λj(k)<0,jAkI}, k = k + 1 k=k+1 k=k+1,转(2);
(4) 如果 d k ≠ 0 d_k\neq0 dk̸=0,则计算步长 λ k = m i n \lambda_k=min λk=min{ 1 , b i − a i T x ( k ) a i T d ( k ) 1, \frac{b_i-a_i^Tx^{(k)}}{a_i^{T}d^{(k)}} 1,aiTd(k)biaiTx(k)},令 x k + 1 = x k + λ k d k x_{k+1}=x_k+\lambda_kd_k xk+1=xk+λkdk,如果存在 i ∈ I \ A k i\in I\backslash A_k iI\Ak,使 a i T x k + 1 = b i a_i^Tx_{k+1}=b_i aiTxk+1=bi,令 A k + 1 = A k ⋃ ( i ) A_{k+1}=A_k\bigcup (i) Ak+1=Ak(i),否则令 A k + 1 = A k A_{k+1}=A_k Ak+1=Ak, k = k + 1 k=k+1 k=k+1,转(2);


4.3.3 第二种过程

不同的计算情况,采取相应的步骤:
(1)若 x ( k ) + d ( k ) x^{(k)}+d^{(k)} x(k)+d(k)是可行点且 d ( k ) ≠ 0 d^{(k)} \neq 0 d(k)̸=0,则第 k + 1 k+1 k+1次的迭代点为: x ( k + 1 ) = x ( k ) + d ( k ) x^{(k+1)}=x^{(k)}+d^{(k)} x(k+1)=x(k)+d(k)
(2)若 x ( k ) + d ( k ) x^{(k)}+d^{(k)} x(k)+d(k)不是可行点,则取搜索方向为 d ( k ) d^{(k)} d(k),并令 x ( k + 1 ) = x ( k ) + λ k d ( k ) x^{(k+1)}=x^{(k)}+\lambda_kd^{(k)} x(k+1)=x(k)+λkd(k),按照保持可行性的要求,步长 λ \lambda λ的取值应使得对于任意 i ∉ I k i\notin I_k i/Ik均满足 a i T ( x ( k ) + λ k d ( k ) ) ≥ b i a_i^T(x^{(k)}+\lambda_kd^{(k)})\geq b_i aiT(x(k)+λkd(k))bi,由于 x ( k ) x^{(k)} x(k)是可行点, a i T x ( k ) ≥ b i a_i^Tx^{(k)}\geq b_i aiTx(k)bi,因此当 a i T d ( k ) ≥ 0 a_i^Td^{(k)}\geq0 aiTd(k)0是,任意的非负数 λ k \lambda_k λk均满足条件,当 a i T d ( k ) &lt; 0 a_i^Td^{(k)}&lt;0 aiTd(k)<0时,取正数:
λ k ≤ m i n { b i − a i T x ( k ) a i T d ( k ) ∣ i ∉ I k , a i T d ( k ) &lt; 0 } \lambda_k\leq min\begin{Bmatrix}\frac{b_i-a_i^Tx^{(k)}}{a_i^Td^{(k)}}\mid i \notin I_k, a_i^Td^{(k)&lt;0}\end{Bmatrix} λkmin{aiTd(k)biaiTx(k)i/Ik,aiTd(k)<0}
则对于每个 i ∉ I k i\notin I_k i/Ik,条件总能成立,为了在第 k k k次迭代中得到较好的可行点,取 λ = m i n 1 , λ ^ k \lambda=min{1, \hat \lambda_k} λ=min1,λ^k,若存在 p ∉ I k p\notin I_k p/Ik使 b p − a p T x ( k ) a p T d ( k ) &lt; 1 \frac{b_p-a_p^Tx^{(k)}}{a_p^Td^{(k)}}&lt;1 apTd(k)bpapTx(k)<1,则在点 x k + 1 x_{k+1} xk+1处有 a p T x ( k + 1 ) = a p T ( x ( k ) + λ k d ( k ) ) = b p a_p^Tx^{(k+1)}=a_p^T(x^{(k)}+\lambda_kd^{(k)})=b_p apTx(k+1)=apT(x(k)+λkd(k))=bp,说明在点 x k + 1 x_{k+1} xk+1处, a p T x ( k + 1 ) = a p T d ≥ b b a_p^Tx^{(k+1)}=a_p^Td\geq b_b apTx(k+1)=apTdbb为有效的约束,因此应当把指标 p p p加入点 x ( k + 1 ) x^{(k+1)} x(k+1)处的有效约束指标集 I k + 1 I_{k+1} Ik+1中,则令 I k + 1 = I k ⋃ p I_{k+1}=I_k\bigcup{p} Ik+1=Ikp
(3)若 d ( k ) = 0 d^{(k)}=0 d(k)=0,则 x ( k ) x^{(k)} x(k)是第 k k k步等式约束的最优解;
判断 x ( k ) x^{(k)} x(k)是否为原二次规划问题的最优解。
(1)计算所有有效约束的拉格朗日乘子, λ ( k ) , i ∈ I k \lambda^{(k)}, i\in I_k λ(k),iIk;
(2)如果 λ i ( k ) ≥ 0 , i ∈ I k \lambda_i^{(k)}\geq 0, i\in I_k λi(k)0,iIk,则 x ( k ) x^{(k)} x(k)是原二次规划问题的K-T点,由于原二次规划问题为凸优化,故 x ( k ) x^{(k)} x(k)为原二次规划问题的最优解;
(3)如果存在 q ∈ I k q\in I_k qIk,使 λ q ( k ) &lt; 0 \lambda_q^{(k)}&lt;0 λq(k)<0,则 x ( k ) x^{(k)} x(k)不可能是原二次规划为问题的最优解,因为可以验证:
λ q ( k ) &lt; 0 \lambda_q^{(k)}&lt;0 λq(k)<0时,在点 x ( k ) x^{(k)} x(k)处存在可行下降方向,因此,取:
λ i ( k ) = m i n λ i k ∣ i ∈ I k \lambda_i^{(k)}=min{\lambda_i^{k}\mid i\in I_k} λi(k)=minλikiIk
同时令: I k + 1 = I k \ r I_{k+1}=I_k \backslash {r} Ik+1=Ik\r
求解问题:
{ m i n : 1 2 ( d ( k ) ) T H d ( k ) + ∇ f ( x k ) T d ( k ) s . t . : a i T d ( k ) = 0 , i ∈ I k \begin{cases}min:\frac{1}{2}(d^{(k)})^THd^{(k)}+\nabla f(x_k)^Td^{(k)}\\s.t.:a_i^Td^{(k)}=0, i\in I_k\end{cases} {min:21(d(k))THd(k)+f(xk)Td(k)s.t.:aiTd(k)=0,iIk

  • 迭代步骤:

(1) 选取初始数据,给定初始可行点 x ( 1 ) x^{(1)} x(1),相应的有效约束指标集为 I 0 I_0 I0,令 k = 1 k=1 k=1
(2) 求解等式约束问题。设最优解为 d ( k ) d^{(k)} d(k),若 d ( k ) = 0 d^{(k)}=0 d(k)=0,则转(4);否则,令: λ k = m i n 1 , λ ^ k \lambda_k=min{1, \hat \lambda_k} λk=min1,λ^k, x ( k + 1 ) = x ( k ) + λ k d k x^{(k+1)}=x^{(k)}+\lambda_kd_k x(k+1)=x(k)+λkdk,然后计算 ∇ f ( x ( k + 1 ) ) \nabla f(x^{(k+1)}) f(x(k+1)),转(3);
(3) 修改有效约束指标集:若 λ k &lt; 1 \lambda_k&lt;1 λk<1,则令: I k + 1 = I k ⋃ p I_{k+1}=I_k\bigcup {p} Ik+1=Ikp k = k + 1 k=k+1 k=k+1,转(2);
λ k = 1 \lambda_k=1 λk=1,则令 k = k + 1 k=k+1 k=k+1,转(4);
(4) 检查是否满足终止准则,用式()计算得出的所有有效约束对应的拉格朗日乘子 λ i ( k ) , i ∈ I k \lambda_i^{(k)}, i\in I_k λi(k),iIk,记为:
λ r k = m i n λ i ( k ) ∣ i ∈ I k \lambda_r^k=min{\lambda_i^{(k)}}\mid i\in I_k λrk=minλi(k)iIk
λ r ( k ) ≥ 0 \lambda_r^{(k)}\geq 0 λr(k)0,则迭代终止, x ( k ) x^{(k)} x(k)为原二次规划问题的最优解;否则,从 I k I_k Ik中删除指标 r r r,转(2)。
λ k ≤ m i n { b i − a i T x ( k ) a i T d ( k ) ∣ i ∉ I k , a i T d ( k ) &lt; 0 } \lambda_k\leq min\begin{Bmatrix}\frac{b_i-a_i^Tx^{(k)}}{a_i^Td^{(k)}}\mid i\notin I_k, a_i^Td^{(k)}&lt;0 \end{Bmatrix} λkmin{aiTd(k)biaiTx(k)i/Ik,aiTd(k)<0}


5 应用

支持向量机可进行分类,回归和密度估计计算,应用在:

  • 手写字符识别;
  • 文本自动分类;
  • 人脸识别;
  • 时间序列预测;
  • 蛋白质识别;
  • DNA排列分析;

【参考文献】
[1]https://wenku.baidu.com/view/e8878e75ec3a87c24128c47e.html?from=search
[1]https://blog.csdn.net/qq_41149269/article/details/81774026

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值