在SVM的推导中,在得到了原问题的拉格朗日函数表达之后,是一个最小最大问题,通常会将其转化为原问题的对偶问题即是最大最小问题进行求解,我们这里简单介绍下最优化问题的对偶问题。本人无专业的数学学习背景,只能在直观的角度上解释这个问题。
前言
在SVM的推导中,在得到了原问题的拉格朗日函数表达之后,是一个最小最大问题,通常会将其转化为原问题的对偶问题即是最大最小问题进行求解,我们这里简单介绍下最优化问题的对偶问题。本人无专业的数学学习背景,只能在直观的角度上解释这个问题,如果有数学专业的朋友,还望不吝赐教。注意,本文应用多限于SVM,因此会比较狭隘。 如有谬误,请联系指正。转载请注明出处。
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:机器学习杂货铺3号店
最优化问题
最优化问题研究的是当函数(目标函数)在给定了一系列的约束条件下的最大值或最小值的问题,一般来说,一个最优化问题具有以下形式:
最优化问题可以根据目标函数和约束条件的类型进行分类:
- 如果目标函数和约束条件都为变量的线性函数, 称该最优化问题为线性规划;
- 如果目标函数为变量的二次函数, 约束条件为变量的仿射函数, 称该最优化问题为二次规划;
- 如果目标函数或者约束条件为变量的非线性函数, 称该最优化问题为非线性规划.
对偶问题
最优化问题存在对偶问题,所谓对偶问题,源于这个思想:
原始问题比较难以求解,通过构建其对偶问题,期望解决这个对偶问题得到其原问题的下界(在弱对偶情况下,对于最小化问题来说),或者得到原问题的解(强对偶情况下)。
在SVM中,因为其属于凸优化问题,因此是强对偶问题,可以通过构建对偶问题解决得到原问题的解。 我们举一个线性规划中一个经典问题,描述如下:
某工厂有两种原料A、B,而且能用其生产两种产品:
- 生产第一种产品需要2个A和4个B,能够获利6;
- 生产第二种产品需要3个A和2个B,能够获利4; 此时共有100个A和120个B,问该工厂最多获利多少?
可以简单得到其问题的数学表达式为:
其实,我们可以发现这其实是极大极小问题和其对偶问题,极小极大问题。
一些定义
原始问题
我们要讨论原问题和对偶问题,就需要一些定义,我们给出原始问题的非拉格朗日函数表达形式如式子
极小极大问题的对偶, 极大极小问题
我们定义:
原始问题和对偶问题的关系
正如前面所谈到的,原始问题的解和对偶问题的解存在一定的关系,对于任意的
既然有弱对偶就会存在强对偶。强对偶指的是
考虑原始问题
和对偶问题 ,假设 和 都是凸函数, 是仿射函数,并且不等式约束 是严格可行的,既存在 ,对所有 有 ,则存在 ,使得 是原始问题的解, 是对偶问题的解(满足这个条件的充分必要条件就是 满足KKT条件1),并且: