支持向量机(二)
来源:互联网 发布:魔音软件 编辑:程序博客网 时间:2024/06/12 01:12
为什么要引入对偶呢?其原因有二:
1.解原始问题是困难的,而对偶问题相对容易。
2.通过对偶,可以自然引入核函数
对偶:
对偶是一个很宽泛的概念,是一种方法。常常求解对偶问题比原始问题要容易。如证明 成立与证明非A不成立是对偶。>=与<=是对偶,min与max是对偶等等。但要注意,对偶问题与原问题等价是有一定条件的!
图1
图1左中原始问题与对偶问题不等价,右图中原始问题与对偶问题等价。何时等价?我们将会在后面讲到。接下来先介绍约束最优化问题。
约束最优化问题:
在我们开始之前,我们先介绍约束最优化问题,这是最优化理论中一个非常重要的部分。其形式如下:
这是最为典型的约束最优化问题形式,在各个工程领域都会遇到,应用非常广泛,大家一定要熟悉。我们介绍如下定理,不加证明。
下面介绍凸规划,其具有一系列良好性质。
凸函数定义可百度,在此不再说明。
我们接下来说明直接求解原始问题理论上是可行的,即直接运用KKT条件即可,但实际运算上是困难的。
上一篇的最优化问题如下:
直接利用KKT条件得到
仍然非常的难解。下面我们将通过解对偶问题来解这个最优化。
第一步:得原始问题
我们把最优化问题(1)重写在下面,称为原始问题(prime problem):
由约束条件可知x的可行域只能限制在D内。问题(7)等价于在左图定义域D内取得最小值。
图2
为了去掉约束条件,如果我们能构造如右图的,使
那么问题(7)与便是等价的。且取得最优解的一定在D内。此时便消去了约束条件。这种通过引入∞惩罚不满足约束
条件的区域的方法叫做罚函数法。
接下来的任务是如何找到一个这样的。
我们考虑max拉格朗日函数
如果gi(x)或hj(x)不满足(7)中的约束条件,如gi(x) > 0,那么总可以调整αi或βi使为∞。而在约束条件内,如gi(x) ≤ 0,只有令αi= 0才能取得最大。此时
可知L(x,α,β)满足(8)的要求,故令
原始问题(7)可以写为
第二步:对偶
我们把(10)式的min和max调换一下位置,便得到对偶问题(dual problem):
此时有两个问题:
问题1:p*与d*相等吗?
问题2:如果p*与d*相等时,那么它们对应的x*和α*和β*相等吗?
不加证明的给出一个定理:
此定理说明和可以同时达到最优。图1给出了一个形象化的解释。
图1
第三步:解对偶问题。
套用KKT条件解一下就解出来了。下面将给一个例子。
例:求解上一篇中支持向量机的最优化问题(11)
1.得原始问题:
其中
为拉格朗日函数。
2.转换原始问题(13)为对偶问题
3.用KKT条件解
解得
将(17)代入(14)化简得到
此时仅为关于α的函数。
4.对偶问题(15)变为
综合上面对α的约束,我们得到最优化问题:
这是一个标准的二次规划形式,去掉了不等式约束。有成熟的解的理论和方法。可参阅最优化教材。这样我们就解得了α。
5.求w, b
由(15)解得w。
再看(14)第三式,一定存在一个αi > 0, (i=1, 2, ..., k)使成立。(若所有αi = 0则w = 0),故有,解得b。
6.求最佳分类面
最佳分类面为
小结:
本节我们讨论了用对偶求解支持向量机的方法。
在下一节中,我们将讨论含有噪声点线性不可分的情况。
博主e-mail:qiuqiangkong@gmail.com
- 支持向量机(二)
- 支持向量机(二)
- 支持向量机(二)
- 支持向量机(二)
- 支持向量机(二)
- 支持向量机(二)
- SVM-支持向量机(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 支持向量机SVM(二)
- 分析一种通过修改PE实现的反调试
- C++的继承中有趣的现象
- UITableView的简单使用
- apache负载均衡配置方案
- bt安装u盘最简单方法,其他都若爆了
- 支持向量机(二)
- NSURLConnection 下载数据 -- IOS(实例)
- http://www.cyqdata.com/cyqdata/article-detail-428
- Linux平台下java程序员的基本功(四)
- IOS 7 过渡之 Content Views (视图内容)
- Linux平台下java程序员的基本功(五)
- java-类和实例
- java读取txt文件中的数据
- Linux平台下java程序员的基本功(六)