《SVM笔记系列之四》最优化问题的对偶问题
前言
在SVM的推导中,在得到了原问题的拉格朗日函数表达之后,是一个最小最大问题,通常会将其转化为原问题的对偶问题即是最大最小问题进行求解,我们这里简单介绍下最优化问题的对偶问题。本人无专业的数学学习背景,只能在直观的角度上解释这个问题,如果有数学专业的朋友,还望不吝赐教。注意,本文应用多限于SVM,因此会比较狭隘。
如有谬误,请联系指正。转载请注明出处。
联系方式:
e-mail: FesianXu@163.com
QQ: 973926198
github: https://github.com/FesianXu
有关代码开源: click
最优化问题
最优化问题研究的是当函数(目标函数)在给定了一系列的约束条件下的最大值或最小值的问题,一般来说,一个最优化问题具有以下形式:
最优化问题可以根据目标函数和约束条件的类型进行分类:
1. 如果目标函数和约束条件都为变量的线性函数, 称该最优化问题为线性规划;
2. 如果目标函数为变量的二次函数, 约束条件为变量的仿射函数, 称该最优化问题为二次规划;
3. 如果目标函数或者约束条件为变量的非线性函数, 称该最优化问题为非线性规划.
对偶问题
最优化问题存在对偶问题,所谓对偶问题,源于这个思想:
原始问题比较难以求解,通过构建其对偶问题,期望解决这个对偶问题得到其原问题的下界(在弱对偶情况下,对于最小化问题来说),或者得到原问题的解(强对偶情况下)。
在SVM中,因为其属于凸优化问题,因此是强对偶问题,可以通过构建对偶问题解决得到原问题的解。
我们举一个线性规划中一个经典问题,描述如下:
某工厂有两种原料A、B,而且能用其生产两种产品:
1. 生产第一种产品需要2个A和4个B,能够获利6;
2. 生产第二种产品需要3个A和2个B,能够获利4;
此时共有100个A和120个B,问该工厂最多获利多少?
可以简单得到其问题的数学表达式为:
当然,得到这个式子的根据就是最大化其卖出去的产品的利润。但是,如果只问收益的话,明显地,还可以考虑卖出原材料A和B的手段,前提就是卖出原材料的盈利会比生产商品盈利高,假设产品A和产品B的单价为
其实,我们可以发现这其实是极大极小问题和其对偶问题,极小极大问题。
一些定义
原始问题
我们要讨论原问题和对偶问题,就需要一些定义,我们给出原始问题的非拉格朗日函数表达形式如式子
其中
这里下标
联想到我们在文章《SVM的拉格朗日函数表示以及其对偶问题》中一些关于对偶问题的讨论,我们知道其实
假设我们存在一个x,使得x违反原始问题的约束条件,从而有
为什么呢?因为若存在某个i使得
所以,如果是最小化问题,我们有极小极大问题
其与式子
其中
极小极大问题的对偶, 极大极小问题
我们定义:
在考虑极大化
式子
式子
实际上,通过这种方法我们可以将式子
原始问题和对偶问题的关系
正如前面所谈到的,原始问题的解和对偶问题的解存在一定的关系,对于任意的
等价于:
注意,式子
容易得到:
由此我们得到了在最小化问题中
既然有弱对偶就会存在强对偶。强对偶指的是
考虑原始问题
(1.1) 和对偶问题(3.9) ,假设f(x) 和gi(x) 都是凸函数,hj(x) 是仿射函数,并且不等式约束gi(x) 是严格可行的,既存在x ,对所有i 有gi(x)<0 ,则存在x∗,α∗,β∗ ,使得x∗ 是原始问题的解,α∗,β∗ 是对偶问题的解(满足这个条件的充分必要条件就是x∗,α∗,β∗ 满足KKT条件1),并且:
p∗=d∗=L(x∗,α∗,β∗)