Logistic 回归找的是「一条能分开的线」,SVM 找的是「离两边都最远的那条线」。 这个"最远"的要求,最后只由少数几个点决定——它们叫支持向量。 当一条直线实在分不开时,核技巧把数据悄悄搬到高维,在那里一刀切开。
能分开的直线有无数条。SVM 挑那条离最近的点最远的——把间隔撑到最宽, 模型对噪声的容忍度就最大:
约束取 1 是人为约定的(w、b 可以整体缩放);间隔宽度就是 ,所以最小化 就是最大化间隔。
现实数据总有重叠。给每个样本一个松弛量 ,允许它越界,但要罚:
C 就是"容忍度"的反面:C 大 → 几乎不容忍错分 → 间隔窄、容易被噪声带偏; C 小 → 宽容 → 间隔宽、更稳。这是 SVM 最重要的一个超参数。
约束是 与 。 解出来以后 —— 只有 αᵢ > 0 的样本进入这个求和,它们就是支持向量。 KKT 条件把话说得更清楚:
这就是为什么 200 个样本里往往只有十几个是支持向量——页面上那张 α 图看得最清楚。
对偶式里数据只以点积 ⟨xᵢ, xⱼ⟩ 的形式出现。把点积换成一个核函数, 等价于把数据映射到高维再算点积,却不用真去算那个映射:
本页提供三种: