前言~感知机
感知机:二分类线性模型,目标:求出一个分离超平面,将训练数据完全分为正负两类;
收敛性:当训练数据线性可分时,算法收敛,可以通过有限次迭代求得分离超平面,但有无数个解,需要对超平面增加约束条件,才能得到唯一最优解,即支持向量机。
一、 线性可分支持向量机
1. 特点
训练数据:线性可分
学习策略:硬间隔最大化
(间隔最大化:使分类后的间隔边界之间的距离最大
学习算法:求解【凸二次规划的最优算法】
线性可分SVM的最优解(分离超平面):存在且唯一 (即w和b都唯一)
2. 概念
函数间隔、几何间隔、间隔最大化
支持向量:与分离超平面距离最近的样本点实例;【硬间隔的支持向量在间隔边界上】
【重点】决定分离超平面时,【只有支持向量起作用】,与其他实例点毫无关系
移动支持向量,则分离超平面改变
移动或去掉其他实例点,分离超平面不变
因此模型叫做:支持向量机
间隔边界:支持向量所在的超平面
间隔:正例和负例的间隔边界之间的距离
3. 对偶问题
应用【拉格朗日对偶性】,通过求解对偶问题可以得到原始问题的最优解
对偶问题只涉及【输入实例与实例之间的内积】,便于引入核函数来表示
二、线性支持向量机
1. 特点
训练数据:近似线性可分(线性不可分)
(存在少数【特异点】,其余大部分数据线性可分)
处理方法:引入【松弛变量】,使得【函数间隔 + 松弛变量 ≥ 1】
学习策略:软间隔最大化
学习算法:求解【凸二次规划的最优算法】
线性SVM的最优解(分离超平面):不唯一 (w唯一,但b不唯一)
2. 概念
支持向量:
【硬间隔的支持向量在间隔边界上】,但【软间隔的支持向量有3种情况:】
1)松弛变量=0,支持变量在间隔边界上
2)0<松弛变量<1,分类正确,且支持向量在间隔边界与分类超平面之间
3)松弛变量=1,支持向量在分类超平面上
4)松弛变量>1,分类错误,支持向量在分离超平面误分类一侧
【重点】决定分离超平面时,【只有支持向量起作用】,与其他实例点毫无关系
移动支持向量,则分离超平面改变
移动或去掉其他实例点,分离超平面不变
3. 对偶问题
应用【拉格朗日对偶性】,通过求解对偶问题可以得到原始问题的最优解
对偶问题只涉及【输入实例与实例之间的内积】,便于引入核函数来表示
核函数等价于输入向量映射到特征空间后的内积
4. 合页损失函数
线性支持向量机 等价于 最小化:【合页损失函数 + 正则化项】
合页损失函数 = [1 - 函数间隔]+
含义:
1)当样本点被正确分类时,且函数间隔(确信度)> 1 时,损失为0
2)否则损失为:1 - 函数间隔
0-1损失函数 = 0(正确分类时) || 1(错误分类时)
合页损失函数 等价于 0-1损失函数的上界
【比较】
0-1损失函数:分类正确,loss = 0
合页损失函数:分类正确,且确信度较高时(函数间隔>1),loss=0
三、非线性支持向量机 & 核函数
1. 核技巧
训练数据有时候非线性可分,但可用一条曲线(非线性模型,超曲面)分成两类,则用【非线性变换】转化为线性可分问题
输入空间(非线性,超曲面模型)
————非线性变换,映射为————>
特征空间(线性,超平面模型,即SVM)
核技巧: 通过【非线性变换】,将输入空间(欧氏空间,或离散集合)映射到特征空间(希尔伯特空间),使得在输入空间中的超曲面模型,映射为特征空间中的超平面模型(SVM)
2. 核函数
2.1 定义
核函数 = 两个输入向量映射到特征空间后的内积
其中的映射:将输入空间(低维空间)映射到特征空间(高维空间)
2.2 应用
线性支持向量机的【对偶形式】中,只涉及【输入实例与实例之间的内积】,可以用核函数代替
因此可以利用【线性分类问题方法】解决【非线性分类问题】的SVM
学习是【隐式地在特征空间进行】,不需要【显示定义】特征空间和映射函数
2.3 正定核(及充要条件)
正定核函数也就是核函数
称为核函数(正定核函数)的【充要条件】:
对于任意的特征向量,对称函数K对应的Gama矩阵是【半正定的】
2.4 常用核函数
1)多项式核函数
2)高斯核函数
3)字符串核函数
定义在【离散数据集合上】,主要用于文本分类、信息检索…
【重点】字符串核函数:给出两个字符串中长度为某个值的所有子串,所组成的特征向量的【余弦相似度】
两个字符串相同子串越多,则越相似,则余弦相似度越大,则字符串核函数的值越大
可通过【动态规划】快速计算
四、序列最小最优算法(SMO算法)
特点:
- 一种SVM的快速算法
- 不断将原凸二次规划问题分解为【只有两个变量的子问题】,并对子问题求解,直到【所有变量满足 KKT条件 为止】
基本思路:
1)若所有变量的解均满足【KKT条件】则即为最优解
2)否则(若有变量不满足KKT条件),选择两个变量,其中一个是【违反KKT最严重的那个】,另一个由约束条件自动确定,针对这两个变量构建一个【二次规划的子问题】求解