(二)线性分类器-中

本文深入探讨线性分类器的概念,重点讲解多类支持向量机(SVM)损失函数的工作原理,包括如何量化预测误差,以及通过正则化提升模型泛化能力的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性分类器分3个小节介绍,本章内容接上一章:(二)线性分类器-上

 

损失函数

在上一节,我们定义了从图像到每个类别的评分函数。对于评分函数,我们可以调整参数W和b,使的评分函数的值与真实类别一致,即评分函数在图像的真实类别有最高的评分。这就用到了损失函数(代价函数、目标函数),损失函数是用来衡量评分函数的值与真实的值之间差异的大小,也可以理解为我们对结果的满意程度。当评分函数与真实结果之间差异很大,损失函数的值越大,反之,则越小。

总而言之,我们对于预测训练集数据分类标签的情况总有一些不满意的,而损失函数就能将这些不满意的程度量化。

 

多类支持向量机损失

损失函数有很多,下面我们介绍的是比较常用的多类支持向量机(SVM)损失函数,公式如下:

\displaystyle L_i=\sum_{j\not=y_i}max(0,s_j-s_{y_i}+\Delta)

举例:用一个例子演示公式是如何计算的。假设有3个分类,并且得到了分值s=[13,-7,11]。其中第一个类别是正确类别,即y_i=0。同时假设\Delta是10(后面会详细介绍该超参数)。上面的公式是将所有不正确分类(j\not=y_i)加起来,所以我们得到两个部分:

\displaystyle Li=max(0,-7-13+10)+max(0,11-13+10)

可以看到第一个部分结果是0,这是因为[-7-13+10]得到的是负数,经过max(0,-)函数处理后得到0。这一对类别分数和标签的损失值是0,这是因为正确分类的得分13与错误分类的得分-7的差为20,高于边界值10。而SVM只关心差距至少要大于10,更大的差值还是算作损失值为0。第二个部分计算[11-13+10]得到8。虽然正确分类的得分比不正确分类的得分要高(13>11),但是比10的边界值还是小了,分差只有2,这就是为什么损失值等于8。简而言之,SVM的损失函数想要正确分类类别y_i的分数比不正确类别分数高,而且至少要高\Delta。如果不满足这点,就开始计算损失值。

当阈值为0时,这个损失函数常被称为折叶损失(hinge loss)。有时,我们还会将这个损失进行平方,叫做平方折叶损失SVM。即max(0,-)^2,它将更强烈的惩罚过界的边界值。

 

如图,当不正确的类别的分值都在这个红色区域的左边时,我们的损失值就为0。但如果不正确的类别的分值在在红色区域,或者更高,这时候,我们就开始计算损失值。我们的目标就是找到一个合理的参数W,b,来让我们的损失值尽可能的低。

 

正则化

上面的损失函数有一个问题,假如有一个权重W能正确的分类我们的数据,且满足我们设定的边界。但这个W却不唯一:可能会有很多相似的权重W都满足我们的目标。举个例子:假如有一个W能正确分类所有数据,即损失值为0。那么当\lambda>1时,任何数乘\lambda W都能使得损失值为0,因为这个变化将所有分值的大小都均等地扩大了,所以它们之间的绝对差值也扩大了。举个例子,如果一个正确分类的分值和举例它最近的错误分类的分值的差距是15,对W乘以2将使得差距变成30。

我们的做法是向损失函数增加一个正则化惩罚,最常用的正则化惩罚是L2范式,即通过对每个参数进行平方后再相加。

R(W)=\sum_k \sum_l W^2_{k,l}

这样,完整的多类SVM损失函数就包括了两部分:数据损失和正则化损失

L=\displaystyle \underbrace{ \frac{1}{N}\sum_i L_i}_{data \  loss}+\underbrace{\lambda R(W)}_{regularization \ loss}     N为训练集数量,\lambda为超参数

 

引入正则化惩罚还带来很多良好的性质,这些性质大多会在后续章节介绍。比如引入了L2惩罚后,SVM们就有了最大边界(max margin)这一良好性质。

其中最好的性质就是对大数值权重进行惩罚,可以提升其泛化能力,因为这就意味着没有哪个维度能够独自对于整体分值有过大的影响。举个例子,假设输入向量x=[1,1,1,1],两个权重向量w_1=[1,0,0,0]w_2=[0.25,0.25,0.25,0.25]。那么w^T_1x=w^T_2=1,两个权重向量都得到同样的内积,但是w_1的L2惩罚是1.0,而w_2的L2惩罚是0.25。因此,根据L2惩罚来看,w_2更好,因为它的正则化损失更小。从直观上来看,这是因为w_2的权重值更小且更分散。既然L2惩罚倾向于更小更分散的权重向量,这就会鼓励分类器最终将所有维度上的特征都用起来,而不是强烈依赖其中少数几个维度。这一效果将会提升分类器的泛化能力,并避免过拟合

需要注意的是,和权重不同,偏差没有这样的效果,因为它们并不控制输入维度上的影响强度。因此通常只对权重W正则化,而不正则化偏差b。在实际操作中,可发现这一操作的影响可忽略不计。最后,因为正则化惩罚的存在,不可能在所有的例子中得到0的损失值,这是因为只有当W=0的特殊情况下,才能得到损失值为0。

有了评分函数,损失函数,接下来我们要做的,就是找到能使损失值最小化的权重了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值