支持向量机(Support Vector Machine), 是一种解决分类和回归的经典机器学习模型。以解决分类问题为例,它的核心思想是,最大化输入向量到超平面的间隔。
之前在 感知机 里面我们已经了解到其思想为找到一个超平面,来划分特征空间为正负空间,从而实现分类的目的(如下图)。
但是,这样的超平面不只一个,怎么来从中找到一个最优的超平面呢? 如何评价超平面的优劣呢?这就是SVM解决分类问题的思想。
1. Hard-SVM
1.1 模型
SVM的思想,通俗来讲是,最大化 Margin(x), Margin(x)代表为,所有点到超平面距离中的最小距, 即
化为最优化的标准型为:
由于 y = 1 or -1, 且分类正确时
这里假设,
由于我们可以等比例的修改 w和b是的,
由于该问题是典型的二次优化问题,可以采用优化工具包来解决,也可以转化为对偶问题解决。
2. 策略
如何求解式(1)中的二次优化问题,这里可以采用拉格朗日乘法来解决。采用拉格朗日乘法有一个前提,即该问题满足 KKT 条件
2.1 Dual Problem
优化问题的标准形式为:
这里引入广义拉格朗日乘法:
考虑x的函数
如果x不满足式(2)中的约束条件,即存在
而当 x符合(2)中条件时,
因此考虑极小化问题,
设:
则有:
当 优化问题的解满足 KKT条件时,
2.2 KKT条件
把下面的条件记作 KKT 条件:
证明:
当 时 , 此 时 条 件 不 起 作 用 , 为 等 式 约 束 , 此 时 当 时 , 此 时
2.3 模型求解
因此,原问题可以转化为对偶问题
求解:
- 对 w,b 求偏导数并令其等于0
- 将(4),(5)带入到(3)中,可得:
此时优化问题为:
对G函数求极大值,即可得到解
, 带入到 (4),(5) 可以求解出 。求解b, 易知存在
(可以使用反证法证明,若全部 均为0,则 w为0,而w=0不是原始优化问题的解)。此时,有 ,可得 。
2.4 支撑向量
由2.3 第3、4步可知,如果只保留 support vector
。
reference
- 统计学习方法. 李航. chapter 7
- 机器学习. 周志华
- 本文标题:Hard-SVM
- 本文作者:codeflysafe
- 创建时间:2020-09-27 16:14:19
- 本文链接:https://codeflysafe.github.io/2020/09/27/SVM(1)_ Hard-SVM/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!