AI遮天传 ML-SVM
支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器其学习问题中。
背景信息:
- 支持向量机 (Support Vector Machine,SVM)
- 当前版本的支持向量机大部分是由Vapnik和 他的同事在AT&T贝尔实验室开发的
- 是一个最大间隔分类器(Max Margin Classifier)
- 最开始提出是做分类,后来很快被应用到了回归和时间序列的预测
- 最有效的监督学习方法之一
- 曾被作为文本处理方法的一个强基准模型(strong baseline)
生活引入:
我们生活中经常看到一些影评、物评等等,可以分成三类:
- Pos正面:这款游戏真好玩!
- Neg负面:呸,狗都不玩。
- Neural中性:这是一款像素游戏。
又如我们直到飞机、火车长什么样子,能够在不同的图片将它们分类出来:
再或者我们听一个音乐的音律、节奏,可以辨别出它是何种音乐,如:
- Rock: Michael Jackson “Beat it”
- Hip Hop: Eminem “Lose yourself”
- Blues: Muddy Waters “I can’t be satisfied
对于以上三个例子,我们不难发现,都有一个“中性”的结果,其两侧分别是问题的两种不同的结果,这便是我们今天介绍的 线性向量机 解决问题的思路。
分类方法回顾:
决策树
- 样本的属性非数值
- 目标函数是离散的
贝叶斯学习
- 样本的属性可以是数值或非数值
- 目标函数是连续的(概率)
K-近邻
- 样本是空间(例如欧氏空间)中的点
- 目标函数可以是连续的也可以是离散的
支持向量机 (Support Vector Machine)
- 样本是空间(例如欧氏空间)中的点
- 目标函数可以是连续的也可以是离散的
一、线性支持向量机
给定一个训练样本的集合
找到一个函数f(x,a) 分类样本,a为参数,使得:
则对于一个测试样本x,我们可以预测它的标签为[f(x,a)]
f(x,a) = 0 被称为分类超平面
解释:简单来说就是对于任意+1 正例 的部分,它全部都是大于0的;对于任意-1 负例 的部分,它全部都是小于0的。 电影评价,中评为 分类超平面 ,比中评好的,我们分类为好评,比它差的,我们分类为差评。
线性分类器:
对于一个线性超平面:
(注:为向量的内积即样本特征值和参数的内积,b为截距。)
在线性可分的情况下,有无穷多个满足条件的超平面,把结果分成n部分(n=2那分类超平面就是一条线,n=3就是一个面...)
那么哪条线最好呢?
线性分类器的间隔(Margin)
- 在分类分界面两侧分别放置平行于分类超平面的一个超平面 ,移动超平面使其远离分类超平面
- 当他们各自第一次碰到数据点时,他们之间的距离被称为线性分类器的间隔
- Margin (间隔): 分界在碰到数据点之前可以达到的宽度
比如黑线是超平面,两条黄线的边界刚刚触碰到各自的第一个点,上面宽为2,下面宽为3,那间隔就是5.
最大间隔线性分类器 (Maximum margin linear classifie)
即具有最大间隔的线形分类器
我们看到这次的黑线(超平面)两端的黄线明显更粗了,所以这条线更好。
那些阻挡间隔继续扩大的数据点,我们叫做支持向量(SV)。
(除了间隔边界上的数据点以外,那些在间隔区域内的、 以及在错误一侧的数据点,也都是SV。后面会讲)
问题形式化
首先,我们需要数据点完美分布在超平面两侧,
引入平行于分类超平面的两个额外超平面:
间隔即两个新的超平面 之间的距离
如何计算 ?
最优化问题(使间隔最大化):
虽然看起来似乎间隔只与w有关, 但b仍然通过约束w的取值,间接对间隔产生影响。
(因为y为1或-1, 说明都分对了)
对偶问题(拉格朗日子乘法)
即经过一系列的转化,我们最终要求的就是在上图红色部分中,在二三行条件下,第一行的最小值。
支持向量
根据KKT条件: (>=0)
- 当 非0 ---> 即在间隔的边界上(支持向量SV)
- 大多数 为0,这些对没有什么影响 稀疏解
线性不可分情况
我们前面提到:首先我们需要数据点完美分布在超平面两侧,这是为了保证训练分类错误率为0.
但是在线性不可分情况下,一定会有错误。
此时找不出一条直线来将他们分隔开来。
我们需要最小化 和 训练分类错误!
其中C>0 是一个用于平衡这二者的常数(前面重要C小一点 后面重要C大一点)
正值常数 C 平衡着 大间隔和小分类错误
Structure risk (结构风险) vs. empirical risk (经验风险)
- 大 C: 更偏向于错误小
- 小 C: 更偏向于间隔大
损失函数: 0/1 损失 和 Hinge 损失
回顾正确的预测:
定义
对每个样本:
- 0/1损失:
非凹凸连续,不容易求解
z<0时:<0时>0 或 >0时 说明做错了/正例跑到了负例那,负例跑到了正例那。此时loss=1
z>=0时:loss=0
- Hinge损失:
z<1时,说明点在间隔里面,loss=1-z
z>=1时,loss=0,说明对了
更多损失函数:
形式化损失函数
软间隔(soft margin)
仍然希望找到最大间隔超平面,但此时:
- 我们允许一些训练样本被错分类(, 不一定全分对了)
- 我们允许一些训练样本在间隔区域内(是正确的,这次不停下来)
- 时,数据点在间隔区域的边界上 或 在间隔区域外部正确分类的那一侧
- 时,数据点在间隔区域内但在正确分类的一侧
- 时,数据点在分类超平面错误分类的一侧
正值常数 C 平衡着 大间隔和小分类错误
Structure risk (结构风险) vs. empirical risk (经验风险)
- 大 C: 更偏向于错误小
- 小 C: 更偏向于间隔大
对偶问题总结
应用举例: 利用LLC 和 SVM的图像分类
数据集: Caltech101 :9144 张图片、102 类别
预处理:转化为灰度图、放缩图片 e.g. 较长边有120 像素
用LLC (底层特征,Low Level Content) 来提取图像特征
用SVM训练和测试
测试结果
- 训练时每个类别用 15 张图片: 70.16%
- 训练时每个类别用 30 张图片: 73.44%
二、核函数支持向量机 (Kernel SVM)
从输入空间到特征空间
样本xi 在输入空间线性不可分,但可能在特征空间中线性可分。
特征空间中的问题
核技巧 (Kernel Tricks)
为了在特征空间中求解对偶问题且找到分类超平面,我们只需知道 ,(而不是分别的。)
如果我们已知一个函数 它等于 那么我们就没有必要显示地表示这些特征。
称作 核函数(kernel function)
即只需要知道核函数是什么就好了。
常用核函数
例如:
即他们地映射结果刚好是相等的所以可以用核函数代表。
三种构造核函数的方法
注:是三种方法;
- 第一种:根据特征函数手动计算核函数
- 第二种:直接选择一个合理的核函数
- 第三种:利用简单核函构造新的核函数
举例: 构造高斯核函数
软件工具
Libsvm :http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Liblinear :http://www.csie.ntu.edu.tw/~cjlin/liblinear/
SVMlight :http://svmlight.joachims.org/
三、SVM的核心概要
线性支持向量机
- 线性可划分问题:最大化间隔
- 线性不可划分问题:最大化间隔且最小化分类错误
- 原始问题不好求,转换为对偶问题。
核函数支持向量机
- 映射到特征空间:
- 核技巧:
- 3种构造核函数的办法
SVM的优缺点
优点
- 很好的数学基础
- 最大化间隔使得方法的鲁棒性非常高,泛化能力强
- 用线性的方法解决线性不可分问题(两种思路)
- 1.利用soft margin: 最大化间隔且最小化分类错误
- 2.通过从输入空间到特征空间的变换
- 本质上是将在低维空间上线性不可分的问题,通过变换(大多是升维)变成线性可分问 题
- 利用Kernel Trick, 并不需要知道该变换是什么
- 在实际应用中效果往往不错
缺点
- 有多种核函数可用,针对具体问题,哪个核函数最好?
—— 尚未找到理论上可证 明的最优选择
AI遮天传 ML-SVM相关推荐
- AI遮天传 ML/DL-感知机
感知机的出现是人工智能发展史一大重要里程碑,其后才诞生了:多层感知机.卷积神经网络等一系列的经典网络模型. 在我看来,它虽然是深度学习领域的一大开端,但本身解决的只是线性二分类问题,它本身与机器学习经 ...
- AI遮天传 DL-回归与分类
本文主要介绍Logistic回归和Softmax回归 一.回归与分类回忆 给定数据点集合 和相应的标签 ,对于一个新的数据点x,预测它的标签(目标是找到一个映射 ): 如果是一个连续的集合,称其为回 ...
- AI遮天传 ML-广义线性模型(一)
前文:AI遮天传 ML-回归分析入门_老师我作业忘带了的博客-CSDN博客 前文回顾: 还记得很久很久以前,我们学习了简单的回归分析,这其实与我们在学校所学的求解回归方程并没无太大的区别,或许仅是维度 ...
- AI遮天传 DL-深度学习在计算机视觉中的应用
本文只做一些在计算机视觉中应用的简单介绍,童叟无欺. 一.图像分类 a. 通用图像分类 将不同图片按照内容进行分类 b. 特定图像分类 特定识别人脸.某种动物.汽车等 1.1 人脸验证 下面是两种典型 ...
- AI遮天传 DL-反馈神经网络RNN
本文会先介绍动态系统的概念,然后介绍两种简单的反馈神经网络,然后再介绍两种门控神经网络(LSTM, GRU),最后是关于反馈神经网络的应用(本次以语音识别为例). RNN: Recurrent neu ...
- AI遮天传 DL-CNN
上次我们介绍了多层感知机(MLP),本次将介绍深度学习领域中第二个基本的模型:卷积神经网络(CNN).CNN在MLP之上又引入了两种新的层:卷积层和池化层. 一.简介 1.1 大脑皮层中的局部检测器和 ...
- AI遮天传 ML-KNN
我们之前学习的方法如决策树.回归分析.贝叶斯分析都可以看作是 三步走 的学习方法,即: 估计问题的特征(如分布) 做出模型假设(LSE.Decision.Tree.MAP.MLE ) 找到最优的参数 ...
- AI遮天传 ML-集成学习
"Two heads are better than one." "三个臭皮匠,顶一个诸葛亮" 把多个人的智慧集合到一起,可能会比一个人好,放在机器学习上,我们 ...
- AI遮天传 DL-多层感知机
本文介绍多层感知机,会先按照历史顺序介绍多层感知机诞生前的一些模型,后面介绍具体实现与其算法. 一.前戏 1.1 阈值逻辑单元(Threshold Logic Unit, TLU) 如上图是一个神经元 ...
最新文章
- SpringBoot第二十一篇: springboot集成JMS
- HTTP Status 400
- 【JDK】JDK源码分析-HashMap(1)
- C# 密封类sealed
- SAP Cloud for Customer的CTI呼叫中心解决方案
- Linux系统语言教程,Linux操作系统基础及语言基础教程-麦可网张凌华
- [转]资本经营董事长班告诉你:不只企业有商业模式,个人商业价值更重要
- jquery-文档操作-标签取值-输入控件取值与赋值
- Idea创建包以及导入jar包等操作
- ocm认证年薪多少_从复读才考上三本,到华为201万年薪的天才少年,他经历了什么?...
- android利用AudioRecord实现录音功能(kotlin语言)
- dnf助手服务器内部出错,地下城与勇士TGP的DNF助手异常解决办法 TGP-DNF助手补丁不适配怎么办...
- 游戏策划游戏研发必读经典题文一
- 微信emoji表情web显示
- 【STL容器讲解—栈队列】
- 211逆袭浙大-计算机及相关衍生专业保研之路纪实(深度长文,收藏了)
- 软件测试入门知识,Linux系统基础教程——带你玩转Linux(五)
- 月报总结|Moonbeam 11月份大事一览
- 【LaTeX试卷】天津大学仁爱学院高等数学试卷 LaTeX模板
- 论文阅读《“The Boating Store Had Its Best Sail Ever”: Pronunciation-attentive ....》