开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第十四天,点击查看活动详情
总结:此文为12月更文计划第十四天第二十六篇。
支持向量机(support vector machines)
SVM是广泛被使用的一个分类算法,在以前。
最后演化为了一个优化问题
SVM三个核心:间隔,对偶,核技巧(核函数)。
在这里我就只介绍最基础的概念。
什么是支持向量机
支持向量机也称为“支持向量网络”,是一种判别式机器学习分类算法。它使用决策边界(超平面)一次将数据点分类两类,支持向量分类器的主要目标是找到“最佳超平面”(决策边界)。
超平面方程:
有很多条线:无限条,具体找哪一条?间隔最大的那一条
最大间隔: 寻找参数 w 和b, 使得 y 最大.
如果太小,泛化太小:
会造成如下影响:
1. SVM的基本形态是一个硬间隔分类器,它要求所有样本都满足硬间隔约束(即函数间隔要大于1)
2. 当数据集中存在噪声点但是仍然满足线性可分的条件时,SVM为了把噪声点也划分正确,超平面就会向另外一个类的样本靠拢,这就使得划分超平面的几何间距变小,从而降低了模型的泛化性能。
3. 当数据集因为存在噪声点而导致已经无法线性可分时,此时就使用了核技巧,通过将样本映射到高维特征空间使得样本线性可分,这样就会得到—个复杂模型,并由此导致过拟合(原样本空间得到的划分超平面会是弯弯曲曲的,它确实可以把所有样本都划分正确,但得到的模型只对训练集有效),泛化能力极差。
margin=(min)Distance函数:
从n个样本点到超平面最近的距离
约束优化问题:
其中f(x)是目标函数,g(x)为不等式约束,h(x)为等式约束。
若f(x),h(x),g(x)三个函数都是线性函数,则该优化问题称为线性规划。 若任意一个是非线性函数,则称为非线性规划。
若目标函数为二次函数,约束全为线性函数,称为二次规划。
若f(x)为凸函数,g(x)为凸函数,h(x)为线性函数,则该问题称为凸优化。 注意这里不等式约束g(x)<=0则要求g(x)为凸函数,若g(x)>=0则要求g(x)为凹函数。
凸优化的任一局部极值点也是全局极值点,局部最优也是全局最优。
软间隔
软间隔我在这里就不细说了,
原理大概就是:现实任务中很难使得训练样本在特征空间中线性可分。引入“松弛变量”(slack variables) ξi≥0 ,允许SVM在一些样本上出错,即允许某些样本不满足约束
引入一个LOSS
核函数的作用
隐含着一个从低维空间到高维空间的映射,这个映射可以把低维空间中的线性不可分的两类点变成线性可分的.
核函数的性质:
1 核函数的线性组合仍为核函数
2 核函数的直积仍为核函数