引言

关于支持向量可以参考机器学习入门——支持向量机和李宏毅机器学习——支持向量机。

关于结构化学习的知识建议先阅读下李宏毅机器学习——结构化学习(二)。


本文主要介绍结构化支持向量机的理论知识。

文章目录

  • 引言
  • 可分的情况
  • 不可分的情况
  • 考虑错误
  • 正则项
  • 结构化支持向量机
  • 分割平面法
  • 用结构化SVM来做多分类和二分类
    • 多分类SVM
    • 二分类SVM
  • 参考

在李宏毅机器学习——结构化学习(二)中我们说,我们要找到合适的框把目标给框出来。今天我们假设无法找到一个这样的框,但是能找到一个近似的,这个问题要怎么解呢。

下文会介绍这个问题的解法。

先看下本文的结构。

可分的情况

我们已经在李宏毅机器学习——结构化学习(二)中讨论了可分(Separable case)的情况。

在这里我们引入了margin。


现在有两份数据,一个用圈圈表示,另一个用星星表示。红色的代表是正确的结果。

所谓可分的意思是存在一个向量w^\hat ww^,如果我们把所有的点都对w^\hat ww^做内积,会发现我们能让红点(正确的点)内积结果比同份数据蓝色点内积结果都大一个值,记为δ\deltaδ。

比如红色圈圈比所有蓝色圈圈的内积值都大一个δ\deltaδ,红色星星也一样。
如果用数学描述就是这样:

如果是可分的话,我们就可以用下面的算法来找到我们要的参数www。

接下来证明下我们能找到这个向量www。
先看下结论,在可分的情况下,我们最多只要更新(R/δ)2(R/\delta)^2(R/δ)2次就能找到w^\hat ww^。

RRR是最大ϕ(x,y)\phi(x,y)ϕ(x,y)距离的最大值。在同份数据中,把所有的点都代入ϕ(x,y)\phi(x,y)ϕ(x,y)可以得到一个距离,任何两点距离了最大的值就是RRR。

所以这个算法需要迭代的次数与yyy的空间是无关的,即无论yyy有多少,只要RRR确定,迭代次数就确定。

证明如下:

www在每次发现错误点的时候就会更新。

把www的更新过程写出来,我们先看wkw^kwk与wk−1w^{k-1}wk−1的关系。

我们知道,它们一定有这样的关系:

某个正确结果形成的ϕ(xn,y^n)\phi(x^n,\hat y^n)ϕ(xn,y^​n)减去某个错误的y∼\overset{\sim}yy∼​形成的ϕ(xn,y∼n)\phi(x^n,\overset{\sim}y^n)ϕ(xn,y∼​n)。

我们考虑的是可分的情况,先假设存在一个w^\hat ww^使得

正确结果的ϕ\phiϕ与w^\hat ww^的内积比非正确结果的内积都要大一个δ\deltaδ。

不失一般性,假设∣∣w^∣∣=1||\hat w||=1∣∣w^∣∣=1,假如我们找到了一个w^\hat ww^,它可以让我们的数据可分,那我们对这个w^\hat ww^做归一化,把它的长度变成1的话,它一样还是可以让我们的数据可分。

我们看下w^\hat ww^与wkw^kwk之间的关系,如果我们计算这两个向量的夹角,这个夹角记为ρk\rho_kρk​,我们会发现当kkk越来越大的时候,夹角越来越小。

我们可以计算cosρkcos \rho_kcosρk​(夹角越小,cos⁡\coscos值越大)


在(0,π)(0,\pi)(0,π)之间,当xxx越来与小,cosxcos xcosx的值越来越大。

接下来看下w^⋅wk\hat w \cdot w^kw^⋅wk的值。


我们把右边的括号展开会发现

