机器学习-白板推导6 SVM 上
机器学习-白板推导6 SVM 上
1.SVM 核心知识点
Support Vector Machine(SVM) 有三宝,间隔,对偶,核技巧。其分类有:
- Hard-margin SVM
- Soft-margin SVM
- Kernel SVM
本文将介绍软硬间隔部分, 核技巧等将在下篇中介绍。
2. SVM模型引入
SVM模型就是找到一个超平面将两类数据点分隔开,这个超平面记为。如上图所示,这样的超平面很多,如,那么哪个最好呢?直觉上,离这些点距离越远越好。间隔就是相对距离最近的点与超平面的距离,首先先将问题数学化定义。
对于数据集,其中。要将数据点分隔开的间隔最大化,并且要将所有点分类正确:
因为约束条件可改写为:
对于间隔,即样本空间点到超平面的最小距离可写作:
进一步简化问题,式2中约束是,那么。这时最小间隔就是, 对于所有点都应该大于等于最小间隔,。目标函数整理后:
但是有个问题是函数间隔,就是放大为2倍时,函数间隔也会扩大。因此要约束。不妨令, 并且这时式4中等价于 (最大导数变为最小其互导数,并且为了简化计算改写下)。这时目标函数改写为:
3. SVM 模型求解(硬间隔)
上节中式5 是带约束的优化问题,可以用拉格朗日乘子法来求解。
其拉格朗日函数为:
其中. 如果其等于0,就没有约束条件了,变为直接取最小值。
关于原因:因为要目标函数的梯度和可行域的梯度要平行且同向,。如果小于0,就反向了。
那么式6和式5约束问题为什么等价呢?
令有:
若,那么 将取到无穷大,所以
若, 当时, 则取最大值0,因此
综上所述,将取。这样隐式地保证了 来满足约束条件。
现在原问题:
将其转化为对偶问题是:
简单介绍下对偶问题,具体看《统计学习方法》 P448。
式7中拉格朗日乘子法的极小极大问题的对偶问题是极大极小问题。
并满足,因为对于该不等式,最优解在最大值里面取最小的,而是最小值里面取最大的。类似于“宁为鸡头不为凤尾”。
弱对偶关系就是:。
强对偶关系就是:。
求解参数值:
对于目标函数 (转换为求解其对偶问题):
简化下方便计算:
- 对参数求导:
- 对参数求导,先将式11代入式10,然后求导。
对其求导得:
这里是样本数据的线性组合。
- 求解 , 依旧将代入式12得:
现在问题简化为:
4. SVM KKT条件导出
KKT条件实际上由以下部分构成:
- 目标函数和所有约束条件组成的拉格朗日函数的梯度为0。
- 互补松弛条件(complementary slackness), 就是不等式约束和其拉格朗日系数积为0。
- 不等式约束条件
- 等式约束条件
- 拉格朗日系数约束
其中,互补松弛条件解释跟小节3中部分类似,还可以看看关于这个得解释拉格朗日乘子法 - KKT条件 - 对偶问题。
导出式15的KKT条件为:
其中式16中第二排等式就是互补松弛条件。满足KKT条件是原问题的对偶问题具有强对偶关系的充分条件,当然也包括目标函数和不等式约束为凸函数,等式约束为仿射函数这些必备条件。
根据小节3中,。
那么呢?这时使用互补松弛条件来求解,。
再解释下具体SVM中这个条件是怎么来的。如下图,图来自于 Wiki SVM
图中距离分割超平面最近的点都落在上,这些点叫支持向量。SVM算法最核心部分就是找支持向量。
对于支持向量,必然有,那么中才有可能取值()。其它点的话,。
不妨假设一个支持向量为那么,
总结:
到此为止,我们求出了硬间隔的SVM的最优解,模型为:
其中,
并且KKT条件是原问题的对偶问题有强对偶关系的充要条件,利用支持向量求解SVM计算相对简单。支持向量寻找过程是通过代入数据点,从满足式15中当时,对应数据点就是是支持向量。具体计算算法看SVM SMO这节。
5. SVM 软间隔
上面介绍的SVM要求数据集能完全被分开,不能有数据点噪声落在硬间隔区间内,但是数据集必然有噪声等落在这个区间。Soft Margin就是允许一些点落在margin内。
如上图中,对于要分类的两类数据点,落入蓝色实线之间的点就是被误分类的,图中A点,那么。如果有多个呢?我们引入指示函数有:
其中是指示函数,不连续,不可导。
不妨将其转换为距离来看损失函数。
- 若,正确分类,损失为0
- 若,距离为图中,
用max来合并下这些距离,,这个函数叫hinge loss。
现在式5,加上合页损失就是目标函数:
其中,C是惩罚系数,有点像正则化中的系数。
令, 因为其是距离。式19就可以简化为:
如上图中,就是允许误分类点到分类边界的距离,也可以认为是允许误分类点的范围。接下来也可以用拉格朗日乘子法求解。
Inference
[2] 支持向量机SVM(Support Vector Machine)笔记
[3] 支持向量机
[4] 拉格朗日对偶性