zoukankan      html  css  js  c++  java
  • 如何把SVM的推导和损失函数联系起来?

    1:

    作者:PENG
    链接:https://www.zhihu.com/question/62881491/answer/203113850
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    从不同的角度来看SVM可以得到两种不同的解释。

    通常来讲SVM是为了找到具有最大间隔的超平面,而这个最大间隔由 [公式] 决定,而所有样本点是需要满足一个约束条件 [公式] 的,这是一个有约束的优化问题,因而优化目标 [公式] 适用于对偶+拉格朗日乘数法来解决。

    当我们允许有某些错误样本出现的时候,就需要考虑到希望有尽量少的不满足约束的点,因而为这些“坏点”定义一个惩罚项,优化目标就可以转变为 [公式] 。如果把后面的这个惩罚项换成 [公式]就变成了经典形式的SVM。

    从另外的角度来看是指将模型最后的预测值与ground truth的误差当作优化目标,我们需要学习出参数 [公式], [公式]使得误差最小。

    例如在二分类SVM中,我们希望当样本点满足 [公式] 时,预测 [公式],而 [公式]时,我们预测 [公式],但是这样还不太可靠,如果我们想提高模型预测的置信度,我们可以定义一个margin [公式] ,使得 [公式] 时判断 [公式](负例同理,因而联立起来变为 [公式]),当样本点没有满足这个条件的时候,就会有损失,合理的方式就是使用hinge loss损失函数 [公式],而这时问题就变为了一个无约束的优化问题

    而为了使模型泛化性能更好,我们加上正则项 [公式] ,损失函数就变成了 [公式] ,这时可以看出从这种角度出发得到目标函数和和前面相同了,而且这种情况下使用简单的梯度下降就可以进行优化。

     
     
    2:
     
    作者:李欣宜
    链接:https://www.zhihu.com/question/62881491/answer/500947075
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    谢谢

    的邀请。但是对不起,我不是做机器学习的,读的和做的都很少,不太明白这个问题的意思,只能按照我的理解尝试揣测一下这个观点。
    最近看到了关于SVM的损失函数,在衔接这两部分是大家都在用这么一句话“SVM的训练也可以从另一个角度来理解”引出Hinge

    抱歉我没有见过这个说法。请你给出这个文本的出处,否则我无法精确的理解它想表达什么。

     

    所谓soft-margin SVM,相比hard-margin SVM我们允许某些用于训练的样本点在模型中被错误分类,主要是为了防止过分追求模型和训练样本的贴合而引发的overfit。那么去考虑soft-margin SVM的模型,就必须思考怎样地去“允许”SVM在一些训练样本上出错,

    1. 一方面希望margin尽可能的大以留出余地防止overfit

    2. 一方面又希望它在训练样本上的表现足够准确

    那么需要的目标函数就有两个部分,1对应的是 [公式] ,就是我们在hard-margin SVM中见到的目标函数。问题在于如何表达2?如何量化SVM即分类函数 [公式] 对于训练样本点的分类误差?那么这里需要定义一个loss function,让你来写你怎么写?

    离散的用 [公式] 表示如果该点分类正确则产生的loss为0否则为1,这个粗糙的写法使得整个目标函数非凸,不连续,数学性质差,难以直接优化。所以会用一些性质比较好的凸函数替代,hinge函数就是其中一个

    [公式]

    蓝色的线为原始的0/1损失函数,红色的为hinge loss,大致看下形状就行

    这里的 [公式] 表示未经过取符号处理的原始预测结果与样本标签的乘积 [公式] ,这个表达式在hard-margin SVM模型中也是出现过的

    [公式]

    在往回想它的推导过程,我们需要一个超平面(在特征空间只有一维 [公式] ,如下图,这个超平面就是一条直线)分割一些标签为+1和-1的样本点,并且为了留出足够的准确性,希望样本点都距离这个超平面远一些。那么这个问题可以表达为:找到一个超平面,使在某个等距的间隔内没有样本点,而且在同一侧的样本点的标签相同,并使得这个间隔最大。那个不等式约束的含义就是保证样本点在图中对应虚线的外侧。

    两条虚线之间的距离就是margin,标签为+的点全部在wx+b=1的上方,即wx+b>=0,标签为-的点全在wx+b=-1的下方,即wx+b<=-1,取到等号的,即圈出来的样本点就是所谓的support vector,用于支撑起margin

    回到soft-margin模型,当然使用hinge loss时一般用的是slack variable [公式] 来表示样本点 [公式] 在当前训练模型下的violate,即

    [公式]

    [公式] 虽然被写在约束不等式中,但对于固定的w和b来说,它的取值就是定值即hinge loss的结果。这是min这个目标决定的。 [公式] 的物理意义也可以被看作样本点i如果没有在虚线外侧(包括在实线正确的一侧,却不在虚线的外侧)时,它离它“应该”在的位置的距离(实际上还需要除以 [公式] ),即该点到该虚线的距离。C是一个调整惩罚权重的参数。

    众所周知,两种SVM的Lagrange dual problem形式几乎一致,除了soft-margin对Lagrange multiplier [公式] 的不等式约束为 [公式] 而hard-margin的约束为 [公式] ,这时hinge loss的形式天然的符合SVM模型,它们之间微妙的关系也呼之欲出了。

     

    这样还不明显不妨退回去看两个SVM的原始形式,一起推一下他们的Lagrange dual形式,首先hard-margin的Lagrange function写为

    [公式]

    而soft-margin则为

    [公式]

    多出了与 [公式] 相关的最后一项,这样写会发现 [公式] 在函数中似乎也担当了类似于Lagrange multiplier的角色。不要忘了本来就有 [公式] ,虽然这一点也可以直接从上面的优化目标和约束推出,并体现在KKT conditions之一的 [公式][公式] 上,决定SVM的还是令 [公式] 的那几个样本点,即support vector

    图中被圈起来的就是使得alpha_i>0的那些样本点,即support vector,被方形圈住的是没有违法超平面分类的SV,它们的hinge function结果为0,三角形的样本点则是违反了分类函数的SV,它们的hinge functor大于0

    此时有 [公式] ,这部分的取值在hinge loss的函数图像上是分段函数中的一部分,即 [公式] ,取等号的即free SV,就像hard-margin问题中的所有SV,而斜率为-1的直线上的其他部分即违法margin分类的bounded SV,这两类SV共同决定了SVM模型的参数;而远离margin的,分类正确的样本点,在hinge loss的图像上落在贴行于z轴的地面上,没人关心它们的函数值统一截取为0,正如在样本空间中也没人关心它们的存在,再添加一个这样样本点进来也不会改变已经训练结束的SVM模型的参数。换言之,hinge保存了SVM的稀疏性和持续训练的低开销。

     

    hinge是一种naive且常用的loss function,符合空间直觉和逻辑,使用hinge loss的soft-margin可以看成原问题hard-margin最简单的一种扩展。除此之外还有很多的loss function,比如exponential loss和logistic loss,只是把当前训练中模型输出的数值结果 [公式] 用其他函数映射成另一个损失值,相比线性的hinge,就不能用上面的slack variable去做了,Lagrange multiplier method的结果也不会像上面那样与hard-margin问题相似和整洁了,但这些loss的计算也各有长处,比如logistic loss可以用于L2-regularized logistic regression,输出结果也更具概率的自然意义。

     
    原文:https://www.zhihu.com/question/62881491?sort=created
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    202103226-1 编程作业
    阅读任务
    1 20210309-1 准备工作
    20210405-1 案例分析作业
    第一周作业
    20210309-2 阅读任务
    20210309-1 准备工作
    编程作业
    阅读任务
    准备工作
  • 原文地址:https://www.cnblogs.com/Ph-one/p/13671696.html
Copyright © 2011-2022 走看看