红线标出的这项一定大于等于一个δ\deltaδ。这是来自我们的定义,现在w^\hat ww^可以让我们的数据可分的,那不管找到一个怎样的y∼n\overset{\sim} y^ny∼​n,它与w^\hat ww^的内积一定比y^n\hat y^ny^​n与w^\hat ww^的内积还小一个δ\deltaδ。

所以红线的两项相减得到的结果是大于等于一个δ\deltaδ的。

所以我们可以说 w^⋅wk≥w^⋅wk−1+δ\hat w \cdot w^k \geq \hat w \cdot w^{k-1} + \deltaw^⋅wk≥w^⋅wk−1+δ。

因为初始w0=0w^0=0w0=0。

w^⋅w1≥w^⋅w0+δ\hat w \cdot w^1 \geq \hat w \cdot w^0 + \deltaw^⋅w1≥w^⋅w0+δ。
所以 可以说 w^⋅w1≥δ\hat w \cdot w^1 \geq \deltaw^⋅w1≥δ

而w^⋅w2≥w^⋅w1+δ⋯\hat w \cdot w^2 \geq \hat w \cdot w^1 + \delta \cdotsw^⋅w2≥w^⋅w1+δ⋯

所以w^⋅w2≥2δ\hat w \cdot w^2 \geq 2 \deltaw^⋅w2≥2δ

同理 w^⋅wk≥kδ\hat w \cdot w^k \geq k \deltaw^⋅wk≥kδ

也就是看cosρkcos \rho_kcosρk​的分子的话,它是不断增加的。

接下来我们再算下分母的∣∣wk∣∣||w^k||∣∣wk∣∣,因为我们已经假定∣∣w^∣∣=1||\hat w||=1∣∣w^∣∣=1。

如果我们发现∣∣wk∣∣||w^k||∣∣wk∣∣没有很快的增加,而这两向量的内积又增加的话,我们就可以知道wkw^kwk和w^\hat ww^是越来越接近的(随着kkk的增加)。

还是用这个wkw^kwk的表达式

wk−1w^{k-1}wk−1当成一项,剩下的当成另一项,把平方展开得到:


展开完后,首先红线标出的式子是一个长度,它一定大于0:

那右边的这项应该是什么样的值呢

上面这项是小于0的,在预测错误的情况下,wk−1w^{k-1}wk−1的方向和更新方向的夹角是大于90度的,所以小于0。

以上篇文章中更新www的图为例,更新方向向量是绿色的,预测错误的www是向上的那个,它们的夹角是大于90度的。


我们假设任何两个数据点的距离是小于RRR的。

所以

∣∣wk∣∣2≤∣∣wk−1∣∣2+R2||w^k||^2 \leq ||w^{k-1}||^2 + R^2∣∣wk∣∣2≤∣∣wk−1∣∣2+R2

于是我们可以得到wkw^kwk长度的上界。
我们知道:

以此类推


我们现在得到的结论是:

也就是说内积不断增加,而wkw^kwk的长度并没有增加的很快:

上式为什么是≥\geq≥呢,因为∣∣wk∣∣2||w^k||^2∣∣wk∣∣2取最大值,作为分母的话,就是使得整个式子最小,而分子又是取的最小值,所以上式是≥\geq≥。

随着kkk不断增加,这个cos⁡\coscos的值可能会增加,我们知道coscoscos函数的值最大只能是111。

它的上边界就是111。也就是:

证明完毕。

从这个式子我们可以发现什么呢

如果δ\deltaδ越大,那么这个式子的结果越小,也就是训练的越快。这很合理,如果红色的点与蓝色的点分得越开,我们训练的就越快。

但是在实际情况中我们很难找到正确和错误的结果是可分的。常见的都是不可分的情况,接下来我们就一起看下这种情况。

不可分的情况

在不可分的情况中,还是会有一些权值www比其他的要好。

假设没有任何一个向量可以让正确答案和错误答案被分开。但是在这些向量里面,
我们还是可以区分出好坏的。

