机器学习(15)之支持向量机原理(一)线性支持向量机

简介:

前言

支持向量机(Support Vecor Machine,以下简称SVM)虽然诞生只有短短的二十多年,但是自一诞生便由于它良好的分类性能席卷了机器学习领域,并牢牢压制了神经网络领域好多年。如果不考虑集成学习的算法,不考虑特定的训练数据集,在分类算法中的表现SVM说是排第一估计是没有什么异议的。

SVM是一个二元分类算法,线性分类和非线性分类都支持。经过演进,现在也可以支持多元分类,同时经过扩展,也能应用于回归问题。本篇的重点是SVM用于线性分类时模型和损失函数优化的一个总结。

回顾感知机模型

在(机器学习(7)之感知机python实现)中,讲到了感知机的分类原理,感知机的模型就是尝试找到一条直线,能够把二元数据隔离开放到三维空间或者更高维的空间,感知机的模型就是尝试找到一个超平面,能够把所有的二元类别隔离开。对于这个分离的超平面,我们定义为 wTx+b=0,如下图。在超平面 wTx+b=0 上方的我们定义为y=1,在超平面 wTx+b=0下方的我们定义为y=−1。可以看出满足这个条件的超平面并不止一个。那么我们可能会尝试思考,这么多的可以分类的超平面,哪个是最好的呢?或者说哪个是泛化能力最强的呢?

01d2137a74c53570f07a26265fb4533325094ef8

感知机模型的损失函数优化,它的思想是让所有误分类的点(定义为M)到超平面的距离和最小,即最小化下式:

6c99edae1e0b8b415861dfb7c238d6f9d58783f0

当和w和b成比例的增加,比如,当分子的和w和b扩大N倍时,分母的L2范数也会扩大N倍。也就是说,分子和分母有固定的倍数关系。那么我们可以固定分子或者分母为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。在感知机模型中,我们采用的是保留分子,固定分母||w||2=1,即最终感知机模型的损失函数为

289127a44cf79d76e6a8b8bb0ba7ba032d1ad25a

如果我们不是固定分母,改为固定分子,作为分类模型有没有改进呢?

函数间隔与几何间隔

在正式介绍SVM的模型和损失函数之前,还需要先了解下函数间隔和几何间隔的知识。

在分离超平面固定为wTx+b=0的时候,|wTx+b|表示点x到超平面的距离。通过观察wTx+b和y是否同号,我们判断分类是否正确,这些知识我们在感知机模型里都有讲到。这里我们引入函数间隔的概念,定义函数间隔γ′为:

a47ca641647a6f15268b6473cc1fb6c8d3e2b16b

它就是感知机模型里面的误分类点到超平面距离的分子。对于训练集中m个样本点对应的m个函数间隔的最小值,就是整个训练集的函数间隔。


函数间隔并不能正常反应点到超平面的距离,在感知机模型里我们也提到,当分子成比例的增长时,分母也是成倍增长。为了统一度量,我们需要对法向量w加上约束条件,这样我们就得到了几何间隔γ,定义为:

7cd4302692417d21ee18071782493386e86d0860

支持向量

在感知机模型中,我们可以找到多个可以分类的超平面将数据分开,并且优化时希望所有的点都离超平面远。但是实际上离超平面很远的点已经被正确分类,我们让它离超平面更远并没有意义。反而我们最关心是那些离超平面很近的点,这些点很容易被误分类。如果我们可以让离超平面比较近的点尽可能的远离超平面,那么我们的分类效果会好有一些。SVM的思想起源正起于此。

如下图所示,分离超平面为wTx+b=0,如果所有的样本不光可以被超平面分开,还和超平面保持一定的函数距离,那么这样的分类超平面是比感知机的分类超平面优的。可以证明,这样的超平面只有一个。和超平面平行的保持一定的函数距离的这两个超平面对应的向量,我们定义为支持向量,如下图虚线所示。

45fc73d959076e3cbca881238ac0bef7b0288be4

SVM模型目标函数与优化

SVM的模型是让所有点到超平面的距离大于一定的距离,也就是所有的分类点要在各自类别的支持向量两边。用数学式子表示为:

961409ea2aa5585c4cd042d0bd77a35072d866d8

一般我们都取函数间隔γ′为1,这样我们的优化函数定义为:

01f33507901de5df9fa5bf860c88c268eadbd435

也就是说,我们要在约束条件yi(wTxi+b)≥1(i=1,2,...m)下,最大化1)||w||2。可以看出,这个感知机的优化方式不同,感知机是固定分母优化分子,而SVM是固定分子优化分母,同时加上了支持向量的限制。由于1||w||2的最大化等同于12||w||22的最小化。这样SVM的优化函数等价于:

2c488f38df1f74cf8c03dbc9eec14fcb602d712b

由于目标函数12||w||22是凸函数,同时约束条件不等式是仿射的,根据凸优化理论,我们可以通过拉格朗日函数将我们的优化目标转化为无约束的优化函数,这和(机器学习(13)之最大熵模型详解)中讲到了目标函数的优化方法一样。具体的,优化函数转化为:

67f11a841666f9bfe764b979c685565776f21e91

这个优化函数满足KKT条件,也就是说,我们可以通过拉格朗日对偶将我们的优化问题转化为等价的对偶问题来求解。我们可以先求优化函数对于和w和b的极小值。接着再求拉格朗日乘子α的极大值。

首先我们来求和w和b的极小值,即minL(w,b,α)。这个极值我们可以通过对和w和b分别求偏导数得到:

dfe4f79da6aa3697cccdeb296e1913484a5afc71

从上两式子可以看出,我们已经求得了和w和α的关系,只要我们后面接着能够求出优化函数极大化对应的α,就可以求出我们的w了,至于b,由于上两式已经没有b,所以最后的b可以有多个。既然我们已经求出和w和α的关系,就可以带入优化函数L(w,b,α)消去w了。我们定义:

96424957ddf4e3d6162f0123a5bf147fa36c6c6f

现在我们来看将w替换为α的表达式以后的优化函数ψ(α)的表达式:

1977100300e20f4a2e565c64bf790b44342a03ae

对ψ(α)求极大化的数学表达式如下:

9f51d86abeee64434dcee82b9999fc4a610570e4

可以去掉负号,即为等价的极小化问题如下:

679110a1c6436dbaa1fede6b9cade48ab91324b4

只要我们可以求出上式极小化时对应的α向量就可以求出和w和b了。在这里,我们假设通过SMO算法,我们得到了对应的α的值α∗。可以求出对应的w的值:

19eef2fb94bdd88d6e06fd8c8bf2f1008869de0d

求b则稍微麻烦一点。注意到,对于任意支持向量(xx,ys),都有

cd517a9796444af212c75086825d53afb10c2f36

小结

线性可分SVM的学习方法对于非线性的数据集是没有办法使用的, 有时候不能线性可分的原因是线性数据集里面多了少量的异常点,由于这些异常点导致了数据集不能线性可分, 那么怎么可以处理这些异常点使数据集依然可以用线性可分的思想呢? 我们在下一节的线性SVM的软间隔最大化里继续讲。


原文发布时间为:2017-09-01

本文来自云栖社区合作伙伴“机器学习算法与Python学习”,了解相关信息可以关注“机器学习算法与Python学习”。

相关文章
|
1月前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
73 4
|
2月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
163 1
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
探索机器学习中的深度学习模型:原理与应用
探索机器学习中的深度学习模型:原理与应用
47 0
|
3月前
|
机器学习/深度学习 算法 知识图谱
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
|
3月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
3月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
3月前
|
机器学习/深度学习 程序员
【机器学习】朴素贝叶斯原理------迅速了解常见概率的计算
【机器学习】朴素贝叶斯原理------迅速了解常见概率的计算
|
3月前
|
机器学习/深度学习 算法
【机器学习】逻辑回归介绍(逻辑回归应用场景,原理,损失及优化详解!!!)
【机器学习】逻辑回归介绍(逻辑回归应用场景,原理,损失及优化详解!!!)
|
5月前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】机器学习的基本概念、算法的工作原理、实际应用案例
机器学习是人工智能的一个分支,它使计算机能够在没有明确编程的情况下从数据中学习并改进其性能。机器学习的目标是让计算机自动学习模式和规律,从而能够对未知数据做出预测或决策。
167 2
|
4月前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。
下一篇
开通oss服务