当前课程知识点:机器学习概论 > 第七章 支持向量机(I) > 7.1 支持向量机的背景 > 支持向量机的背景
支持向量机 Support Vector Machine 这个名字其实SVM
我们大家其实提SVM比较多 然后以前也有 我们在其他的场合
比如说在信息检索上面有比较重要 或者是文本处理里面
有另外一个重要的模型叫做vector space model
它们的缩写是VSM 所以希望大家
非常容易有同学把SVM和VSM弄混了 那这个就好像非常容易
我们在这门课上会涉及到的两个容易被弄混的概念
一个是SVM和VSM 但是vector space model我们课上不会讲
所以大家你以后去在其他地方见到的时候
不要一看V和SM这三个字母放在一起就是support vector machine
不一定 大家要想清楚 还会有一个比较常用的概念
就是我们后面会有这个PAC学习 是Probably Approximately Correct 可能近似正确学习
但是这个大家可能会比较容易和我们后面会涉及到的
聚类分析里面的一个PCA 以及大家可能也涉及到了PCA 可能会弄混
所以在这些缩写的时候提醒大家
你要去想想它背后的那个词是什么意思
今天的这个内容我会从四个方面来讲
可能中间的两段是会有公式和理论涉及比较多的地方
首先我们来看一下 我们这个支持向量机
它解决的是什么样的问题 很经典的 就是用来解决分类问题的
我们应该是会从下周开始 就是我们截止到今天为止讲完
应该就会把主要的分类的方法的基础的核心算法 我打算介绍的
介绍的差不多了 那么从下周我们会介绍另外一类
关于聚类的方法以及再往后会介绍一些集成学习等等
这些更新的一些东西
那么分类的任务其实是有非常多 然后我这里面举到的
举出来的一些例子 都是我们今天要介绍的这个方法
支持向量机这个方法 所非常擅长的 比如说图像的处理
例如图像的分类 那么这个你可以是说 有人会认为
他也可以认为是图像的概念的检测
也有人在图像的分割 就是图像里面 一个图片上
哪里是草 哪里是地面 哪里是马等等这些任务
就是我们支持向量机 support vector machine都会有非常好的效果
还有一类任务是关于语音的识别 但是语音的识别里面
除了识别本身之外 还会有一些更多 比如说语音内容的
甚至是音乐 像我这里举例子 比如说给了你三段
一段音乐 这个音乐你听听 然后你会发现它是迈克尔杰克逊的beat it
然后你不是通过文字 而是你当然也可以通过它的title和这个singer
就是演唱歌手 以及更多还有包括语音信号来判断 它是什么风格
是一个摇滚 还是布鲁斯 或者是一些hiphop
或者是经典的这种古典音乐等等 那这些 或者是民谣
所以这种音乐的风格识别以及音乐的语音识别
人们也有可以用support vector machine来做的
另外还有就是你看我们提到了视觉信息 就是图像的
提到了声音的信息 就是语音的信息 那一定不能忘记的是文本信息
其实最早支持向量机它起作用的地方 最早是一定不能忘记
在文本上面的作用 文本分类任务 比如说文本分类上面
我们说你看到了购物网站上的一些评论 你想知道这个评论它是
它表达的是贬义的 还是褒义的 是正向的还是负面的观点
还是中性的呢 它只是客观陈述了一个事实 表达了什么
甚至可以表达了什么样的情感 就是喜怒哀惧惊等等
是这些情感中的哪一种 所以这些都是我们比较非常经典的分类任务
其实也是支持向量机非常擅长做的东西
我们回顾一下我们之前讲过的一些方法 并不是所有的
它代表了几大类 比如说Decision tree 决策树学习
它呢 其实我们始终比较经典的例子上面
你的量力它是一些 nominal data 的这种特征 它不完全是一些数值的
有序的数值的特征 它可能是一些描述性的特征
比如说苹果是什么颜色的 然后或者是这个东西大还是小
今天下雨还是晴天等等 它非常擅长处理这样的一些特征
然后描述类的特征 而且传统的Decision tree 就是决策树学习
它的目标是用来学习离散目标的
当然我们后面也会有一些regression 就是做回归的方法
那么其实就也可以扩展到了一些连续的问题
还有我们上节课跟大家介绍的k近邻的方法 k近邻的方法
它能够处理的是这种数值的特征
而且这个数值特征它很有可能是一些连续的值
并且我们最主要的是要用一些距离来去度量
非常常用的是欧氏距离 然后它呢 这个问题就是这种k近邻的方法
既可以处理离散的输出 也可以处理连续的输出
所以这个也是我们甚至在课上
还给大家介绍了一些regression这样的任务来去做
那我们今天要介绍的这个支持向量机 它和KNN在这些方面的设计
就基于实例学习的KNN相比也是很接近的
比如说它也是我们的instances 是一些我们的实例点
其实可以认为是一个空间中的一个点 那么在这个空间上
我们会有一些距离的概念 然后同时我们可以用来处理离散的数据
最早它是用来处理离散的分类任务的
但是也是比较容易能够扩展到一些
regression 或者是处理连续输出的问题上
但为了简便起见 我们今天给大家介绍的
还是经典的作为离散的输出来看 还有一个Background message
就是作为了解 大家需要知道 这个SVM是什么人提出来的
其实它是由机器学习界鼎鼎大名的人物Vapnik
Vapnik他其实也是统计机器学习的主要的研究者之一
而且做了非常多的贡献 当然最主要的贡献之一 也是SVM
而且当然这不是他一个人 而是他和他的同事
当时在贝尔实验室 AT&T的贝尔实验室里面去做的
我们会发现其实有非常多的 非常重要的贡献
不只是计算机 包括一些物理等等 有非常多重要的贡献
都是在AT&T贝尔lab里面 贝尔实验室里做出来的
所以曾经有一段时间 贝尔实验室是很多研究者们认为的
说就是离开过那边的人也会说 我觉得这是一个百分之百的
好像研究者的天堂一样的地方 但现在事情有一些变化了
但是仍然他们曾经发挥过非常重要的作用
那为什么这个方法叫做support vector machine
我们后面会逐渐的提到 但是Vapnik这个人非常的了不起
就是SVM是他的代表作 其实我们在这学期 还刚刚跟大家
前几周刚刚跟大家介绍过
今年的图灵奖的获得者是做deep learning的三位先行者
其实同时还有一批声音觉得其实他们的非常有力的竞争者
就是Vapnik 或者说有一些人看到这个结果之后
图灵奖的结果之后 还会觉得有一点遗憾
觉得这个奖项应该属于Vapnik
就是应该属于以及他所提出来的SVM这一系列的工作
甭管他到底有没有拿奖 但他的重要地位一定是非常不容忽视的
而且应该也是没有人对这种支持向量机和Vapnik
对机器学习领域做出来的贡献有所质疑
那他这个简单的来说 我们把它叫做支持向量机
其实大家也会把他比较著名的
也会认为他是一个最大间隔学习的这一类方法
那么什么是最大间隔分类器 我们一会儿会逐渐给大家介绍到
我刚才提到过 他最早是用来做分类任务的 后来很容易
也很快被扩展到了regression这个任务上 这个方法有多重要呢
就是基本上他可以认为 在 尤其是在deep learning的方法出现之前
他会被人们认为是一种强学习器 强分类器 强到什么程度呢
就是基本上人们会认为 它是最好的监督学习
或者是有指导学习的方法之一 而且它大概是什么样的地位呢
就是我们跟大家说过 你如果有什么问题 之前跟大家提到过
你如果有什么问题 觉得不知道用什么方法比较好
如果条件合适 取决于你的数值的 你的feature是什么样类型的
如果你的特征 不是这种连续的 有order的这种数值特征的话
而是一些描述 nominal 的这种data的话
那其实大家我们就建议你可以用decision tree 或者是决策树这个系列的
基于决策树的一些延伸 比如说有GBDT 但是他们现在解决的都不止
也可以解决这种数值的特征了 所以这个是一种常用的baseline
那另外一类如果你是这种有序的数据 一个分类的问题
什么都不用想的时候 你至少可以拿SVM去跑一下
就是SVM他很有可能提供了一个 不只是 baseline
他很有可能提供的是一个
你学习差不多能够达到的最好的那一类性能之一
所以说这个是它的 所以应用非常的广泛
因此我们下面接下来可以看一看 就是它到底是什么
以及它为什么好 好在哪里 这个我是希望大家能够在
我们今天的这堂课上去学到的内容
首先来看一下那个线性的support vector machine 就是线性的支持向量机
问题是什么呢 就是我们先给了一个训练样例的集合
这个大家很熟悉了 训练样例有x还有y 然后x它可能是一些
这里面x它会是一个实数空间 它是一个n维空间上的实数的每一维上面
是一个实数表达 然后y我们简单起见就是两类
我们在这里就讨论二分类问题 如果你扩展到多分类
我们会有很多种不同的办法 比如说它可以做成多个二分类的融合
或者是一对多 就是是A或者不是A等等这样 一对多的这种二分类问题
所以我们先看最简单的 最基本的就是二分类问题 y的输出
就是两个值 要么是-1 要么是+1 那么在这种情况下
我们其实是想要找到一个函数 这个函数是一个f(x, θ)
就是它是关于x的一个函数 这个函数是使得 θ是一个参数了
就是使得如果我的输出y是+1这个类的话
那么我的f(x)的这个输出始终是 就是我关于x的这个函数
我需要学到的这个函数输出 始终是大于0的
然后如果这个实际的类是-1这个类的话 就是另外一类
负样例类的话 那我这个f(x)的输出它始终是小于0的
那么表达出来我在这里画了一个图 你会自然的会发现
你对于一个测试样例来说 你就可以根据这个测试样例它的label
就是通过一个符号函数来去测试它的label
就是看对于这个测试样例x 你看一下f(x)
它是大于0还是小于0 如果f(x)它是一个大于0的 那么好
我的输出就是+1 如果它是一个小于0的话 那我们的输出就是-1
这个就是符号函数sign[f(x)]它的表达
-1.1 课程介绍
--课程介绍(1)
--课程介绍(2)
-1.2 机器学习的背景
--机器学习的背景
-1.3 什么是机器学习
--什么是机器学习
-1.4 机器学习系统设计
-第一章作业
-2.1 决策树的基本概念
--决策树的基本概念
-2.2 决策树的实例和发展历史
-2.3 经典决策树算法ID3
-2.4 过拟合和前剪枝
--过拟合和前剪枝
-第二章作业
-3.1 下午茶时间:勒索软件
-3.2 后剪枝
--后剪枝
-3.3 决策树的改进和归纳学习假设
-3.4 贝叶斯学习的背景
--贝叶斯学习的背景
-3.5 极大似然假设、朴素贝叶斯和最小描述长度
-第三章作业
-4.1 下午茶时间:微博的垃圾检测
-4.2 马尔可夫模型
--马尔可夫模型
-4.3 隐马尔可夫模型
--隐马尔可夫模型
-4.4 评估问题
--评估问题(1)
--评估问题(2)
-4.5 解码问题
--解码问题
-4.6 隐马尔可夫模型的应用
-第四章作业
-5.1 下午茶时间:图灵奖
-5.2 假设评估
--假设评估(1)
--假设评估(2)
--假设评估(3)
-5.3 置信度和置信区间
-5.4 有限数据下的比较
--有限数据下的比较
-第五章作业
-6.1 下午茶时间:黑洞照片
-6.2 基于实例的学习的基本概念
-6.3 最近邻算法
--最近邻算法
-6.4 K邻近算法
--K近邻算法
-6.5 KD树
--KD树
-6.6 距离加权的K近邻算法
-第六章考试
-7.1 支持向量机的背景
--支持向量机的背景
-7.2 线性支持向量机
-第七章作业
-8.1 核函数支持向量机
-8.4 支持向量机总结
--支持向量机总结
-8.5 无监督学习简介
-8.6 层次聚类
--层次聚类
-8.7 K-means聚类和K-medoids聚类
-第八章作业



