机器学习面经 - SVM

一、简介

支持向量机(Support Vector Machine,SVM)是一种在机器学习中常用的监督学习算法,主要用于分类和回归任务。

SVM 的基本思想是通过在特征空间中找到一个最优的超平面来实现数据的分类。这个最优超平面的选择是通过最大化数据点与超平面之间的间隔来完成的,这个间隔被称为“边界”或“支持向量”。

二、面经

1、请简单介绍一下什么是svm,一般用于解决什么问题?

2、请介绍一下什么是SVM的硬间隔和软间隔?

3、SVM硬间隔的目标函数是什么,请结合公式解释?

4、SVM为什么采用间隔最大化,它与我们熟知的感知机有什么区别?

5、SVM中对偶的目的?

6、请介绍SMO算法的思想?

7、SVM中核函数本质,带核函数的SVM为什么可以解决非线性问题?

8、什么时候需要使用带核函数的SVM,SVM核函数的选择?

9、SVM可以做回归吗?

10、如何确定一个函数是不是核函数?核函数需要满足什么性质?

11、为什么高斯核能够拟合无穷维度?

12、SVM和全局数据有关还是局部数据有关?SVM对缺失数据敏感吗?

13、请说说SVM和LR的异同?

14、什么是参数模型,什么是非参数模型?

15、给你一些数据,你会如何分类?什么时候用svm,什么时候用lr?

16、特征比数据量还大的时候,一般选择什么分类器?

17、对于维度极低的特征,选择线性还是非线性分类器?

18、SVM损失函数是什么形式,可以用梯度下降优化吗?

19、SVM如何处理多分类的问题?

三、面经参考回答

1、请简单介绍一下什么是svm,一般是用来干嘛的?

参考回答:SVM也叫支持向量机,是一类按监督学习方式对数据进行二元分类的广义线性分类器,比如说分为1或者-1。我们用SVM的目的不是说只是为了区分现有的两类数据,我们真正想要达到的目的是: 当模型在现有数据训练完成后, 将其应用到新的(同种)数据时,我们仍然可以很好的区分两类数据,达到预期的分类效果,也就是泛化能力。当有了泛化要求后,肯定存在一条线或者一个平面的泛化能力最好。SVM要找的就是这条线或者这个超平面。具体来讲,有三种情况(不加核函数的话就是个线性模型,加了之后才会升级为一个非线性模型):1.当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机。2.当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机。3.当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

2、请介绍一下什么是SVM的硬间隔和软间隔?

参考回答:硬间隔就是需要最小化参数w;软间隔就是引入了松弛变量;最理想的状态,即两类数据泾渭分明,可以直接用硬间隔来表示,但是在实际情况中在两边缘之间还有数据点散落,如果我们一定要找一条区分两种类别的一个超平面似不可能了, 而且也完全没必要,可能找到的话也是发生过拟合,所以我们的在训练时,允许超平面有一定的错误率,即允许少量数据点跑到两边缘间隔之间。这样妥协的好处就是我们还会找到边缘间隔相对较大的超平面,因此在测试数据上会有更好的表现。我们把这样的间隔称为软间隔。

3、SVM硬间隔的目标函数是什么,请结合公式解释?

参考回答:SVM的硬间隔有两个目标,一个是间隔最大化,第二个是使样本分类正确,由此可以推出目标函数:

4、SVM为什么采用间隔最大化,它与我们熟知的感知机有什么区别?

参考回答:当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。

5、SVM中对偶的目的?

参考回答:对偶的概念:一般情况下对偶问题给出主问题最优值的下界,在强对偶性成立的情况下由对偶问题可以得到主问题的最优下界,对偶问题是凸优化问题,可以进行较好的求解,SVM 中就是将原始问题转换为对偶问题进行求解,从而进一步引入核函数的思想。目的有两个:一是方便核函数的引入;二是对偶问题相对于原问题更容易求解,原问题的求解复杂度与特征的维数相关,而转成对偶问题后只与问题的变量个数有关。由于SVM的变量个数为支持向量的个数,相较于特征维数较少,因此转对偶问题。再通过拉格朗日乘子法使带约束的优化目标转为不带约束的优化函数。原始问题指的是先对拉格朗⽇乘⼦求最⼤值在对w和b求最⼩值,对偶问题求解顺序是相反的。原始问题的算法复杂度是与特征维度(w的维度)相关的,对偶问题的算法复杂度是与样本维度(拉格朗⽇乘⼦维度)相关的,其实可以不转化,之所以要转换是因为特征维度⽐样本维度要⾼。转化为对偶问题的使⽤场景⼀般都是⾮线性分类,如:使⽤⾼斯核函数将特征映射到⽆穷维。⼀般来说使⽤线性核进⾏分类解决原始问题即可。

6、请介绍SMO算法的思想?

参考回答:SMO算法的思想和坐标上升法类似,坐标上升算法每次通过更新多元函数中的一维,经过多次迭代直到收敛来达到优化函数的目的。简单的讲就是不断地选中一个变量做一维最优化,其他变化作为常数项,直到函数达到局部最优点;与坐标上升算法不同的是,我们在SMO算法中我们每次需要选择一对变量(ai,aj), 因为在SVM中,我们的a并不是完全独立的,而是具有约束的。SMO算法的基本思路是每次选择两个变量ai和aj,选取的两个变量所对应的样本之间间隔要尽可能大,因为这样更新会带给目标函数值更大的变化。SMO算法之所以高效,是因为仅优化两个参数的过程实际上仅有一个约束条件,其中一个可由另一个表示,这样的二次规划问题具有闭式解。

7、SVM中核函数本质,带核函数的SVM为什么可以解决非线性问题?

参考回答:原始样本空间可能会线性不可分,这样需要将原始空间映射到一个更高维的特征空间,使得样本在这个特征空间线性可分,这个时候核函数出现了;核函数的本质:核函数的本质是两个函数的內积,而这个函数在SVM 中可以表示成对于输入值的高维映射,也就是说,核函数就是一个函数,接收两个变量,这两个变量是在低维空间中的变量,而核函数求的值等于将两个低维空间中的向量映射到高维空间后的内积。所以需要注意的是,核函数不是用来做映射的。而是因为样本映射到高维空间后的内积求解通常是困难的,引入核函数可简化内积的计算。所以为什么带核函数的SVM为什么可以解决非线性问题?是因为当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。

8、什么时候需要使用带核函数的SVM,SVM核函数的选择?

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

小白机器学习面试指南 文章被收录于专栏

林小白的机器学习指南,从本人面试的机器学习算法岗位出发,对机器学习“八股文”做详细的介绍、推导;

全部评论
mark
点赞
送花
回复
分享
发布于 2023-07-26 02:57 江苏
mark
点赞
送花
回复
分享
发布于 2023-07-28 02:03 北京
网易互娱
校招火热招聘中
官网直投
m
点赞
送花
回复
分享
发布于 2023-07-28 02:21 北京
mark
点赞
送花
回复
分享
发布于 2023-07-28 12:38 江苏
mark
点赞
送花
回复
分享
发布于 2023-07-28 22:03 安徽
mark
点赞
送花
回复
分享
发布于 2023-07-28 22:55 安徽

相关推荐

10 55 评论
分享
牛客网
牛客企业服务