LR 与 SVM
LR 与 SVM 的基本原理和数学推导。
逻辑回归学习类别概率,SVM 寻找兼顾分类与间隔的边界。 两者都可以从线性得分出发,但对“已经分对的样本”仍有不同要求:逻辑回归继续提高真实类别的概率,hinge 损失则在达到间隔要求后变为 0。
特征处理与评估见机器学习基础,模型差异集中在 FAQ:LR 与 SVM。完整的 SVM 对偶推导 放在文末,可按需阅读。
1. 逻辑回归:从得分到概率
1.1 线性得分、sigmoid 与阈值
对特征向量 ,先计算线性得分,再通过 sigmoid 得到模型估计的正类概率:
是特征权重, 是偏置。模型直接联合学习它们,无需先训练一个线性回归模型。
有限得分对应的概率位于 。给定阈值 , 时预测为正类,否则为负类。当 时,分类边界是 。
sigmoid 是非线性函数,但普通逻辑回归的分类边界仍是线性的。 调整阈值会移动分类边界,但不会改变已经训练好的概率函数;要表达非线性边界,可以先构造非线性特征。
与线性回归的输出、损失对比见 FAQ:逻辑回归与线性回归。
1.2 为什么使用交叉熵
令 ,。单个样本的真实标签在模型下的概率可以合并写成:
时取 , 时取 。在给定特征和参数后,各样本标签独立的假设下,整个训练集的似然是这些概率的乘积:
似然的作用:固定已观测的数据,比较不同参数对这组数据的解释程度。 它不是阈值分类后“所有样本都预测正确”的概率。
最大化似然等价于最大化对数似然:对数把乘积变成求和,并保持大小关系。再取负号、除以样本数,就得到平均二元交叉熵:
这里的 使用自然对数。真实标签为 1 时, 的损失约为 , 的损失约为 :越确信地预测错,惩罚越大。真实标签为 0 时则相反。
训练可使用梯度下降等优化方法。对上述平均损失,梯度为:
梯度中的 是概率估计与标签的差。选择合适的步长,沿梯度的反方向更新参数,可以降低平均损失;这不要求每个样本的损失都下降。加入 L1 或 L2 正则化,还会对较大的权重施加惩罚。
1.3 多分类与多标签
| 任务 | 常见输出方式 | 损失 |
|---|---|---|
| 二分类 | 一个 sigmoid 概率 | 二元交叉熵 |
| 单标签多分类 | softmax 概率分布 | 多类交叉熵 |
| 多标签分类 | 每个标签一个 sigmoid | 各标签二元交叉熵的汇总 |
单标签多分类中,每个样本只属于一个类别。对 个类别分别计算得分 ,softmax 将它们变为总和为 1 的概率:
对应的多类交叉熵损失为:
这里 表示样本是否属于第 类:真实类别为 ,则 ,其余 。所以求和中只有真实类别对应的一项保留下来,模型给真实类别的概率越高,损失越小。
单标签多分类也可以拆成多个二分类任务:每次选一个类别作为正类,将其他所有类别合并为负类。这叫一对其余(One-vs-Rest,OvR)。例如识别猫、狗、鸟,就分别训练“猫与非猫”“狗与非狗”“鸟与非鸟”三个分类器,预测时选择得分最高的类别。
多标签分类允许一个样本同时具有多个标签。每个标签分别使用 sigmoid,得到该标签出现的概率 ,各标签概率之和不必为 1。单个样本的损失可以将各标签的二元交叉熵相加:
此处 表示样本具有第 个标签, 表示不具有;多个 可以同时为 1。
2. SVM:用间隔约束分类边界
用 和 分别表示正类与负类,即 。线性得分记为 。
得分的正负决定类别, 是分隔超平面。在二维空间中,它就是一条直线; 与它垂直,固定 后改变 ,会使边界平行移动。SVM 的得分本身不是概率,需要概率输出时还要做概率校准。
2.1 硬间隔与支持向量
点 到超平面的距离为:
对线性可分的训练集,先取一个能正确分类的超平面,再按同一正数缩放 ,使最近样本满足 。
两侧的间隔边界为 ,各距决策边界 ,间隔带总宽度为 。

