支持向量机 · 软间隔几何

宽一点的间隔,要容忍多少违例?

软间隔不是把错误“忽略掉”,而是给每次违反间隔约束记一笔账。调分隔线、间隔宽度和 C,再拖动一个样本,你会看到这两笔代价怎样此消彼长。

在图上移动一笔违例

拖动任一样本。使用键盘时,先 Tab 到样本,再按方向键移动;按住 Shift 可加快步幅。

基础样本
二维训练样本 实线是决策面,金色虚线是 f=±1 的间隔边界
二维软间隔支持向量机几何图 图中有正类圆点、负类菱形、决策线、两条间隔边界,以及松弛变量线段。样本可用指针拖动或键盘方向键移动。
  • 正类圆点
  • 负类菱形
  • 支持向量候选
  • 正确但在间隔内
  • 误分类
支持向量候选0
正确但在间隔内0
误分类点0
松弛总量 Σξ0.00

把间隔和违例拆成两笔账

宽间隔会压低第一项,进入间隔或分错会抬高第二项。C 只决定第二项每单位 ξ 有多贵。

目标函数

J = 0.347 + 1.0 × 0.00 = 0.347

间隔项 1/(2m²) 违例惩罚 CΣξ
间隔项0.347
违例惩罚0.000
总目标0.347

当前没有间隔违例,目标全部来自间隔项。

从图上读对三个边界

这个实验刻意把线、间隔和 C 分开控制,方便逐项对账。真实训练会同时优化它们。

适用范围
ξ 在 0、1 两侧分别表示什么?

ξ=0 表示点在正确间隔边界上或更外侧;0<ξ<1 表示分类正确但进入间隔;ξ=1 表示落在决策面;ξ>1 表示已经走到错误一侧。

为什么支持向量不只在两条虚线上?

软间隔中,间隔内点和误分类点也可能让约束活跃。本页把 y·f≤1.02 的点标成几何活跃候选;真实支持向量仍以训练完成后的 α>0 为准。

低 C 与高 C 为什么只是“通常”?

C 提高后,单位违例更贵,优化器通常会缩小间隔或移动边界。但最终结果还取决于样本分布、核、类别权重和具体目标缩放,不能只凭 C 猜出边界。

这张图为什么不能拿来比较软件里的 C?

这里使用求和 hinge loss 和固定的二维尺度。有的软件使用平均损失、平方 hinge、样本权重或不同截距正则化;两个实现都写 C=1,不代表正则化强度相同。

最值得反复做的动作是:加入离群点,先看默认线;再分别选低 C 和高 C。你比较的不是哪条线“更漂亮”,而是哪一笔代价让边界愿意为困难样本让步。