机器学习面试——分类算法SVM

 

1、什么是硬间隔和软间隔?

当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机

当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机

(体外话:当训练数据线性不可分时,通过使用核技巧以及软间隔最大化,学习非线性支持向量机

2、软间隔加入的松弛变量是如何求解出来的?

线性不可分意味着不能满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点引入一个松弛变量(\xi _{i}>=0①),使得函数间隔加上松弛变量大于等于1.

y_{i}(w\cdot x_{i}+b)\geqslant 1-\xi _{i}                 ②

目标函数为:

\frac{1}{2}\left \| w\right \|^{2}+C\sum_{i=1}^{N}\xi _{i}                       ③

C>0是惩罚参数,C值的大小决定了误分类的惩罚强弱,C越大,惩罚越强。

其中,①②③是软间隔的目标函数及其约束条件,其余求解过程和硬间隔见下面)一致。

3、SVM为什么采用间隔最大化?

使它区别于感知机,SVM的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,对于线性可分的数据集而言,线性可分分离超平面有无穷多个,但是几何间隔最大的分离超平面是唯一的,意味着以充分大的确信度对数据进行分类,特别地离超平面较近的点。此时的分离超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。

4、为什么SVM要引入核函数?

当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。引入对偶问题以后,所求解的对偶问题中,无需求解真正的映射函数,而需知道其核函数。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需求解具体的核函数就行。

核函数(两个函数的内积)定义:\chi是输入空间,H是特征空间,如果存在一个从输入空间到特征空间的映射,

\Phi (x):\psi \rightarrow H

使得对所有x,z\in \chi,函数K(x,z)满足条件

K\left ( x,z \right )=\phi (x)\cdot \phi (z)

则K是核函数,\varphi (x)是映射函数,\phi (x)\cdot \phi (z)是函数的内积。因此,可以直接通过计算K,而不计算映射函数。

5、SVM核函数之间的区别?

线性核:主要是用于线性可分场景,参数少,训练快

多项式核:可以实现将低维的输入空间映射到特征空间,但是参数多,并且当多项式的阶数较高时,核矩阵的元素值将趋于无穷大或者无穷小,计算复杂度较高。

高斯核(RBF):局部性强的核函数,参数比多项式核要少,训练场景非常依赖于参数(交叉验证来寻找合适的参数)。

核函数的选择技巧: 

  • 利用专家的先验知识预先选定核函数;
  • 采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多.
  • 采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想.
  • 参考七月在线的答案

6、为什么SVM对缺失数据敏感?

因为SVM没有处理缺失值的策略,而SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要,缺失特征数据将影响训练结果的好坏。

7、为什么目标函数要转化为对偶问题求解?

  • 对偶问题将原始问题中的约束转为了对偶问题中的等式约束
  • 方便核函数的引入
  • 改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。

8、SVM如何解决样本倾斜?

给样本较少的类别较大的惩罚因子,提高这部分样本的重视程度。

9、SVM的损失函数

是合页损失函数(hinge loss),是(wx+b),y是类别值

原理推导:

一、硬间隔支持向量机

支持向量机的学习策略是间隔最大化,可形式化为一个求解凸二次规划问题,也等价于正则化的合页损失函数的最小化问题。

学习的目标是在特征空间找到一个分离超平面,能将实例分到不同的类,分离超平面的对应方程是

w\cdot x+b=0,因为分离超平面有无穷多个,需要几何间隔最大化来确定唯一解。由于SVM是二分类,因此,y=-1代表是负例,y=1代表是正例。

支持向量(如图H1和H2线上的点):样本中距离超平面最近的点称为支持向量。使得约束条件成立。

间隔:H1和H2之间被称为间隔

函数间隔:可以代表分类预测的正确性及确信度

一个点距离分离超平面的远近可以表示分类预测的确信程度。\left | w\cdot x+b \right |能够表示点x距离超平面的远近,\left | w\cdot x+b \right |与y的符号是否一致能够表示分类是否正确,y\left | w\cdot x+b \right |可以表示分类的正确性和确信程度(也是函数间隔)。

几何间隔:

如果成比例改变w,b的值,超平面没有改变,函数间隔却变为原来的2倍,因此,我们需要对w加些约束,如规范化,\left \| w \right \|=1,此时函数间隔成为几何间隔。即

假设y=-1,点A与超平面的距离是\gamma _{i},则\gamma _{i}=-(\frac{w}{\left \| w \right \|}\cdot x+\frac{b}{\left \| w \right \|})

假设y=+1,点A与超平面的距离是\gamma _{i},则\gamma _{i}=\frac{w}{\left \| w \right \|}\cdot x+\frac{b}{\left \| w \right \|}

则几何间隔为

\gamma _{i}=y_{i}(\frac{w}{\left \| w \right \|}\cdot x+\frac{b}{\left \| w \right \|})

对于训练数据集来说,分离超平面(w,b)是所有样本点的几何间隔之最小值,即\gamma =min \gamma _{i}

如果超平面参数w,b改变,函数间隔也成比例改变,但是几何间隔不变。

目标函数为几何间隔最大化,则

 

由下述函数间隔和几何间隔的关系,可将目标函数进行变化:

目标函数变为

由于函数间隔变化并不影响最优问题求解,因此,将函数变为\frac{1}{\left \| w \right \|},并将目标问题转成对偶问题,(将问题简单化,从求解w权重值,到求解a值)。

 

应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。优点是对偶问题往往更容易求解且能自然引入核函数,进而推广到非线性分类问题(详解看问题7)。

\alpha _{i}\geqslant 0是拉格朗日乘子,求解方程组(条件极值的解法),令L对w,b的偏导为0:

将结果带回L,就可以得到

min_{w,b}L(w,b,\alpha )\alpha的极大,

KKT条件:

二、软间隔支持向量机
在现实任务中,样本的不确定性不能正好将样本线性可分,为了提升模型的泛化能力,引入软间隔来允许支持向量机在一些样本上出错。

线性不可分意味着某些样本点不能满足函数间隔大于等于1的约束条件,可以为每个样本点引入一个松弛变量(大于0),使得函数间隔加上松弛变量大于等于1,则目标函数变为:

因为松弛变量是非负的,要求间隔可以小于1,当样本点的间隔小于1时,我们放弃了对这些点的精确分类,使得模型有一定的容错能力。

  • 离群的样本点是有值的松弛变量(松弛变量越大,离群点越远),没离群的点的松弛变量等于0。
  • 惩罚因子C决定了对离群点带来损失的重视程度,C越大,惩罚越大,对离群点的要求越严。

计算步骤和硬间隔一样:

 KKT条件:

 三、非线性SVM

当线性不可分时,将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。常见核函数有:

 所求解的对偶问题中,无需求解真正的映射函数,而需知道其核函数。目标函数化简为:

 四、序列最小最优算法(SMO)

SMO是一种启发式算法,用来求解二次规划问题。基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么最优化问题的解就得到了。算法包含两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。

  • 选取一对需更新的变量\alpha _{i}\alpha _{j}
  • 固定 \alpha _{i}\alpha _{j}以外的参数,求解式获得更新后的 \alpha _{i}\alpha _{j}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cortex M3 NVIC与中断控制

Cortex M3 NVIC与中断控制 宗旨:技术的学习是有限的,分享的精神是无限的。 一、NVIC概览 ——嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外, NVIC 还包含了 MPU、 S…

VS 2005 或 VS 2008 在安装VSS 2005后,看不到源代码管理的解决办法

昨天有朋友在重新安装VS 2008后,再安装VSS 2005,安装好后在文件菜单中找不到“源代码管理”的菜单项,后来经朋友告知,是开发工具的默认选项设置问题。打开开发工具,“工具”--“选项”:(如图&am…

代码里-3gt;gt;1是-2但3gt;gt;1是1,-3/2却又是-1,为什么?

之前群里有个同学向大家提出了类似这样的问题。随后这位同学公布了答案:右移运算是向下取整,除法是向零取整。这句话对以上现象做了很好的总结,可是本质原因是什么呢?我一直以为-3>>1的结果是-1。所以打算思考一下这个问题。…

机器学习面试——逻辑回归和线性回归

1、什么是广义线性模型(generalize linear model)? 普通线性回归模型是假设X为自变量,Y为因变量,当X是一维的,y是一维的,共进行n次观测,则 其中,w是待估计的参数&#x…

STM32开发环境

STM32开发环境 宗旨:技术的学习是有限的,分享的精神是无限的。 一、MDK安装 MDK 是一个集代码编辑,编译,链接和下载于一体的集成开发环境( KDE )。MDK 这个名字我们可能不熟悉,但说到 KEIL …

机器学习面试——XGBoost,GBDT,RF(上)

1、常见的集成思想 bagging:基学习器之间并行训练,且学习器之间没有依赖,像是集体决策的过程,每个个体都进行单独学习,再通过投票的方式做最后的集体决策。常见的算法有随机森林 boosting:基学习器之间串…

听说有人不了解柔性数组

1 引言 定长数组包在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024。结构体如下:// 定长缓冲区 struct max_buffer {int len;char data[MAX_LENGTH]; };数据结构的大小 &…

Transformer模型拆解分析

资源来自:DataWhale 学习资料 最近看了DataWhale 的Transformer图解,突然对Transformer的结构图有了更加清晰的理解,特此记录。 1、大框架 Transformer是由6个encoder和6个decoder组成,模型的具体实现是model变量里边&#xff0…

设计模式学习笔记六:.NET反射工厂

1. 简述 通过前面的学习,我们以传统的方式实现了简单工厂,工厂方法和抽象工厂,但是有些场合下如此处理,代码会变得冗余并且难以维护。假设我们要创建交通工具。可以是汽车,火车,轮船等&#xff…

在unity 中,使用http请求,下载文件到可读可写路径

在这里我用了一个线程池,线程池参数接收一个带有object参数的,无返回值的委托 ,下载用到的核心代码,网上拷贝的,他的核心就是发起一个web请求,然后得到请求的响应,读取响应的流 剩下的都是常见的…

在tinyalsa上抓取音频

我们经常会遇到这样的问题,应用读取到的音频有问题,需要在tinyalsa里面读取音频来确认是底层音频有问题,还是应用处理之后存在的问题。所以,这个patch就出现了代码的逻辑很简单,主要是在pcm_read的时候,同时…

STM32——GPIO(1)

STM32——GPIO 宗旨:技术的学习是有限的,分享的精神是无限的。 【对单片机的操作就是控制IO口】 一、GPIO(通用输入输出口) 1、选定需要的引脚(对应哪一个IO口); 2、配置需要的功能&#xf…

【opencv学习笔记八】创建TrackBar轨迹条

createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便。首先大家要记住,它往往会和一个回调函数配合起来使用。先看下他的函数原型: int createTra…

父母悄悄给自己买房,我很生气,要怎么调整心态?

——问题我是独生子,今年满24岁刚上研一(普通211)。家庭四川小城市,情况一般,父母二人体制内月薪总计一万元以内,家里积蓄20W-30W,公积金情况不清楚。从小母子关系比较僵硬,母亲小学…

语音处理入门——语音的声学处理

语音的声学处理通常称为特征提取或者信号分析,特征是表示语音信号的一个时间片的矢量。常见的特征类型有LPC(线性预测编码)特征和PLP(感知线性预测编码),该特征称为声谱特征,使用形成波形的不同…

基础呀基础,用二极管防止反接,你学会了吗?

使用新的电源,第一次给设备供电时,要特别注意电源的正负极性标注。比如电源适配器,铭牌上面有标注插头的极性。这个符号说明插头的里面是正极,外面是负极,即“内正外负”。但是也有反过来的,下面这款是“内…

李宏毅的可解释模型——三个任务

1、问题 观看了李宏毅老师的机器学习进化课程之可解释的机器学习,课程中对主要是针对黑盒模型进行白盒模型转化的技巧和方法进行了简单介绍,详细细节可以参考《Interpretable Machine Learning》。像一些线性模型、树形模型是可解释的ML model&#xff…

柔性数组和环形队列之间的故事

之前的文章,讲解了柔性数组,有很多人留言,提到一些问题。刚好,之前发关于环形队列的文章有些问题,这次刚好拿出来一起说一下,并用柔性数组实现一个环形队列。柔性数组的上一篇文章环形队列C语言实现文章1、…

STM32——时钟系统

STM32——时钟系统 宗旨:技术的学习是有限的,分享的精神是无限的。 一、时钟树 普通的MCU,一般只要配置好GPIO 的寄存器,就可以使用了。STM32为了实现低功耗,设计了非常复杂的时钟系统,必须开启外设时钟才…

目标检测发展路程(一)——Two stage

目标检测是计算机视觉领域中非常重要的一个研究方向,它是将图像或者视频中目标与其他不感兴趣的部分进行区分,判断是否存在目标,确定目标位置,识别目标种类的任务,即定位分类。传统的目标检测模型有VJ.Det[1,2],HOG.De…