图中实线是决策边界,虚线是两侧的支持超平面,外圈标出支持向量。硬间隔 SVM 要在正确分开所有训练样本的同时,让间隔带最宽。 最大化 等价于最小化 :
硬间隔要求训练集线性可分。一个异常点就可能显著改变分隔边界,甚至让约束无解。
2.2 软间隔与 hinge loss
软间隔允许部分样本进入间隔带,甚至被分错,并用松弛变量 记录对间隔约束的违反程度:
控制两项目标的权衡:较大的 更重视减少间隔违反,较小的 更重视控制权重范数。具体取值通过验证集选择。
令 。约束要求 且 ;目标又会惩罚较大的 ,所以固定 后,最优的松弛量就是 hinge loss:
将它代回目标,软间隔 SVM 就是在最小化 。惩罚的不只是错分,还包括分对但间隔不足的样本:
- :分类正确且达到间隔要求,损失为 0。
- :分类正确,但进入间隔带,仍有损失。
- :分类错误,损失大于 1; 位于决策边界。
软间隔下,支持向量也可能位于间隔带内或错误一侧,不能一律解释成“离超平面最近的点”。
对偶解中系数 的样本参与构成分类函数,具体关系见文末推导。
2.3 0/1、hinge 与 logistic 损失
仍用 ,令 。 表示分类方向正确, 表示分类错误。
对逻辑回归,真实类别的概率可统一写成 ,前面的二元交叉熵就是 ,也称 logistic 损失。用这个形式与另外两种损失比较:
式中的 表示自然对数, 表示条件成立取 1,否则取 0;这里约定 也计入 0/1 错误。

