支持向量机之一:约束优化问题、硬间隔SVM

时间:2022-10-13 07:52:56

约束优化问题

带约束的优化问题可以描述为以下形式
min ⁡ x   f ( x ) s . t .   ∀ i , g i ( x ) ≤ 0 , ∀ j , h j ( x ) = 0 (1.1) \tag{1.1} \begin{aligned} \min_x\ &f(x)\\ s.t.\ &\forall i, g_i(x)\leq 0, \\ &\forall j, h_j(x)=0& \end{aligned} xmin s.t. f(x)i,gi(x)0,j,hj(x)=0(1.1)

f ( x ) f(x) f(x) 为目标函数, g i ( x ) g_i(x) gi(x) 为不等式约束, h j ( x ) h_j(x) hj(x) 为等式约束。

若目标函数为二次函数,约束全为线性函数,称为二次规划。

f ( x ) f(x) f(x) 为凸函数, g i ( x ) g_i(x) gi(x) 为凸函数, h j ( x ) h_j(x) hj(x) 为仿射函数,则该问题称为凸优化。注意这里不等式约束 g i ( x ) ≤ 0 g_i(x)\leq0 gi(x)0 则要求 g i ( x ) g_i(x) gi(x) 为凸函数,若 g i ( x ) ≥ 0 g_i(x)\geq0 gi(x)0 则要求为凹函数。对于凸优化问题,全局有唯一的极小值点。

构造拉格朗日函数:
L ( x , λ , μ ) = f ( x ) + ∑ i λ i g i ( x ) + ∑ j μ j h j ( x ) (1.2) \tag{1.2} L(x, \lambda, \mu)=f(x)+\sum_i\lambda_ig_i(x) + \sum_j \mu_jh_j(x) L(x,λ,μ)=f(x)+iλigi(x)+jμjhj(x)(1.2)
原问题等价于:
min ⁡ x   max ⁡ λ , μ L ( x , λ , μ ) s . t .   λ i ≥ 0 (1.3) \tag{1.3} \begin{aligned} \min_x\ &\max_{\lambda, \mu}L(x, \lambda, \mu)\\ s.t.\ &\lambda_i\geq 0 \end{aligned} xmin s.t. λ,μmaxL(x,λ,μ)λi0(1.3)
简单理解:如果某个条件不满足,一定可以调整相应的 λ / μ \lambda/\mu λ/μ 使得函数值任意大,从而不可能成为最优解;如果所有条件都满足,那么后面两个求和号里的东西都为 0,拉格朗日函数就等于原函数。

这样,我们就把关于 x x x 的限制给去除掉了。

