SVM复习,以及一些问题

SVM:

简单介绍SVM(详细原理):从分类平面,到求两类间的最大间隔,到转化为求间隔分之一,等优化问题,然后就是优化问题的解决办法,首先是用拉格拉日乘子把约束优化转化为无约束优化,对各个变量求导令其为零,得到的式子带入拉格朗日式子从而转化为对偶问题, 最后再利用SMO(序列最小优化)来解决这个对偶问题。svm里面的c有啥用

SVM的推导(推导过程参见之前的文章)

解释原问题和对偶问题,SVM原问题和对偶问题的关系
使用Lagrange乘数的SVM优化
这源于对偶原理,该对偶原理指出优化问题可以看作是原始问题(在这种情况下,将w和b最小化)或对偶问题(在这种情况下,将a最大化)。 对于凸优化问题,原始和对偶具有相同的最优解。

KKT限制条件,KKT条件有哪些,完整描述;
在这里插入图片描述
第一个
在这里插入图片描述
其中f(x)是原目标函数,hj(x)是第j个等式约束条件,λj是对应的约束系数,gk是不等式约束,uk是对应的约束系数

第二个
这意味着每个i的u⋆ihi(x⋆)= 0-直观的解释可以这么看:要求得L(x,λ,u)的最小值一定是三个公式项中取得最小值,此时第三项最小就是等于0值的时候。这恰好是互补的松弛度。
第三个为原问题的条件
第四个对偶条件
软间隔问题,解释支持向量、核函数(哪个地方引入、画图解释高维映射,高斯核可以升到多少维,如何选择核函数)
软间隔问题,解释支持向量在之前文章介绍过了
总是首先尝试线性核,只是因为它速度快得多,并且在许多情况下(特别是高维问题)会产生很好的结果。 如果线性内核失败,通常最好的选择是RBF内核。 众所周知,它们在各种问题上的表现都很出色

https://www.zhihu.com/question/35602879

引入拉格朗日的优化方法的原因,最大的特点,损失函数解释,
在这里插入图片描述
在数学优化中,拉格朗日乘数法是一种用于寻找受等式约束的函数的局部最大值和最小值的策略。 (维基百科)
从此定义中要注意的关键是,拉格朗日乘数的方法仅在相等约束下起作用。 因此,我们可以用它来解决一些优化问题:具有一个或多个相等约束的问题。

但是不用担心,拉格朗日乘数也将成为解决不等式约束问题的基础。

当它们的梯度指向相同方向时获得。让我们看看如何找到类似的结论。

在下图中,我们可以看到目标函数和可行集相切的点。我还在黑色中添加了一些目标函数梯度向量,并在白色中添加了一些约束梯度向量。

在这里插入图片描述

我们可以看到,只有两个向量指向同一方向的点:在约束下,它是目标函数的最小值。

这实际上很有趣。 当我们有一个函数f受另一个函数g约束时,当这些函数的法线平行时(即,这些函数彼此相切),我们有一个极值(最大值或最小值)。 这给出了拉格朗日乘数的基本方程式:
∇f(x)=λg(x)
其中λ是拉格朗日乘数。 等式表示梯度是平行的,但可以具有不同的大小或不同的方向,即λ是比例因子。

SVM与LR最大区别,LR和SVM对于outlier的敏感程度分析,逻辑回归与SVM的区别

SVM试图找到分隔类别的“最佳”边距(线与支撑向量之间的距离),这降低了数据出错的风险,而逻辑回归则没有,相反,它可以具有不同的决策边界和不同的权重 在最佳点附近。
SVM可以很好地处理文本和图像等非结构化和半结构化数据,而逻辑回归可以用于已确定的自变量。
SVM基于数据的几何属性,而逻辑回归基于统计方法。
在SVM中,过度拟合的风险较小,而Logistic回归很容易过度拟合。
LDA:假设:数据是正态分布的。如果各组具有不同的协方差矩阵,则所有组的分布均相同,LDA变为二次判别分析。在实际满足所有假设的情况下,LDA是可用的最佳判别器。顺便说一下,QDA是一种非线性分类器。
SVM:概括最佳分离超平面(OSH)。 OSH假定所有组都是完全可分离的,SVM利用“松弛变量”允许组之间有一定程度的重叠。 SVM完全不假设数据,这意味着它是一种非常灵活的方法。另一方面,与LDA相比,灵活性通常使解释SVM分类器的结果更加困难。
SVM分类是一个优化问题,LDA具有解析解决方案。 SVM的优化问题具有对偶和原始公式,使用户可以根据数据上最可行的方法对数据点数或变量数进行优化。 SVM还可以利用内核将SVM分类器从线性分类器转换为非线性分类器。使用您喜欢的搜索引擎搜索“ SVM内核技巧”,以了解SVM如何利用内核来转换参数空间。
LDA利用整个数据集来估计协方差矩阵,因此有些容易出现异常值。 SVM在数据的一个子集上进行了优化,这些子集位于分隔边距上。用于优化的数据点称为支持向量,因为它们确定SVM如何区分组,从而支持分类。
线性SVM和逻辑回归通常在实践中具有可比性。 如果我们有理由相信数据无法线性分离(或者您需要比LR通常可以容忍的outlier更健好),则可以将SVM与非线性内核一起使用。 否则,只需先尝试逻辑回归,然后看看如何使用该简单模型。 如果逻辑回归使您失败,请尝试使用带有RBF之类的非线性内核的SVM。

**为什么要把原问题转换为对偶问题?**因为原问题是凸二次规划问题,转换为对偶问题更加高效。

**为什么求解对偶问题更加高效?**因为只用求解alpha系数,而alpha系数只有支持向量才非0,其他全部为0.

**alpha系数有多少个?**样本点的个数

加大训练数据量一定能提高SVM准确率吗?

与感知器的联系和优缺点比较
SVM和感知器之间的差异。 SVM通常尝试使用“内核函数”将样本点投影到高维空间,以使它们线性可分离,而感知器假定样本点是线性可分离的。
为了简单起见,让我们在2D模式下工作。给定2D中的一组点,每个点都分配了两个标签中的一个,感知器算法会找到一条按类将点分开的线(前提是存在这样的线)。通常,会有多于一条这样的分隔线,并且通过运行感知器算法获得的确切线取决于处理的顺序点。

在将这些点分为两个类别的所有可能行中,最能预测测试集中未包括的将来点的类别的行会有所不同。想象一下,例如,您的测试集由这四个点组成(在红色和蓝色类中)

感知器可以找到例如任何细绿线作为分隔符。但是,试图将正确分类的非测试点的数量最大化的人可能不会选择这些细绿线。凭直觉,人类将更有可能选择一条大致位于两类点之间的线(例如,粗的黄绿色线)。

支持向量机在数学上使这种直觉变得具体-SVM是二次程序,在超平面将点分成两类的约束下,该程序最大化了余量(每个点与超平面的平方距离的平方和)。
如何解决多分类问题、可以做回归吗,怎么做
支持向量机不是概率模型;即,它不假定概率分布,因此不假定任何随机性。它仅试图绘制一条简单的线(或在较大尺寸的平面或超平面)以将数据点分为两部分。就这样。请注意,数据集包含标签数据。
一个困难是,通常无法线性地定义分类器(分隔的“线”或“超平面”),这意味着实际上不是将两组分隔的直线或平面。它应该是波浪形的曲线或曲面。那么我们该怎么办?我们将特征空间提升到更高或可能是无限维的空间,以便可以使用线性分类器。这称为内核技巧。这就是支持向量机所做的。
现在将其应用于回归问题,线性回归可以描述为尝试绘制一条将误差(或损失函数)最小化的线(或类似的平面或更高尺寸的超平面)。因此,如果我们选择不同的损失函数,则回归线(或平面,超平面)会发生变化。当看似最好不是由简单的线或平面来服务于特征空间,而是需要在分类问题中看到波浪状的东西时,而不是逼近波浪状的对象,我们再次使用内核技巧将特征空间提升到更高的水平尺寸。
这是我能想到的最好和最简单的解释。为了以一定程度的严格性理解一些模棱两可和不确定的术语,例如“内核技巧”或“提升特征空间”,(SVR)
如何解决多分类问题有三种方法,在另一篇文章单独介绍
它与其他分类器对比的优缺点,它的速度
优缺点并不完全取决于应用程序,但是在人脸识别的特殊情况下,存在一些警告,因为工程设计的功能通常非常好。
现在,您有两种执行视觉识别任务的方式已被接受:您可以计算一些相关的视觉特征,然后将它们提供给分类器(如SVM)。或者,您可以在一种模型(深度学习方法)中同时进行这两种操作。
只要您具有足够的数据和处理能力,深度学习就能提供最佳结果,并且面部识别也不例外。但是,计算成本可能很高,并且嵌入式方案中的识别速度非常糟糕(甚至不可能)。
有一些相当不错的功能可以快速计算以执行人脸识别,然后可以将其馈送到线性SVM。您可能会获得不如深度学习那样好的结果,但是仍然可以,而且更重要的是,它闪电般快。
如果您希望使用工程设计的功能获得更好的结果,则可以使用Kernel-SVM,但要以增加内存和计算资源为代价。为了获得非常高的精度,您需要大量的内存,因为您必须将所有支持向量存储在内存中,并且该数量随训练数据集的大小呈线性增长。该点对于使用Kernel-SVM的工程功能是有利的,但是您可以进行测试。
因此,这是我的最终建议:如果您正在寻求高精度,请使用现成的深度学习模型,它们真的很好。如果您想以非常低的成本和较高的速度获得足够好的性能,那么请使用经过工程设计的功能和线性SVM,这是物有所值的最佳选择。此外,几乎每种语言都有大量非常好的SVM库。

  1. 选择适当的内核函数很困难:选择适当的内核函数(以处理非线性数据)不是一件容易的事。 这可能是棘手且复杂的。 如果使用高维内核,可能会生成过多的支持向量,从而大大降低训练速度。

2.大量的内存需求:SVM的算法复杂性和内存需求非常高。 您需要大量的内存,因为您必须将所有支持向量存储在内存中,并且该数量会随着训练数据集的大小而突然增加。

3.需要特征缩放:应用SVM之前必须对变量进行特征缩放。

4.训练时间长:SVM在大型数据集上需要很长的训练时间。

**机器学习有很多关于核函数的说法,核函数的定义和作用是什么?**https://www.zhihu.com/question/24627666

**支持向量机(SVM)是否适合大规模数据?**https://www.zhihu.com/question/19591450

SVM和逻辑斯特回归对同一样本A进行训练,如果某类中增加一些数据点,那么原来的决策边界分别会怎么变化?
https://www.zhihu.com/question/30123068

**各种机器学习的应用场景分别是什么?例如,k近邻,贝叶斯,决策树,svm,逻辑斯蒂回归和最大熵模型。**https://www.zhihu.com/question/26726794

**Linear SVM 和 LR 有什么异同?**https://www.zhihu.com/question/26768865

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值