图中横轴是有符号得分 ,纵轴是损失值。损失为 0,表示不再惩罚这个样本。
- 0/1 损失:分对就不再惩罚。 分错或恰好位于分类边界()时,损失为 1;只要进入正确一侧(),损失就变为 0,不再关心离边界多远。
- hinge 损失:分对后,还要达到间隔要求。 在分类边界()处,损失为 1;进入正确一侧后,损失随得分线性减小。分对但间隔不足()时,仍有损失;达到间隔要求()后,损失才归零。
- logistic 损失:分对后,仍鼓励提高真实类别的概率。 在分类边界()处,损失为 。当得分达到 时,hinge 损失已经归零,logistic 损失仍约为 0.313。继续增大得分,损失会平滑下降并趋近 0,但只要得分有限,损失就始终大于 0。
2.4 核函数怎样处理非线性
在特征空间中是线性的边界,回到原始空间后可以是非线性的。
例如数轴上的三个样本: 和 属于正类,夹在中间的 属于负类。一个阈值只能将数轴分成左右两部分,无法同时把两端的正类与中间的负类分开。
增加一个平方特征,将样本映射为 。这样就从数轴上的一个数,变成了平面上的一个点:横坐标是原来的 ,纵坐标是新增的 。
| 原样本 x | 类别 | 新坐标 (x, x²) |
|---|---|---|
| -2 | 正类 +1 | (-2, 4) |
| 0 | 负类 -1 | (0, 0) |
| 2 | 正类 +1 | (2, 4) |
两个正类点的纵坐标都是 4,负类点的纵坐标是 0。在纵坐标为 2 的位置画一条水平直线,就能把正类留在上方、负类留在下方。
这条直线对应 。回到原来的数轴,它变成两个分界点 :两端预测为正类,中间预测为负类。平方特征使新平面上的一条直线,表达了原数轴上需要两个分界点的分类规则。
特征映射可能产生很多维度。SVM 的对偶目标与预测只依赖样本内积,核函数可以直接计算映射后的内积:
是特征映射, 才是核函数。 用 替换内积,就能在不显式构造高维向量的情况下训练和预测,这就是核技巧。下面列出线性核、多项式核和 RBF 核(Radial Basis Function,径向基函数核),其中 RBF 采用高斯形式:
多项式核中,常取 , 为正整数。
RBF 核中 ,也可写为 : 越大,相似度随距离下降越快,边界可能更局部、更复杂。
另外两种常见形式是:
- 拉普拉斯核:,其中 , 表示各维绝对值之和。
- sigmoid 核:。这里的 与逻辑回归中的 sigmoid 函数不同,而且并非任意参数都满足正半定核条件,即不一定能表示某个特征空间中的内积。
核方法增加了可表达的边界形状,但不能保证新数据上分类正确。实际使用时,需要结合数据选择核和参数:
- 特征尺度:SVM 的间隔和核值都受尺度影响。RBF 核依赖距离,某一维数值范围过大时,可能主导距离;应先确定特征缩放,再联合选择 和 。
- 训练成本:核 SVM 的训练开销随样本数快速增长。样本很多、特征高维且稀疏时,可优先比较逻辑回归或线性 SVM 等线性模型。
3. 附:SVM 从原始问题到对偶问题
以下推导假设二分类训练集线性可分,,先使用线性特征。需要理解向量内积与偏导;约束优化中的必要概念在对应步骤说明。
3.1 为什么约束可以写成大于等于 1
取一个正确分开训练集的超平面,记最小有符号得分为 。同时将 除以 ,不会改变分类边界或类别判断,却会使最小有符号得分恰好等于 1。因此约束可以统一写为 。
此时最大化间隔宽度 ,等价于最小化 ,得到前面的硬间隔原始问题。
3.2 把约束放入拉格朗日函数
将每条约束写成 ,引入非负乘子 :
固定 后,分两种情况:
- 违反约束:对应括号为正,增大 就能让 无界增大。
- 满足全部约束:每个括号都非正,取 就能让附加项达到最大值 0,还原原目标。
因此原始问题可写成 :违反约束的参数被赋予无穷大的目标值,可行参数则保留原目标值。
对偶问题将顺序改为 。一般情况下,两者不能随意交换。
这里目标凸、约束仿射,且线性可分时存在严格可行点,满足强对偶条件,因此两者最优值相等。
3.3 消去原参数
固定 ,对 求偏导并令其为零:
因此 。对 的导数则要求 :若它不为 0, 中就留有系数非零的 一次项,调整 可使 ,无法得到有限的内层最小值。
把两者代回 :含 的项消失,含 的两项合并为 。对偶目标就只剩 :
3.4 为什么只保留支持向量
KKT 条件全称为 Karush–Kuhn–Tucker 条件(卡鲁什–库恩–塔克条件),是一组用于约束优化的最优性条件。
在这里,最优解需要同时满足原问题的间隔约束、乘子非负、上一节的偏导为零,以及下面的互补松弛条件:
星号表示最优解。互补松弛要求乘子与“超出间隔要求的量”相乘为 0,因此:
- 如果 ,括号必须为零,该样本就在支持超平面上。
- 如果样本严格位于间隔带外,括号大于零,则 ,不参与 的求和。
取一个 的支持向量,可恢复参数:
对偶目标与预测都只依赖样本内积。将内积替换为核函数,就得到核 SVM 的预测形式:
若得分恰好为 0,需要约定归入哪类。特征映射后的超平面满足 ;预测时使用核函数即可,无需显式求出高维的 。
对于前面的软间隔目标,对偶目标形式不变,约束变为 ,并保留 。其中 的样本满足 ,可用来恢复 ;若没有这样的点,则需依据 KKT 条件确定可行的偏置,不能套用任意支持向量。
SMO(序列最小优化)用来求解这一对偶问题。由于 ,固定其余乘子后,只改变一个乘子就会破坏等式;同时调整两个乘子,才能在保持等式的同时改进目标。因此 SMO 每次选择两个乘子优化,并满足各自的上下界,将大问题拆成容易求解的小问题。
评论
使用 GitHub 登录后参与讨论,评论将公开保存在 GitHub。
站长管理删除会同步到 GitHub,无法撤销。
阅读到这里时加载评论。