SVM 的终极视角:合页损失函数 (Hinge Loss) 与正则化

在这篇文章【机器学习算法】一文搞定 SVM ------ 从 MMC 到 SVC,再到 SVM-CSDN博客中,我们通过"几何直觉(容忍点越过超平面)"引入了松弛变量 \\epsilon_i,构建了 SVC 的目标函数。随后引入核函数讲解了 SVM。

但实际上,对 SVM 的解释,机器学习界还有另一种完全等价的、更具普适性的视角:"损失函数 + 正则化" 视角。

1、从带约束条件到无约束形式的推导

回顾 SVC 原始的数学模型:

\\min_{\\beta, b, \\epsilon} \\quad \\frac{1}{2} \\\|\\beta\\\|\^2 + C \\sum_{i=1}\^n \\epsilon_i

约束条件: y\^{(i)}(\\beta\^T x\^{(i)} + b) \\ge 1 - \\epsilon_i 且 \\epsilon_i \\ge 0

为了方便,我们记 z_i = y\^{(i)}(\\beta\^T x\^{(i)} + b)

将约束条件稍微变形,我们可以得到 \\epsilon_i 的下界:

  1. 因为约束一:\\epsilon_i \\ge 1 - z_i

  2. 因为约束二:\\epsilon_i \\ge 0

既然我们的目标函数是在最小化 \\epsilon_i,那么 \\epsilon_i 必然会取到满足上述两个条件的最小值

也就是说,\\epsilon_i 实际上就等于 0 和 1 - z_i 这两个数中较大的那一个

用严谨的数学式子表达就是:

\\epsilon_i = \\max(0, 1 - y\^{(i)}(\\beta\^T x\^{(i)} + b))

2、什么是合页损失函数 (Hinge Loss)?

上面推导出的函数 L(z) = \\max(0, 1-z),在机器学习中大名鼎鼎,被称为合页损失函数(Hinge Loss)。因为它的图像看起来像一个翻折的合页(铰链)。

根据 z(即正确分类的置信度)的大小,它分为三种情况:

  1. z \\ge 1 :点在安全区(分类完全正确且在隔离带之外)。此时 1-z \\le 0,所以 Loss 为 0。模型对此十分满意,不产生任何惩罚。

  2. 0 \< z \< 1 :点在隔离带内(分类正确,但置信度不够高)。Loss 为 1-z。模型产生轻微惩罚。

  3. z \\le 0 :点越过中心超平面(被彻底分错类)。Loss 大于 1 且随距离线性增加。模型产生严重惩罚。

3、统一范式与"稀疏性"的最终解释

我们将 \\epsilon_i = \\max(0, 1 - y\^{(i)}(\\beta\^T x\^{(i)} + b)) 直接代回 SVC 的目标函数中。

原本带着繁琐约束条件的 SVC,瞬间化身为一个极其优雅的无约束优化问题

\\min_{\\beta, b} \\sum_{i=1}\^n \\max\\left(0, 1 - y\^{(i)}(\\beta\^T x\^{(i)} + b)\\right) + \\lambda \\\|\\beta\\\|\^2

(注:这里将常数 C 进行了等价代换,令 \\lambda = \\frac{1}{2C})

这个公式的伟大意义在于:

  1. 统一了机器学习框架:它完美契合了现代机器学习最通用的结构定义:

    这说明,SVC 在本质上就是一个使用 Hinge Loss 作为损失函数,并自带 L2 正则化(权重衰减)的线性分类器!它和逻辑回归(使用交叉熵损失)在架构上没有任何区别,只是换了损失函数。

  2. 彻底解释了支持向量的"稀疏性"

    为什么大部分数据点的 \\alpha_i = 0?从 Hinge Loss 的视角看简直一目了然:

    如果一个点足够安全(z \\ge 1),它的 Hinge Loss 就是绝对的 0。在微积分里,一块平坦的 0 区域,它的梯度(导数)就是 0

    既然梯度为 0,它对优化参数 \\beta不会产生任何拉扯的作用力,模型完全当它不存在。所以,天然的 0 损失,造就了 SVM 那神乎其技的稀疏性。

相关推荐
X journey2 小时前
机器学习进阶(15):过拟合
人工智能·机器学习
汀、人工智能2 小时前
[特殊字符] 第71课:爬楼梯
数据结构·算法·数据库架构·图论·bfs·爬楼梯
MicroTech20252 小时前
微算法科技(NASDAQ :MLGO)量子启发式算法与CNN、Transformer结合,实现端到端彩色图像分割
科技·算法·启发式算法
大连好光景2 小时前
回顾机器学习几个模型(监督+分类任务)
决策树·随机森林·机器学习·逻辑回归·svm
X journey2 小时前
机器学习进阶(14):交叉验证
人工智能·算法·机器学习
lolo大魔王2 小时前
Go语言的循环语句、判断语句、通道选择语句
开发语言·算法·golang
海清河晏1116 小时前
数据结构 | 单循环链表
数据结构·算法·链表
wuweijianlove10 小时前
算法性能的渐近与非渐近行为对比的技术4
算法
_dindong10 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法