对于约束优化问题,最优解 x ∗ x^* x 需要满足 KKT 条件:
{ ∇ x L ( x ∗ , λ ∗ , μ ∗ ) = 0 λ i ∗ ≥ 0 λ i g i ( x ∗ ) = 0 g i ( x ∗ ) ≤ 0 h j = 0 (1.4) \tag{1.4} \left\{ \begin{matrix} \nabla_x L(x^*, \lambda^*,\mu^*)=0\\ \lambda_i^*\geq 0\\ \lambda_ig_i(x^*)=0\\ g_i(x^*)\leq 0 \\h_j=0 \end{matrix} \right. xL(x,λ,μ)=0λi0λigi(x)=0gi(x)0hj=0(1.4)
对于凸优化问题,这个条件是充要的。

直观解释是:对于某条不等式约束 i i i,要么 λ i = 0 \lambda_i=0 λi=0 ,表示该限制无用;要么 λ i > 0 \lambda_i> 0 λi>0,此时有 g i ( x ∗ ) = 0 g_i(x^*)=0 gi(x)=0,即最优解在边界上,同时 f ( x ) f(x) f(x) 负梯度方向一定与 g ( x ) g(x) g(x) 梯度方向相同,即 ∇ x L ( x ∗ , λ ∗ , μ ∗ ) = 0 \nabla_x L(x^*, \lambda^*,\mu^*)=0 xL(x,λ,μ)=0 (否则可以沿着 g i ( x ) = 0 g_i(x)=0 gi(x)=0 上的某个方向移动使得函数值减小)。梯度为零也意味着最优解处 f ( x ) f(x) f(x) 的梯度方向一定与 h j ( x ) = 0 h_j(x)=0 hj(x)=0 的法线方向共线。

几何理解见 拉格朗日乘子法和KKT条件 - PilgrimHui - 博客园 (cnblogs.com)

对偶问题

以式 ( 1.3 ) (1.3) (1.3) 为例,它的对偶问题为
max ⁡ λ , μ   min ⁡ x L ( x , λ , μ ) s . t .   λ i ≥ 0 (2.1) \tag{2.1} \begin{aligned} \max_{\lambda, \mu}\ &\min_xL(x, \lambda, \mu)\\ s.t.\ &\lambda_i\geq 0 \end{aligned} λ,μmax s.t. xminL(x,λ,μ)λi0(2.1)

可以发现,原问题是关于 x x x 的函数,对偶问题是关于 λ , μ \lambda, \mu λ,μ 的函数。

对偶问题和原问题有什么关系?首先有弱对偶性,简单来说就是 max ⁡ min ⁡ ≤ min ⁡ max ⁡ \max \min \leq \min \max maxminminmax

证明:任给 x ∗ , λ ∗ , μ ∗ x^*, \lambda^*, \mu^* x,λ,μ,显然有 min ⁡ x L ( x , λ ∗ , μ ∗ ) ≤ L ( x ∗ , λ ∗ , μ ∗ ) ≤ max ⁡ λ , μ L ( x ∗ , λ , μ ) \min_x L(x,\lambda^*,\mu^*)\leq L(x^*,\lambda^*,\mu^*)\leq \max_{\lambda,\mu}L(x^*,\lambda,\mu) minxL(x,λ,μ)L(x,λ,μ)maxλ,μL(x,λ,μ),故第一项的最大值也小于等于第三项的最小值,得证。容易发现,弱对偶性总是成立的。

但我们想要的是强对偶性,即 max ⁡ min ⁡ = min ⁡ max ⁡ \max \min=\min \max maxmin=minmax,这样就可以把原问题转化为对偶问题进行求解。

给出 Slater 条件
∃ x ∈ relint D s . t .   ∀ i , g i ( x ) < 0 (2.2) \tag{2.2} \exist x\in \text {relint} D\\ s.t.\ \forall i,g_i(x)<0 xrelintDs.t. i,gi(x)<0(2.2)

其中 relint 表示内点。凸优化 + Slater 条件是对偶关系的充分不必要条件。还有放松的 Slater 条件:只需要校验限制中的非仿射函数。

强对偶关系也可以推导出 KKT 条件,前提是原问题、对偶问题最优解都能取到(一个不能取到的例子是 min ⁡ 1 / x ,   s . t .   x ≥ 1 \min 1/x,\ s.t.\ x\geq1 min1/x, s.t. x1),下面给出证明:

记原问题最优值为 p ∗ p^* p,对偶问题最优值为 d ∗ d^* d,有
d ∗ = max ⁡ λ , μ min ⁡ x L ( x , λ , μ ) = min ⁡ x L ( x , λ ∗ , μ ∗ ) ≤ L ( x ∗ , λ ∗ , μ ∗ ) = f ( x ∗ ) + ∑ i λ i g i ( x ∗ ) + ∑ j μ j h j ( x ∗ ) = f ( x ∗ ) + ∑ i λ i g i ( x ∗ ) ≤ f ( x ∗ ) = p ∗ (2.3) \tag{2.3} \begin{aligned} d^*&=\max_{\lambda, \mu}\min_xL(x, \lambda, \mu)\\ &=\min_xL(x,\lambda^*,\mu^*)\\ &\leq L(x^*,\lambda^*,\mu^*)\\ &=f(x^*)+\sum_i\lambda_ig_i(x^*) + \sum_j \mu_jh_j(x^*)\\ &=f(x^*)+\sum_i\lambda_ig_i(x^*)\\ &\leq f(x^*)\\ &=p^* \end{aligned} d=λ,μmaxxminL(x,λ,μ)=xminL(x,λ,μ)L(x,λ,μ)=f(x)+iλigi(x)+jμjhj(x)=f(x)+iλigi(x)f(x)=p(2.3)
要满足强对偶关系,当且仅当两个不等号同时取等。第一个不等号取等推出偏导为零 ∇ x L ( x ∗ , λ ∗ , μ ∗ ) = 0 \nabla_x L(x^*, \lambda^*,\mu^*)=0 xL(x,λ,μ)=0,第二个不等号取等推出松弛互补条件 λ i g i = 0 \lambda_ig_i=0 λigi=0。KKT 条件的其他三条就是原本或我们引入的限制。

对于强对偶性和 KKT 条件的要求和关系,详见 KKT条件在使用的时候有什么要求吗?是否要求强对偶 - 知乎

对偶关系集合解释详见 机器学习-支持向量机6-约束优化问题-对偶关系的几何解释_哔哩哔哩_bilibili

硬间隔SVM

对于线性可分的 n 个样本点 ( x i , y i ) (x_i, y_i) (xi,yi) x i x_i xi 为坐标, y i y_i yi 为标签(1 或 -1)。要找到一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0 区分两类数据,并且使该超平面到数据点集的最小距离最大,即要求:

max ⁡ w , b   min ⁡ i ∣ w T x i + b ∣ ∥ w ∥ s . t .   y i ( w T x i + b ) > 0 (3.1) \tag{3.1} \begin{aligned} \max_{w,b}\ &\min_i \frac{{|w^Tx_i+b|}}{\|w\|}\\ s.t.\ &y_i(w^Tx_i+b)>0 \end{aligned} w,bmax s.t. iminwwTxi+byi(wTxi+b)>0(3.1)
如果 w , b w,b w,b 对应的超平面能够正确分类,那么同时将他们缩放一定倍数一定能够使得 min ⁡ y i ( w T x i + b ) = 1 \min y_i(w^Tx_i+b)= 1 minyi(wTxi+b)=1 成立。因此原问题也等价于
max ⁡ w , b   min ⁡ i ∣ w T x i + b ∣ ∥ w ∥ s . t .   min ⁡ y i ( w T x i + b ) = 1 (3.2) \tag{3.2} \begin{aligned} \max_{w,b}\ &\min_i \frac{{|w^Tx_i+b|}}{\|w\|}\\ s.t.\ &\min y_i(w^Tx_i+b)=1 \end{aligned} w,bmax s.t. iminwwTxi+bminyi(wTxi+b)=1(3.2)
化简一下目标
max ⁡ w , b min ⁡ i ∣ w T x i + b ∣ ∥ w ∥    ⟺    max ⁡ w , b 1 ∥ w ∥ min ⁡ i y i ( w T x i + b )    ⟺    max ⁡ w , b 1 ∥ w ∥    ⟺    min ⁡ w , b 1 2 w T w (3.3) \tag{3.3} \max_{w,b} \min_i \frac{{|w^Tx_i+b|}}{\|w\|} \iff \max_{w,b} \frac{1}{\|w\|}\min_i y_i(w^Tx_i+b) \iff \max_{w,b} \frac{1}{\|w\|} \iff \min_{w,b} \frac12 w^Tw w,bmaximinwwTxi+bw,bmaxw1iminyi(wTxi+b)w,bmaxw1w,bmin21wTw(3.3)
因此原问题化为
min ⁡ w , b   1 2 w T w s . t .   min ⁡ y i ( w T x i + b ) = 1 (3.4) \tag{3.4} \begin{aligned} \min_{w,b}\ &\frac12 w^Tw\\ s.t.\ &\min y_i(w^Tx_i+b)=1 \end{aligned} w,bmin s.t. 21wTwminyi(wTxi+b)=1(3.4)
其实可以再进一步
min ⁡ w , b   1 2 w T w s . t .   y i ( w T x i + b ) ≥ 1 (3.5) \tag{3.5} \begin{aligned} \min_{w,b}\ &\frac12 w^Tw\\ s.t.\ &y_i(w^Tx_i+b)\geq 1 \end{aligned} w,bmin s.t. 21wTwyi(wTxi+b)1(3.5)
解释一下这一步等价的原因。如果求得解 min ⁡ y i ( w T x i + b ) = k > 1 \min y_i(w^Tx_i+b)=k>1 minyi(wTxi+b)=k>1,那么有 min ⁡ y i ( ( w k ) T x i + b k ) = 1 \min y_i((\frac{w}{k})^Tx_i+\frac{b}{k})=1 minyi((kw)Txi+kb)=1,且 ( w k ) T ( w k ) < w T w (\frac w k)^T(\frac w k) < w^Tw (kw)T(kw)<wTw。因此 w , b w, b w,b 肯定不是最优解。故这一步是在我们最优化目标下才成立的。

得到 SVM 的基本型:
min ⁡ w , b   1 2 w T w s . t .   1 − y i ( w T x i + b ) ≤ 0 (3.6) \tag{3.6} \begin{aligned} \min_{w,b}\ &\frac12 w^Tw\\ s.t.\ &1- y_i(w^Tx_i+b)\leq 0 \end{aligned} w,bmin s.t. 21wTw1yi(wTxi+b)0(3.6)

模型求解

( 3.6 ) (3.6) (3.6) 是一个凸优化问题,其实可以直接求解。但我们有更高效的方法。

既然这是带约束的问题,首先写出拉格朗日函数
L ( w , b , λ ) = 1 2 w T w + ∑ i λ i ( 1 − y i ( w T x i + b ) ) (4.1) \tag{4.1} L(w,b,\lambda)=\frac 1 2 w^Tw + \sum_i \lambda_i(1-y_i(w^Tx_i+b))\\ L(w,b,λ)=21wTw+iλi(1yi(wTxi+b))(4.1)

将其转化为对 w , b w,b w,b 无约束的问题
min ⁡ w , b   max ⁡ λ L ( w , b , λ ) s . t .   λ i ≥ 0 (4.2) \tag{4.2} \begin{aligned} \min_{w,b}\ &\max_\lambda L(w, b, \lambda)\\ s.t.\ &\lambda_i \geq 0 \end{aligned} w,bmin s.t. λmaxL(w,b,λ)λi0(4.2)

对偶问题为
max ⁡ λ   min ⁡ w , b L ( w , b , λ ) s . t .   λ i ≥ 0 (4.3) \tag{4.3} \begin{aligned} \max_\lambda\ &\min_{w,b}L(w, b, \lambda)\\ s.t.\ &\lambda_i \geq 0 \end{aligned} λmax s.t. w,bminL(w,b,λ)λi0(4.3)

我们要优化的目标是个凸函数,约束是线性的(满足放松的 Slater 条件),满足强对偶。

转化为对偶问题的好处是,内层对 w , b w,b w,b 是无限制的,可以求偏导来找到最优解。
∂ L ∂ b ≜ 0 ⇒ ∑ i λ i y i = 0 (4.4) \tag{4.4} \frac{\partial L}{\partial b}\triangleq0\Rightarrow \sum_i \lambda_iy_i = 0 bL0iλiyi=0(4.4)
代入 ( 4.1 ) (4.1) (4.1)
L ( w , b ∗ , λ ) = 1 2 w T w + ∑ i λ i − ∑ i λ i y i w T x i (4.5) \tag{4.5} L(w,b^*,\lambda)=\frac 1 2 w^Tw+\sum_i \lambda_i - \sum_i\lambda_iy_iw^Tx_i L(w,b,λ)=21wTw+iλiiλiyiwTxi(4.5)

w w w 求偏导
∂ L ∂ w = w − ∑ i λ i y i x i ≜ 0 ⇒ w ∗ = ∑ i λ i y i x i (4.6) \tag{4.6} \frac{\partial L}{\partial w}= w - \sum_i\lambda_i y_ix_i\triangleq0\Rightarrow w^*=\sum_i\lambda_i y_ix_i wL=wiλiyixi0w=iλiyixi(4.6)

再代入 ( 4.5 ) (4.5) (4.5)
L ( w ∗ , b ∗ , λ ) = 1 2 ( ∑ i λ i y i x i ) T ( ∑ i λ i y i x i ) + ∑ i λ i − ∑ i λ i y i ( ∑ j λ j y j x j ) T x i = − 1 2 ∑ i ∑ j λ i λ j y i y j x i T x j + ∑ i λ i (4.7) \tag{4.7} \begin{aligned} L(w^*,b^*,\lambda)&=\frac 1 2 \bigg( \sum_i\lambda_iy_ix_i \bigg)^T\bigg( \sum_i\lambda_iy_ix_i \bigg)+\sum_i\lambda_i-\sum_i\lambda_iy_i\bigg( \sum_j\lambda_jy_jx_j \bigg)^Tx_i\\ &=-\frac 1 2 \sum_i\sum_j\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_i\lambda_i \end{aligned} L(w,b,λ)=21(iλiyixi)T(iλiyixi)+iλiiλiyi(jλjyjxj)Txi=21ijλiλjyiyjxiTxj+iλi(4.7)
最终可以化为
min ⁡ λ   1 2 ∑ i ∑ j λ i λ j y i y j x i T x j − ∑ i λ i s . t .   ∑ i λ i y i = 0 , λ i ≥ 0 (4.8) \tag{4.8} \begin{aligned} \min_\lambda\ &\frac 1 2 \sum_i\sum_j\lambda_i \lambda_jy_iy_jx_i^Tx_j-\sum_i\lambda_i\\ s.t.\ &\sum_i \lambda_iy_i = 0,\\ &\lambda_i \geq 0\\ \end{aligned} λmin s.t. 21ijλiλjyiyjxiTxjiλiiλiyi=0,λi0(4.8)

求解这个问题得到 λ \lambda λ,就可以带入式 ( 4.6 ) (4.6) (4.6) 得到 w ∗ w^* w

上面提到的,满足强对偶性的问题最优解满足 KKT 条件,即
λ i ∗ ( 1 − y i ( ( w ∗ ) T x i + b ∗ ) ) = 0 (4.9) \tag{4.9} \lambda_i^*(1-y_i((w^*)^Tx_i+b^*))=0 λi(1yi((w)Txi+b))=0(4.9)
λ i ∗ = 0 \lambda_i^*=0 λi=0,该样本无关紧要;若 λ i ∗ > 0 \lambda_i^*>0 λi>0,有 y i ( ( w ∗ ) T x i + b ∗ ) = 1 y_i((w^*)^Tx_i+b^*)=1 yi((w)Txi+b)=1,即该样本点在最大间隔边界上,称其为支持向量。这就是支持向量机名字的由来。一般情况下,我们得到的模型和大部分不在边界的点是没有关系的,因此鲁棒性较强。

设有支持向量 ( x k , y k ) (x_k,y_k) (xk,yk) 满足 y k ( ( w ∗ ) T x k + b ∗ ) = 1 y_k((w^*)^Tx_k+b^*)=1 yk((w)Txk+b)=1,即
b ∗ = y k − ( w ∗ ) T x k (4.10) \tag{4.10} b^*=y_k-(w^*)^Tx_k b=yk(w)Txk(4.10)
这样也能求出 b ∗ b^* b,也就找到了最优超平面。

最后一个问题就是怎么求解 λ \lambda λ?通常使用序列最小优化算法(Sequential Minimal Optimization, SMO)。该算法不断执行如下两个步骤直至收敛:

  • 选取一对需要更新的 λ i , λ j \lambda_i, \lambda_j λi,λj
  • 固定其余参数,优化目标函数

发现这个过程很类似于坐标上升算法,即每次通过更新多元函数中的一维,经过多次迭代直到收敛。由于目标函数是凸的,SMO 得到的的一定是全局最优解。