【机器学习 02】支持向量机

1. 线性可分 ( Linear Separable )

用数学严格定义训练样本以及他们的标签 假设:我们有N个训练样本和他们的标签: 其中

1.1 用数学严格的定义线性可分

线性可分的严格定义:一个训练样本集,在 i=1~N 线性可分,是指存在,使得对 i=1~N ,有: (1) 若 = +1 ,则 (2) 若 = -1,则

1.2 用向量的形式定义线性可分

假设:

(1) 若 = +1 ,则 (2) 若 = -1,则

简化:

如果一个数据集是线性可分的,那么将存在无穷多个超平面,将各个类别分开。 支持向量机算法: 1. 解决线性可分问题; 2. 再将线性可分问题中获得的结论推广到线性不可分情况

支持向量机要找的是使得间隔( Margin )最大的那条直线,且这条线是在两条平行线的中间。

支持向量机寻找的最优分类直线应满足: (1) 该直线分开了两类; (2) 该直线最大化间隔(margin) (3) 该直线处于间隔的中间,到所有支持向量,距离相等

1.3 如何寻找最大化间隔?

假定训练样本集是线性可分的:支持向量机需要寻找的是最大化间隔(MARGIN),特征空间维度>=四维时,分割将会变成超平面(Hyperplane)。

1.3.1 最小化(Minimize) :

事实1:

事实2:

相当于

支持向量机优化问题推导中最难理解的部分用 a 去缩放 、b:

( ,b) 表示的超平面和 (a,ab) 表示的超平面是同一个平面

根据事实2有:

因此,最大化支持向量到超平面的距离等价于最小化

1.3.2 限制条件 :

1.3.3 凸优化问题

二次规划的定义: (1)目标函数 (Objective Function)是二次项。 (2)限制条件是一次项。

凸优化问题要么无解,要么只有一个全局的极值解。

(注:可以了解模拟退火算法)

2. 线性不可分 ( Nonlinear Separable )

2.1 再线性可分的基础上添加松弛变量

放松限制条件的基本思路:对每个训练样本及标签,设置松弛变量 (slack variable)

限制条件改写:

比例因子 C :人为设定,起到平衡两项的作用。

人为事先设定的参数叫做算法的超参数(HYPER PARAMETER)

我们需要不断变化C的值,同时测试算法的识别率,从而选取超参数C 。

支持向量机是超参数很少的模型。

2.2 扩大函数范围,提高非线性的处理能力

特征空间从低纬度映射到高纬度,在高纬特征空间中仍然用线性超平面对数据进行分类。

构造低纬到高纬的映射 ,能把线性可分的数据集变为线性不可分的数据集。

假设在一个M维空间上随机取N个训练样本,随机的对每个训练样本赋予标签+1或-1。假设这些训练样本线性可分的概率为P(M),当M趋于无穷大的时候,P(M) = 1。

当特征空间的维度增加时,待估计参数 ( ,b) 的维度也会增加。整个算法的模型自由度也会增加。

经验分享 程序员 微信小程序 职场和发展