机器学习-学习笔记2-支持向量机等
引言:
1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于人工神经网络,所以在这之后,人们将SVM应用于各个领域。大量使用SVM模型的论文不断涌现,包括国内和国外。
1线性可分和线性不可分的的定义
1.1线性可分
就是说可以用一个线性函数把两类样本分开,比如二维空间中的直线、三维空间中的平面以及高维空间中的线型函数。所谓可分指可以没有误差地分开;
如下图,是在二维空间中的线性可分
1.2线性不可分
指有部分样本用线性分类面划分时会产生分类误差的情况。
如下图,是在二维空间中的线性不可分
在三维空间中,线性可分和线性不可分描述如下:
1.3用数学严格的定义线性可分
1.4用向量形式来定义线性可分
2支持向量机优化问题
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;
SVM还包括核技巧,这使它成为实质上的非线性分类器。
SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
线性模型最优化的任务——在二维的的时候找直线,在三维的时候找平面,在多维的时候找超平面
2.1支持向量机寻找的最优分类直线应满足条件
2.1两个事实:
2.3线性可分情况下优化问题
2.4线性不可分情况下优化问题
人为事先设定的参数,叫做算法的超参数(hyper parameter)不断的变化C
一个算法的超参数越多,算法需要手动调整优化的地方就越多,算法的自动性就越低。
支持向量机是超参数很少的算法模型。(人工神经网络,卷积神经网络的超参数就很多)
3支持向量机SVM之非线性模型(低维到高维映射)
非线性模型中寻找一条直线进行二元分类似乎已经不太适用(如上图找不到直线进行二元分类),但是通过映射,将低维的量映射到高维,即通过高维映射后,在高维空间中,更有可能线性可分进行二元分类。维度越高,线性可分的概率越大
数据集在空间中对应的向量不可被一个超平面区分开
两个步骤来解决:
1、利用一个非线性的映射把原数据集中的向量点转化到一个更高维度的空间中
2、在这个高维度的空间中找一个线性的超平面来根据线性可分的情况处理
再来举个例子:
如图是异或问题,在二维空间中是非线形可分的。
因此,我们需要将二维的映射到五维。
由此可见,在五维中,是线性可分的。
高维情况下优化问题的解法和低维情况下是完全类似的。
3.如何定义映射?(寻找确定映射关系——核函数的确定)
为什么要用核函数Kernel Function
因为在机器学习中,我们求解的过程要用到内积,而变换后的高维空间的内积我们不好求,所以我们定义了这个核函数,可以把高维空间的内积运算转化成内为空间的某些运算,这样求起来不是很简单吗?
换句话说,如果我们有了核函数,我们就不再需要知道那个映射ϕ(x)到底是个什么鬼,我们就可以直接通过核函数,就可以求导高维空间的内积了,从而可以计算出高维空间中两个数据点之间的距离和角度。
常用的核函数。