假设我们有一个向量w′w^{'}w′,它把正确答案排在第二。

有另外一个向量w′′w^{''}w′′,它把正确答案排在最后一名。


虽然这两个向量都无法让正确答案的分数高过错误的,但是显然w′w^{'}w′是更好的。

那我们如何用式子来描述这种情况呢

我们可以定义一个损失CCC来评估www有多差,然后选择使得损失CCC最小的www。

CCC的定义可以是全部的yyy里面,可以让最大w⋅ϕ(xn,y)w \cdot \phi(x^n,y)w⋅ϕ(xn,y)的值,减去正确的y^\hat yy^​所形成的值w⋅ϕ(xn,y^n)w \cdot \phi (x^n,\hat y^n)w⋅ϕ(xn,y^​n)。

从图上可以看出,就是第一名的值减去正确的结果的值,这是很直观的。

对每份数据都有一个CnC^nCn,累加起来就得到了CCC。

我们来想下这个值有可能是负数吗,如果正确的红色框框排在第一名的话,那就变成自己减去自己,最小就是0了。

接下来如何找到一个www去使CCC最小呢

其实我们用梯度下降就好了,虽然这个CnC^nCn里面含有maxmaxmax。在maxout网络中我们已经看到过类似的解法:


虽然里面有个maxmaxmax,还是可以计算对www的梯度的。

当www不同的时候,选出来的yyy是不一样的。
可以把www所形成的空间想象成如下:

这个空间其实是被maxmaxmax切分成好几块的,比如y′y ^ {'}y′形成的maxmaxmax区域是下面涂蓝色的部分:

当www的值落在蓝色区域内,得到来的yyy是y′y ^ {'}y′。

在每个区域里面的函数是可以容易的算出来的,比如在蓝色区域的式子就可以写成这样:

其他区域也是一样的:

在每个区域里面都是可以微分的。

接下来就可以用梯度下降法来找到使CCC最小的www

假设更新TTT次,做随机梯度下降。


首先要知道落在哪个区域里面(上面应该是argmaxarg\, maxargmax,maxmaxmax只是一个最大值,加上argargarg才会返回一个yyy),然后我们算出来是在y∼n\overset{\sim}y^ny∼​n的区域里面。

所以算梯度就简单了

然后我们就可以更新www

如果把学习率η\etaη设成111,那我们做的就是structured perceptron。
就是下图这个算法:

考虑错误

我们刚才的损失函数,对所有错的情况都是一视同仁的。

但事实上并非如此,因为输出有很多种可能,在这些可能情况里面,有一些和真实的输出是很接近的。


比如正确的是红框,但是你的系统框出的是第二名的那个,其实它也是框在了练功春日上面,也是可以接收的。但是其他的错误框框就无法接受了。

所以不同的错误之间还是有差别的。我们应该把这件事情考虑进去。


比如说,框在樱花树上是很差的,不能接受的,但是第二名那个是可以接受的。我们希望框在樱花树上的分数很低,而第二名的分数要能和正确的结果分数接近。

如果你今天的权重能做到,使得结果能按照框框的好坏来排序,那么训练的结果是比较安全的。假如你的测试数据和训练数据有一些差距的话,虽然你得到的第一名不是正确的,但是至少能保证分数比较高的和正确的差距不是很大。

那如果把这件事情考虑到损失函数中去呢

正确的框框是红色的,这里有两个错误的框框。当错误的框框和正确的框框很像时,我们希望第二名那个错误的框框分数与正确框框的分数差距是比较小的;而错误很离谱的第三名那个框框和正确的框框分数差距是较大的。

现在的问题是如何衡量框框的好坏。其实这是与任务有关的,在不同的任务中你要想办法去定义它。

我们用Δ(y^,y)\Delta(\hat y,y)Δ(y^​,y)表示正确的框框和其他框框之间的差距。
至于这个Δ(y^,y)\Delta(\hat y,y)Δ(y^​,y)的式子需要你自己去定义,我们假设下面的讨论中定义如下:

A(y)A(y)A(y)代表yyy这个框框的面积。如果某个框框和正确的框框相交的面积越大的话,并且它们面积的并集也不是很大,我们就可以得到一个比较小的差距。

那有了Δ\DeltaΔ以后,我们需要修改损失函数。

现在评判的方法是用yyy的分数w⋅ϕ(xn,y)w \cdot \phi(x^n,y)w⋅ϕ(xn,y)再加上Δ(y^n,y)\Delta(\hat y^n,y)Δ(y^​n,y),然后再减去 正确结果的分数w⋅ϕ(xn,y^n)w \cdot \phi(x^n,\hat y ^n)w⋅ϕ(xn,y^​n)

我们会看看哪个yyy,它不止是分数大,Δ\DeltaΔ也大,我们才会觉得它是真正的第一名。然后我们会拿这样的yyy来减去y^\hat yy^​的分数。

可以想象成,如果今天有个yyy的Δ\DeltaΔ值很大,我就希望它和正确答案的分数差距越大越好。

反之如果今天有个框框,它和正确的框框其实很像的话,那就算它们的分数没有拉开也没关系。

那看下CnC^nCn在什么状况下会得到0,当正确的y^\hat yy^​所得到的分数,不仅是比其他的yyy还要到,而且都要大过一个损失函数所形成的Δ\DeltaΔ值的时候,那你的CnC^nCn会是最小的。


这个Δ\DeltaΔ所形成的差距就是margin。如果yyy是一个很不好的框框,那么它和正确答案之间的margin就会很大;反之是个可以接受的框框,那么它和正确答案之间的margin就要比较小。

我的理解是,这个Δ\DeltaΔ相当于是一个惩罚项,它惩罚那些Δ\DeltaΔ值很大的框。

现在加上了Δ\DeltaΔ的这是式子如何用梯度下降去优化它呢


现在找的是让w⋅ϕ(xn,y)w \cdot \phi(x^n,y)w⋅ϕ(xn,y)加上Δ\DeltaΔ最大,找出来的yyy记作y‾\overline{y}y​ 。

梯度的计算也变了

下面这个损失函数其实有另外一个观点来解释。


这个观点认为这个损失函数是训练数据上的误差的上界。

当你在最小化这个损失函数的时候,你是在最小化训练数据误差的上界。

最小化上界并不一定代表说误差会变小,但是是有可能会跟着变小的。


假设我们让上面这个内积最大的yyy,当做我们系统的输出。


那我们希望最小化的是C′C^{'}C′,我们希望能找到一个www,让y^\hat yy^​与y∼\overset{\sim} yy∼​之间的差距越小越好。

但是最小化C′C^{'}C′这件事情并没有那么容易,因为yyy可以是任何的对象;Δ()\Delta()Δ()可以是任何的函数。如果Δ()\Delta()Δ()比那些不可微分的函数更复杂,比如是阶梯状的,那么梯度下降法就无能为力了。 可以想象是对www做了一点改变,但是对Δ\DeltaΔ一点影响都没有。


不过还好有我们刚才可以用来做损失函数CCC,它是C′C^{'}C′的上界,我们希望通过最小化CCC来达到最小化C′C^{'}C′的效果。

接下来证明CnC^nCn是Δ(y^n,y∼n\Delta(\hat y^n,\overset{\sim} y^{n}Δ(y^​n,y∼​n的上界。


首先看下面这项是大于等于0的。

因为y∼n\overset{\sim} y^{n}y∼​n是可以让 w⋅ϕ(xn,y)w \cdot \phi(x^n,y)w⋅ϕ(xn,y)最大的yyy。

所以不管减去什么,一定是大于等于0的。
所以下式是成立的:

接下来换下右边这项括号里的内容:


然后我们说它是小于含max⁡\maxmax的那项的

本来是计算y∼\overset{\sim} yy∼​的Δ\DeltaΔ加上y∼\overset{\sim} yy∼​的内积,现在变成了找一个yyy,它使得Δ\DeltaΔ加上内积最大。

既然这个yyy是Δ\DeltaΔ加上内积最大的那个yyy,它一定大过y∼\overset{\sim} yy∼​。

而包含max⁡\maxmax的这一项就是CnC^nCn。


证明完毕。

其实还有别的方法可以让

成立。

刚才说的是这个:

还有下面这种方法:

正则项

接下来再加上正则项。

训练数据和测试数据可能有不同的分布,www如果和0比较接近的话,就可以最小化这种不匹配的影响。

在原来的损失函数中加上12∣∣w∣∣2\frac{1}{2} ||w||^221​∣∣w∣∣2。蓝色下划线这一项是要让错误的yyy和正确的yyy之间差一个margin。


前面绿色下划线这一项就是正则项,它希望www接近0。这两项中间会有一个λ\lambdaλ,来调整这两项的差距。

那右边新的这一项如何做优化呢


优化过程如上。

接下来看看为什么今天讲的这个东西叫结构化支持向量机。

结构化支持向量机

最后我们用的损失函数是这样的。我们可以稍微修改下这个式子。


首先把右边的负号项移到左边。


把上面那项改成对所有的yyy,都有Cn+w⋅ϕ(xn,y^n)C^n+ w \cdot \phi(x^n,\hat y^n)Cn+w⋅ϕ(xn,y^​n)大于等于


它们是一样的吗

我们今天要最小化CnC^nCn,那我们就说这一项
就等于maxmaxmax就好了。如果这一项比maxmaxmax大的话,就不是最小化的值。
(这里其实没有看懂,李老师讲的SVM不好理解啊)。

接下来把CnC^nCn移到右边


现在就变成这样

习惯上这里会把CnC^nCn换成εn\varepsilon^nεn

这个εn\varepsilon^nεn称为松弛变量(Slack variable)。

在下面这个等式中,定好www后,εn\varepsilon^nεn的值并没有直接决定,所以我们要改下描述。

现在要解的问题就变成了蓝框框出的问题:

当y=y^ny=\hat y^ny=y^​n时

得到εn≥0\varepsilon^n \geq 0εn≥0。

所以可以重新描述下上面蓝框中的不等式。

如果听不懂的话,李老师说我们可以换个说法。


我们希望正确的框得到分数和错误的框得到分数中间差了个margin。如果它们的差越大,那么margin就要越大。

反之如果它们的差越小,那么margin就应该越小。

我们把红框和黄框的Δ\DeltaΔ当做它们之间应该有的差,如果它们越相近,那么margin就应该越小。

所以我们可以列出一个限制条件,说我们今天要找到的www应该满足以下条件。


因为我们有非常多个黄框,所以不等式也有非常多个。所有不等于y^\hat yy^​的yyy都会有一个不等式。

但是有一个问题是你可能找不到一个www让上面的不等式都满足。

所以我们把margin改的小一点,把margin都减去一个ε\varepsilonε


为了把margin变小,这个ε\varepsilonε要是大于等于0的。

因为margin变小了,也就说要找的www的限制被放宽了。所以叫ε\varepsilonε为松弛变量。

当然限制不能放得太宽,可以想象说今天ε\varepsilonε是无穷大,那么所有的margin都变成负值,那么随便找到一个www都会让这些不等式被满足的话,这个就不是我们要的东西。

我们希望放宽的幅度必须是最小的,也就是说我们希望ε\varepsilonε的值能越小越好。

假设我们今天有两笔数据,x1x^1x1和x2x^2x2。对x1x^1x1来说,我们希望正确的减掉错误的要大于它们之间的Δ\DeltaΔ减掉ε1\varepsilon^1ε1。对所有的yyy除了y^1\hat y^1y^​1以外,这些不等式都成立。

接下来有另外一笔数据x2x^2x2,我们希望正确的减掉错误的一样大于Δ\DeltaΔ减掉ε2\varepsilon^2ε2。

在满足这些不等式的前提下,我们希望这些ε\varepsilonε的和是最小的。

这样得到的式子就和刚才推导出来的是一样:

这个东西和SVM的关系是什么呢,它和SVM的式子其实是大同小异的。它们都是二次规划问题。

现在唯一的问题是限制条件太多了,接下来的问题是,在限制这么多的情况下应该要怎么办。且听下节分解。

分割平面法

现在的问题是,我们有一个参数空间,由www和ε\varepsilonε所形成。

参数空间上面的颜色代表需要最小化的CCC值:



在没有限制的情况下,青色星星这一点是最小值。但是我们有大量的限制条件。


这些限制告诉我们,在这个空间里面只有中间那个灰色区域是符合我们所有的限制的。


我们要在灰色区域中找最小值,我们得到的结果就是上图青色星星那一点。限制的问题是如何找出这个灰色区域。

虽然这里的限制很多,但是大部分的限制都是冗余的。

比如说我们看这两条红色的限制,我们只要有这两条红色的限制,就能决定大部分灰色区域的形状。这样下面绿色的这条限制,其实是不会对结果有影响的。

所以我们可以优化下限制条件表达式,不需要穷举所有的yyy了。我们只需要从有影响的限制条件集合中去取。

这个小部分的有影响的限制条件集叫工作集(working set),这里用AnA^nAn表示。

如果有能找出这样的工作集的话,在优化的时候我们只要考虑AnA^nAn里面的yyy。

现在的问题是如何找到这个工作集。我们通过迭代的方法来找,每次找到一个元素加到工作集里面。

一开始为每个样本初始化一个空工作集,然后根据这个工作集去解下面的问题:

我们考虑工作集里面的yyy,假设我们根据这个工作集解出一个www后,我们再用这个www去重新检查下,增加新的元素到工作集。此时工作集就不一样了。然后我们再用这个工作集去重新解上面的QP问题。

这样又可以得到不一样的www,又可以找到新的成员添加到工作集。就这样一直循环。

我们用图示的方式来解释下这个过程是如何运作的。

  • 先假设初始化样本nnn的工作集为An=nullA^n=nullAn=null,表示它是空集合,也就是没有任何限制;
  • 假设我们在没有限制的情况下,得到的结果是蓝色的点。
  • 找出这个蓝色的点后,我们需要看看有哪些限制是没有被满足的。比如下图这些红色的线都没有被满足
  • 虽然有很多没有被满足的限制,但是我们只选择没有满足的最严重的那个。假设我们找到的是下图红线那个,并记这个限制为y′y^{'}y′
  • 我们就把这条限制加到工作集里面,现在工作集就有一个成员了。
  • 根据我们现在工作集唯一的成员,它告诉我们说,最小的值是下面蓝色星星
  • 接下来我们以蓝色星星作为结果,看还有哪些限制没有被满足。此时还有很多,比如新的红线就没有被满足
  • 再把这条没有被满足的限制(就是上图没有经过蓝色星星的那条红线)加到工作集中。我们就根据现有的两条限制,得到一个新的值:
  • 接下来要继续检查还有哪些限制没有被满足,比如说下面这条新的线就没有被满足。
  • 再把这条新线加到工作集中,现在工作集中有3条线了,我们就根据这3条线,得到一个新的最小值。
  • 于是就找到我们要的解,就结束整个算法

上面有个问题就是如何寻找没有满足的最严重的那个限制。

我们先来看下限制的表达式,当一个限制被违反(violate)的时候,给定w′,ε′w^{'},\varepsilon^{'}w′,ε′,就是说

但是不满足(违反)的限制可能有很多个,我们要定义一个违反的程度:


就是不等式右边这一项减去左边,它大的越多就越违反。
我们还可以简化下这个式子,对所有的x,yx,yx,y来说,ε′\varepsilon^{'}ε′是一个固定的值,它与yyy没有关系,而w′⋅ϕ(x,y^)w^{'} \cdot \phi(x,\hat y)w′⋅ϕ(x,y^​)也不影响我们计算。因此可以简化为:

最后违反程度最严重的yyy就是可以让上式的值最大的yyy:

我们现在来看下这个分隔平面法的样子:

这里用y‾\overline{y}y​表示当前找出的违反程度最严重的限制。知道我们无法找出一个新的y‾\overline{y}y​放入工作集时,整个算法就结束了。

用结构化SVM来做多分类和二分类

多分类SVM

假设有KKK个类别,有KKK个权重,它们组成一个权重向量。

F(x,y)F(x,y)F(x,y)就可以写成


这个xxx就是我们要去分类的数据,用向量表示。
如果我们用结构化SVM的是,一般F(x,y)F(x,y)F(x,y)是长这样的:

那和下面这个公式是同一个吗

其实它们是同一个。我们可以把www用列向量的形式表示,ϕ(x,y)\phi(x,y)ϕ(x,y)写成这样:

在ϕ(x,y)\phi(x,y)ϕ(x,y),x→\overrightarrow {x}x放的位置与yyy的取值有关,假设这里y=8y=8y=8,我们把x→\overrightarrow {x}x放到这个位置。

因此这两个式子是可以一样的。


那推断类别的时候怎么做呢,就是穷举所有可能的yyy,看哪个的wy⋅x→w^y \cdot \overrightarrow {x}wy⋅x的取值最大。因为类别是有限的,所以这里的穷举很容易。

解下来就做一下训练。此时的限制条件是有限的。所以也用不着分隔平面法。

那有多少个限制呢,假设有nnn份训练数据,每份训练数据都有K−1K-1K−1个不正确的yyy。因此整个限制的数量就是N(K−1)N(K-1)N(K−1)。

根据上面ϕ\phiϕ的形式,我们可以把www乘进去:

得到上面两项,然后代入限制条件公式中:

那这里的Δ(y^n,y)\Delta(\hat y^n,y)Δ(y^​n,y)是什么呢,这个其实可以自己定义。可以说如果我们预测的类别和真实类别不一样就是1,一样就是0。

但是可以考虑另外一种问题,就是某种类型当成另一个类别是比较严重的,而当成其他某种类别是不严重的。

比如说yyy有狗、猫、公交车和小汽车。

然后我们就可以自己定义,本来类别是狗,我们预测的是猫,相差就不是很严重;而本来是狗,预测的是公交车,相差程度就很大。

这样在训练的时候,我们的模型就会尽量避免把狗识别成公交车。

二分类SVM

二分类其实就是多分类中的K=2K=2K=2而已。

本来我们的限制是写成这样的,但是因为我们只有两个类别。我们就可以把正确答案是类别1,弄错成类别2与正确答案是类别2,弄错成类别1的Δ\DeltaΔ不一样。


我们这里假设只要弄错Δ=1\Delta=1Δ=1。今天我们K=2K=2K=2,你会发现只有两种情形:

  • 要么它属于类别1
  • 要么它属于类别2

    我们可以假设w1−w2=ww^1 -w^2 =ww1−w2=w而w2−w1=−ww^2 - w^1 = -ww2−w1=−w,代入上面就可以得到。

参考

  1. 李宏毅机器学习

李宏毅机器学习——结构化支持向量机相关推荐

  1. 机器学习-62-Structured Learning-03-Structured Support Vector Machine(结构化学习-结构化支持向量机)

    文章目录 Structured Support Vector Machine Unified Framework(统一框架:两步走,三问题) two steps(两步) three problems( ...

  2. 机器学习结构化学习模型_生产化机器学习模型

    机器学习结构化学习模型 The biggest issue in the life-cycle of ML project isn't to create a good algorithm or to ...

  3. 资料分享:推荐一本《李宏毅机器学习》开源电子书!

    背景 今天在 github 上看到了 datawhale 发布的 李宏毅机器学习笔记. https://datawhalechina.github.io/leeml-notes 其目录如下: P1 机 ...

  4. 喜大普奔:Datawhale开源项目《李宏毅机器学习完整笔记》发布了!

    开源地址 https://github.com/datawhalechina/leeml-notes [导读]关于机器学习的学习资料从经典书籍.免费公开课到开源项目应有尽有,可谓是太丰富啦,给学习者提 ...

  5. 李宏毅机器学习完整笔记发布,AI界「最热视频博主」中文课程笔记全开源

    点上方"小詹学Python",选择"置顶公众号"第一时间获取干货分享!本文转自:Datawhale 提起李宏毅老师,熟悉机器学习的读者朋友一定不会陌生.很多人选 ...

  6. 视频+笔记+能够跑通的代码,《李宏毅机器学习完整笔记》发布!

    点击我爱计算机视觉标星,更快获取CVML新技术 [导读]关于机器学习的学习资料从经典书籍.免费公开课到开源项目应有尽有,可谓是太丰富啦,给学习者提供了极大的便利.但网上比比皆是的学习资料大部分都是英文 ...

  7. 李宏毅机器学习—读书笔记

    李宏毅机器学习笔记(LeeML-Notes) leeml-notes 机器学习 人工智慧(Artificial Intelligence)是我们想要达成的目标,希望机器可以跟人一样的聪明.机器学习(M ...

  8. 台大李宏毅机器学习课程

    [机器学习入门] 台大李宏毅机器学习课程,转载来自:https://blog.csdn.net/soulmeetliang/article/details/77461607 TOPIC CONTENT ...

  9. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  10. 论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取

    论文笔记整理:邓淑敏,浙江大学在读博士,研究方向为低资源条件下知识图谱自动化构建关键技术研究. Rujun Han, Qiang Ning, Nanyun Peng. Joint Event and ...

最新文章

  1. Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
  2. 2.2.1 静态成员
  3. 如何配置php的ip地址吗,linux如何配置IP
  4. ERP customizing extraction - how extraction function module is determined
  5. 位置指纹法的实现(KNN)
  6. jQuery 属性,css,文档操作
  7. python3导入模块原理_python模块导入原理
  8. 问题 F: Search Problem (III)
  9. Core Animation 文档翻译 (第二篇)—核心动画基础要素
  10. python和java哪个好-Python和JAVA的就业前景哪个好点?
  11. numpy中int类型与python中的int
  12. Linux下的/etc/ssh/ssh_config文件配置详解SSH配置文件相关参数详细说明
  13. 结构体里数组的初始化
  14. 什么是前贴片、中贴片和后贴片广告?它们分别在哪里使用?
  15. Android Studio首次连接不上网易mumu模拟器解决办法
  16. bat脚本使用winRAR命令行压缩文件
  17. Vue整合Element-UI的分页组件实现分页
  18. 高数-导数的应用--函数凹凸性与拐点
  19. 海尔简爱s11怎么进入bios_海尔简爱S11笔记本安装win10系统操作方法
  20. Python入门:对Excel数据处理的学习笔记【第四章】字符串类型处理技术

热门文章

  1. 3dmax详细讲解全套攻略在线视频教程
  2. sql server 恢复数据库时提示有其他用户连接,怎么办?
  3. ZeroC IceGrid demo构建(继承Ice::Application类)
  4. document.frames()与document.frames[]的区别
  5. openstack常见问题解决方法
  6. Python项目打包成exe文件
  7. 数据结构与算法--图的概念
  8. Face Recognition
  9. SSH整合所需的jar包
  10. 向iis注册framework命令