Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
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)}Ni=1 , 要用这些数据做一个线性分类器,即求得最优分离超平面 wx+b=0 来将样本分为正负两类,给定数据集后只需求得最优的参数  w,b 即可,为了解决这个问题,首先做出如下线性映射函数 

y=wx+b

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

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

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

min

  • 多分类问题

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

\sum_{j \ne y_i} max(0,s_j - s_{y_i} + 1)

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

\min_{W,b} \sum_{i=1}^N\sum_{j \ne y_i} max(0,s_j - s_{y_i} + 1) + \lambda \sum_k \sum_nW_{k,n}^2

posted @   郭耀华  阅读(21713)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示