【机器学习基础】从感知机到支持向量机&支持向量机的多分类方法
前言
本篇文章是个人对于从感知机到支持向量机的整个过程的思考和推理:
❝感知机--->缺陷--->加入约束/优化策略(为什么可行)--->支持向量机
❞
不涉及支持向量机的学习过程(从原始凸二次规划问题转化为拉格朗日对偶问题)以及线性可分、线性、非线性支持向量机的讨论(本文采用线性可分的前提条件)。从支持向量机的定义出发,解释「最大间隔化的由来」、「支持向量的概念」以及「如何解决多分类任务」。支持向量机的内容较多,分多篇来梳理。
本文约1.7k字,预计阅读8分钟。
概要
首先给出支持向量机的定义:
❝支持向量机(SVM)是一个「二分类模型」,是定义在特征空间上的「间隔最大」的分类器。
❞
可以发现,与感知机的区别在于【间隔最大】这个概念。首先,从几何角度来说,感知机就是在特征空间上找到一个超平面,这个超平面能刚好将分布在特种空间上的正负两类点给区分开来。那么「不做任何的约束」,这个超平面就会有无穷多个(线性可分的前提下)。那么就存在一个「关键问题」:如何挑选一个最优的超平面(也可以理解为如何让模型更加的健壮)?这就需要找到找到一个新的学习策略/约束。
将其公式化,对于感知机来说,定义一个超平面:
相对应的决策函数为:
通过对「误分类点到超平面的距离的总和」这一损失函数进行建模,通过SGD等方法进行优化。
以上是「经验风险最小化」,存在的缺陷:
解不唯一(超平面不唯一); 容易受数据集影响;
那么就需要加入一个新的学习策略/约束,即「间隔最大化」,可以使其「结构风险最小」。学习的目标就是来找到一个最优超平面。
再将间隔最大化给剥离出来,存在两个问题:
最大间隔化指的是什么? 为什么最大间隔化可以找到一个唯一的超平面?
对于第1个问题,一个点(样本)到超平面的远近可以表示分类预测的确信程度(离超平面越远越准确,超平面附近的点不确定性更大)。点到平面距离的公式为:,假设两种分类点的标签为,那么每个样本的确信程度可以表示为:,对其进行简化,如果某个点的确信程度大于等于0的话,则就分类正确,。
以上就是「函数间隔」的定义,
❝对于给定的训练集和超平面【超平面由法向量和截距所确定,因此可以用来表示超平面】,定义超平面关于样本点的函数间隔为:
定义「超平面关于训练集T的函数间隔」为超平面关于中所有样本点的函数间隔的最小值,即
❞
我们知道,如果等比例改变,超平面不变,但函数间隔会变化,所以又定义了一个「几何间隔」(添加规范化约束)。
❝对于给定的训练集和超平面,定义超平面关于样本点的几何间隔为:
定义「超平面关于训练集T的几何间隔」为超平面关于中所有样本点的几何间隔的最小值,即
❞
所以最大间隔化指的就是「在能够正确划分训练数据集条件下,使得几何间隔最大化」,这就是支持向量机的学习策略/思想。
因此,可以公式化为:
通过一系列简化(参考《统计学习方法》),最终得到:
这个公式,就是整个支持向量机模型的构建。
【注】这里是线性可分支持向量机的定义。
对于第2个问题,存在定理(这里先考虑线性可分的情况):
❝最大间隔分离超平面的存在唯一性:若训练数据集线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面是存在且唯一的。
❞
证明参考《统计学习方法》P117-P118。
为什么称为支持向量机?
(支持向量机)模型定义,训练数据样本点与分离超平面最近的样本点称为「支持向量」(support vector),可以形象的理解为支撑起了整个分离超平面的构建。支持向量分布在两个超平面上:
和
可以得到一个重要的结论:**支持向量决定了最优超平面,与其他点无关。**所以这个依靠支持向量构建的模型称为支持向量机。
支持向量机如何解决多分类问题?
定义中,支持向量机是一个二分类模型,那么如何实现多分类任务?可以通过多个支持向量机来构建多分类器,具体比较好理解的有两种:
一对多(one vs rest):即把某一个类别归为1类,其他类别归为另一类,假设有个类别,这样就构造了个分类器; 一对一(one vs one):即任意两个类别构造一个支持向量机,需要个分类器,通过投票决定样本类别,LIBSVM就是这样实现的;
总结
以上是个人对感知机到支持向量机演化的一个思考,如有问题或者异议的地方欢迎联系我指出。
往期精彩回顾
本站qq群704220115,加入微信群请扫码: