Fork me on GitHub

SVM(支持向量机)之Hinge Loss解释

  • Hinge Loss 解释

  SVM 求解使通过建立二次规划原始问题,引入拉格朗日乘子法,然后转换成对偶的形式去求解,这是一种理论非常充实的解法。这里换一种角度来思考,在机器学习领域,一般的做法是经验风险最小化 ERM ,即构建假设函数为输入输出间的映射,然后采用损失函数来衡量模型的优劣。求得使损失最小化的模型即为最优的假设函数,采用不同的损失函数也会得到不同的机器学习算法,比如这里的主题 SVM 采用的是 Hinge Loss ,Logistic Regression 采用的则是负 log 损失,

L(Y,P(Y|X))=logP(Y|X)

  从二项分布的角度来考虑 Logistic 回归: 

 

P(Y=1|X)=11+eθxP(Y=0|X)=1P(Y=1|X)

  这里另 z=θTx ,  δ 为 sigmod 映射,则: 

E(z)=log(δ(z))

  E(z) 的图形如下图的红色曲线,可见 z 越接近 1 , E(z) 的取值越小,即损失越小。反之另:

E(z)=1log(δ(z))

  此时得到的图像应该为关于 E(z) 对称的红色的线(没画出),此时 z 越接近 -1,E(z) 的取值越小,即损失越小。

  : 图中绿色的线为 square loss ,蓝色的线为 hinge loss, 红的的线为负 log 损失。

  • 二分类问题

  给定数据集  T={(xi,yi)}i=1N , 要用这些数据做一个线性分类器,即求得最优分离超平面 wx+b=0 来将样本分为正负两类,给定数据集后只需求得最优的参数  w,b 即可,为了解决这个问题,首先做出如下线性映射函数 

y=wx+b

  根据经验风险最小化原则, 这里引入二分类的 Hinge Loss :

max(0,1yi(wxi+b))

  上图中对应的 E(z)=max(0,1z) ,所以SVM可以通过直接最小化如下损失函数二求得最优的分离超平面:

minw,bi=1Nmax(0,1yi(wxi+b))+λ||w||2

  • 多分类问题

对于多分类问题,现在要用这些数据做一个 k 类的线性分类器 ,现在需要优化的参数变为 W,b , 此时的 WRk×n,为一个 k×n 的矩阵,bRk 为一个向量,现在的映射关系如下 :s=Wxi+b,此时有 sRk  ,s 中的每个分量代表分类器在该类别的得分,样本 xi 的标签  yiRk , 这里若 xi 属于类别 k ,则 yi 中除了第 k 个分量外其余元素全为 0 ,比如 5 分类问题, xi  属于第 3 类,则有  yi=[0,0,1,0,0]  , 用 sj 表示得分向量 s 中的第 j 个分量 , syi 表示对应 yi=1 的分量,则单个样本多分类的Hinge Loss可表示为:

jyimax(0,sjsyi+1)

k 分类线性分类SVM 的 Hinge Loss表示为:

minW,bi=1Njyimax(0,sjsyi+1)+λknWk,n2

posted @   郭耀华  阅读(21706)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示