总算理解了SVM的对偶问题

机器学习中,许多优化算法可以归结为凸优化问题,像正则化。我觉得SVM可以说是凸优化的一个非常优秀的应用。随着机器学习的深入,慢慢去推导各种机器学习的算法,在推导SVM的算法过程并不顺利,最先就卡在SVM的对偶上,从推导公式上觉得并没有问题,可总觉得抽象晦涩,没有直观的感觉。为此,找了许多关于SVM的资料,仍然如此,最后只得去快速刷一遍凸优化,总算理解了这个问题。

首先,我们来看一下SVM优化目标的拉格朗日方程:

L(w,b,a) = ||w||^2/2-\sum ^n_{i=1}a_i(y_i(w^Tx_i+b)-1)                 

我们假定a是一个常数,将上式看作关于(w,b)的函数,则有

L(w,b,a)= \left\{\begin{matrix} ||w||^2/2,a = 0 \\ \leq ||w||^2/2, (y_i(w^Tx_i+b)-1)\geq 0,a> 0 \\> ||w||^2/2 ,(y_i(w^Tx_i+b)-1)< 0,a> 0\end{matrix}\right.

只要违反约束,这个函数值马上会做出惩罚。

\boldsymbol{\theta (w,b)} = \underset{a\geq 0}{max}L(w,b,a) ,约束项 (y_i(w^Tx_i+b)-1)\geq 0

由凸优化中的定义可以知道,这是凸二次规划线性约束问题,\boldsymbol{\theta (w,b)}是一个凸函数,它必然有极小值。它的意义可以这么理解,对于给定的w,b,找出一个a,使得该函数值最大。为什么这么做呢?假定w,b使得约束成立,a为非负,要达到最大值,a只能为0,\boldsymbol{\theta (w,b)}函数值为||w||^2/2。而当约束不成立时,\boldsymbol{\theta (w,b)}函数值必然会等于+\infty。所以,通过在(w,b)两个参数构建的空间中搜索后,我们可以得到集合包含了||w||^2/2+\infty,这里w是一个变量,按照我们的优化目标,我们是需要找到一个最小的w,使得||w||^2/2最小。

\boldsymbol{\theta (w,b)} = \left\{\begin{matrix} ||w||^2/2, (y_i(w^Tx_i+b)-1)\geq 0\\ +\infty ,(y_i(w^Tx_i+b)-1)< 0\end{matrix}\right.

那么通过 \underset{w,b}{min}(\theta (w,b)) = \underset{w,b}{min}(\underset{a\geq 0}{max}L(w,b,a)),我们最终可以得到优化目标的解。但是,对这个问题没办法直接求解

对原问题做求极值,得到仍然是原来的约束条件。

凸优化的核心 对偶 来了。

我们先假设w*,b*,a*是最优解,则有\underset{w,b}{min}(\theta (w,b)) = \theta (w^*,b^*)=L(w^*,b^*,a^*)=||w^*||^2/2 = p^*,这是原问题的全局最优解,找不到比这个更好的解了。

原问题的对偶问题,就是把原问题的max和min交换一下\underset{a\geq 0}{max}(\underset{w,b}{min}L(w,b,a))

先看这个函数, \underset{w,b}{min}L(w,b,a),对于给定的a,求出使其最小的(w,b),由于(w,b)并没有什么约束,可以任意取值。假设a = 0时候,约束失效,这个函数值无疑为0,只要w允许取零向量。

\underset{w,b}{min}L(w,b,a)= \left\{\begin{matrix} 0,a = 0 \\ \leq ||w||^2/2, (y_i(w^Tx_i+b)-1)\geq 0,a> 0 \\> ||w||^2/2 ,(y_i(w^Tx_i+b)-1)< 0,a> 0\end{matrix}\right.
        对于上式而言,假设w在可行解内,在w不变的时候,我们总可以找到一个b使得约束成立。使得上式的最小值的(w,b)总是落在可行解范围内。那么w有没有可能落在可行解之外呢,答案是没有可能。假设w在可行解之外,则有

\underset{w,b}{min}L(w,b,a)> ||w||^2/2 ,(y_i(w^Tx_i+b)-1)< 0,a> 0

那么我们可以不改变w的模的前提下,进行旋转w,调整b,使得(w,b)成为可行解

\underset{w,b}{min}L(w,b,a)\leq ||w||^2/2 ,(y_i(w^Tx_i+b)-1)< 0,a> 0

因此,w总是落在可行解中。

我们只需要在(w,b)的可行解里面,对原问题和对偶问题进行等价性比较。(w,b)是存在一个可行解范围的,无论是w还是b中的每一个元素,不可能像a任意取。好了,关键点来了,在可行解里面,对于任意给定的a1而言,总有\underset{w,b}{min}L(w,b,a_1)\leq L(w^*,b^*,a_1)\leq||w^*||/2= p^*

推广一下,在可行解空间中,w,b,a都满足以下条件

q^* =\underset{a\geq 0}{max}(\underset{w,b}{min}L(w,b,a)) \leq L(w,b,a)<=\underset{w,b}{min}(\underset{a\geq 0}{max}L(w,b,a)) =p^*

下面用一张简陋的图描述一下整个情况。wi,bi,ai为都是向量,不是标量,为了简单起见,每一列代表一个a向量的取值,每一行代表了一个(w,b)的一个组合。这样,二维矩阵表示了所有w,b,a组合

可以看到新问题的最优值q*是小于等于p*。对于SVM来说,只要满足KKT条件,两者是等价,就是强对偶问题。KKT又是一个复杂的问题,这里不展开讨论。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值