Skip to content

监督学习、损失函数与集成模型 ​

本页沿着“模型假设—损失函数—正则化—集成方式”的顺序整理经典监督学习算法。学习时应同时关注输入输出、优化目标、关键超参数和泛化边界。

一、学习范式与监督信号 ​

1.1 监督学习 ​

监督学习使用带标签的数据训练。数据通常写成:

{(xi,yi)}i=1N

其中 xi 是输入特征,yi 是目标值或类别标签。模型学习一个从输入到目标的映射:

y^=fθ(x)

训练时通过损失函数比较 y^ 与真实标签 y,再更新模型参数。

监督学习中的目标主要有两类:

  • 回归:目标值是连续数值,例如预测房价、温度或销量;
  • 分类:目标值是离散类别,例如判断图片属于猫还是狗。

线性回归要求训练数据带有连续目标值,通过学习输入特征到连续输出的映射完成预测,因此属于典型的监督学习:

y^=wTx+b

常见监督学习算法还包括:

  • 逻辑回归:分类;
  • 决策树:可用于分类和回归;
  • 随机森林:通常用于监督分类或监督回归;
  • 支持向量机(SVM):可用于分类和回归;
  • 梯度提升树:可用于分类和回归;
  • 神经网络:在使用带标签目标训练时属于监督学习;
  • LDA:需要类别标签的监督降维方法,也可以用于线性判别分类。

判断监督学习的关键不是模型名字,而是训练时是否有明确的目标值参与损失计算。

1.2 无监督学习 ​

无监督学习只使用输入数据,不依赖人工提供的类别标签:

{xi}i=1N

模型需要从数据本身发现结构、分布或低维表示。常见任务包括:

  • 聚类:根据样本相似性自动划分数据;
  • 降维:用更少的维度保留数据中的主要信息;
  • 密度估计:学习数据可能来自什么概率分布;
  • 异常检测:发现偏离主要数据结构的样本。

标准的主成分分析(PCA)不使用类别标签,通过寻找方差最大的方向进行降维,属于无监督学习。K-Means 根据样本距离自动划分簇,也属于无监督学习。高斯混合模型(GMM)通过概率分布描述潜在群体,同样通常属于无监督学习。

1.3 半监督学习 ​

半监督学习同时使用少量有标签数据和大量无标签数据:

Dl={(xi,yi)},Du={xj}

其核心目标是减少人工标注成本,同时利用大量无标签样本改善模型的泛化性能。例如,只有少量图片标注了“猫/狗”,但还有大量未标注图片,模型可以同时利用这两部分数据训练。

可以这样记忆:

学习范式核心判据
监督学习利用有标签数据学习
无监督学习没有标签,自己发现规律
半监督学习少量有标签 + 大量无标签
强化学习根据环境奖励信号学习

半监督学习的典型场景就是:只有少量标记样本,但有大量未标记样本,希望降低人工标注成本并提升模型性能。

1.4 强化学习 ​

强化学习不以每个输入都配有正确标签为主要监督信号,而是让智能体与环境交互,根据奖励或惩罚学习策略:

状态⟶动作⟶奖励

通过环境奖励训练智能体,属于强化学习,而不是监督学习或半监督学习。

强化学习与前三种范式的快速区别是:

  • 监督学习:数据带有目标标签;
  • 无监督学习:数据没有人工标签,模型寻找结构;
  • 半监督学习:少量数据有标签,大量数据没有标签;
  • 强化学习:环境通过奖励信号评价行为。

二、经典监督学习模型 ​

下表用于建立第一层判断,不代表一个模型在所有训练方式下只能属于一种范式。

学习范式典型算法或方法常见任务
监督学习线性回归、逻辑回归、决策树、随机森林、SVM、梯度提升树、LDA回归、分类、监督降维
无监督学习PCA、K-Means、GMM、DBSCAN、层次聚类、谱聚类降维、聚类、密度估计
半监督学习伪标签、一致性正则化、标签传播等少量标注与大量未标注数据
强化学习Q-Learning、策略梯度、Actor-Critic序列决策与控制

2.1 集成学习:Bagging、Boosting 与 Stacking ​

集成学习把多个基学习器组合起来完成预测。不同基学习器可以通过样本、特征或训练过程的差异产生不同的结果,再通过投票、平均或加权求和得到最终输出。

随机森林与 Bagging ​

随机森林(Random Forest)是典型的 Bagging 集成方法。它训练多棵决策树,再聚合这些树的结果:

  • 分类任务使用多数投票;
  • 回归任务通常取各棵树预测值的平均。

随机森林中的两个“随机”来源是:

  1. 样本随机:对训练集进行有放回的 Bootstrap 抽样,为不同决策树构造不同的训练子集;
  2. 特征随机:每次节点分裂时,只从随机选出的部分特征中寻找最优分裂特征。

因此,不同决策树不会完全相同。将多个相关但不完全相同的树进行聚合,可以降低单棵树预测的方差,通常有助于减少过拟合。

可将分类过程概括为:

多棵决策树⟶各自预测⟶多数投票⟶最终类别

随机森林速记

Random Forest = Bootstrap 样本 + 随机特征 + 多棵决策树聚合。

Bootstrap、OOB 误差与模型评估 ​

设原始训练集有 n 个样本。随机森林为一棵树进行 n 次有放回抽样,得到一个大小仍为 n 的 Bootstrap 样本集,但其中可能有样本被重复抽取,也可能有样本一次都没有被抽到。对固定样本,它没有被抽到的概率为:

(1−1n)n→n→∞e−1≈0.368

因此,一棵树平均使用约:

1−e−1≈63.2%

的不同训练样本,约 36.8% 的样本成为这棵树的 OOB(Out-of-Bag,袋外)样本。这里的“抽样次数为 n”不等于“使用了原始数据中的全部 n 个不同样本”。

对某个训练样本 xi,可以只收集那些没有用到 xi 的树的预测,再进行投票或平均,得到袋外预测 y^iOOB。将所有样本的袋外预测与真实目标比较,就得到 OOB 误差。例如分类时可以写成:

ErrOOB=1n∑i=1n1(y^iOOB≠yi)

回归任务则通常计算袋外预测的均方误差或其他回归指标。因为每个样本的 OOB 预测没有使用该样本训练对应的树,OOB 误差可以作为一种不需要额外划分验证集的内部泛化误差估计,常用于:

  • 评估随机森林的泛化性能;
  • 辅助比较模型或调整超参数;
  • 在训练数据有限时减少单独留出验证集带来的数据浪费。

OOB 误差适合做内部评估,但如果反复根据同一份 OOB 结果进行大量调参,仍可能对这份评估产生过拟合;重要模型选择通常还应结合独立验证集或交叉验证。

随机森林的特征重要性 ​

随机森林可以根据树的分裂和预测变化估计特征重要性。常见方法有:

  1. 基于不纯度下降的特征重要性(Mean Decrease in Impurity,MDI):累计某个特征参与节点分裂时带来的加权不纯度下降。计算速度快,但可能偏向取值较多或连续的特征,也可能在强相关特征之间分配得不稳定。
  2. 置换重要性(Permutation Importance):在 OOB 样本或独立验证集上打乱某个特征的取值,观察模型性能下降幅度。性能下降越明显,说明模型对该特征的依赖通常越强;但高度相关的特征可能互相替代,使单个特征的置换重要性被低估。

特征重要性描述的是特征对当前模型预测的贡献,不自动等同于因果关系,也不应仅凭一个重要性排序断言某个特征在现实世界中“真正导致”目标变化。

GBDT 与 Boosting ​

GBDT(Gradient Boosting Decision Tree)属于 Boosting,而不是 Bagging。Boosting 通常按顺序训练基学习器:后面的学习器重点拟合前面模型留下的残差或难以预测的部分。

GBDT 的顺序纠错过程为:

模型 1⟶模型 2 纠正前者误差⟶模型 3 继续纠正⟶加权组合

因此,Bagging 和 Boosting 的核心区别是:

方法基学习器关系聚合方式典型代表
Bagging通常相互独立、可并行训练投票或平均Random Forest
Boosting按顺序训练,后者关注前者的错误加权累加GBDT、AdaBoost

决策树和线性回归如果单独使用,则是单模型,不属于集成本身。集成学习中“多个训练器、并行学习、投票或平均、降低方差”通常对应以下两种典型关系:

集成方法速记

  • Bagging → Random Forest:并行训练,投票或平均,通常用于降低方差。
  • Boosting → GBDT:按顺序训练,后续模型纠正前面模型的误差。

Stacking:学习基模型的组合方式 ​

Stacking(堆叠集成)不是简单地对多个模型的结果做固定平均,而是再训练一个 Meta-Model(元模型),让它学习如何组合不同基模型的预测。

设有 M 个基模型 f1,…,fM,它们对样本 x 的预测组成新的特征:

z(x)=[f1(x),f2(x),…,fM(x)]

Meta-Model g 再以这些预测结果为输入,得到最终预测:

y^=g(z(x))=g(f1(x),…,fM(x))

因此 Stacking 的典型结构是:

text
原始特征
    ↓
多个基模型
    ↓
基模型预测结果(新的特征)
    ↓
Meta-Model
    ↓
最终预测

基模型可以使用不同类型的算法,例如线性模型、决策树、SVM、神经网络等;Meta-Model 也可以是线性回归、逻辑回归、决策树、GBDT 或神经网络。它学习的不是某个固定权重,而是不同基模型预测之间的组合关系。

如果 Meta-Model 恰好采用线性模型,Stacking 可能表现为:

y^=w0+w1f1(x)+⋯+wMfM(x)

这时看起来像加权组合,但“加权平均”只是 Stacking 的一种特殊情形。Meta-Model 也可以学习非线性组合,因此不能把 Stacking 简化定义为加权平均。

对于分类任务,第二层输入通常使用基模型输出的类别概率或决策分数,而不只是最终的硬类别标签;对于回归任务,通常直接使用基模型的连续预测值。

Stacking 中的 OOF 预测与数据泄漏 ​

训练 Meta-Model 时,不能直接把基模型在自身训练样本上的预测作为第二层训练数据。这样的预测通常过于乐观,Meta-Model 可能学到基模型对训练集的过拟合,造成数据泄漏。

常用做法是使用 K 折交叉验证生成 OOF(Out-of-Fold,折外)预测:

  1. 将训练集划分为 K 个折;
  2. 每次用其中 K−1 个折训练基模型,并预测剩下的一个折;
  3. 将每一折的留出预测拼接起来,形成所有训练样本的 OOF 预测;
  4. 用这些 OOF 预测作为特征训练 Meta-Model;
  5. 部署或预测新样本时,用完整训练集重新训练基模型,再将其预测交给 Meta-Model。

OOF 速记

OOF 基模型预测 → Meta-Model 的训练特征。

三类集成方法的区别 ​

方法基模型之间的关系最终组合方式典型代表或特征
Bagging通常相互独立、可以并行训练投票或平均Random Forest,降低方差
Boosting按顺序训练,后续模型关注前面模型的错误加权累加GBDT、AdaBoost
Stacking基模型先产生预测,再训练元模型学习组合关系Meta-Model 学习组合可使用异构基模型,组合关系可以是非线性的

三类集成方法速记

  • Bagging:并行投票。
  • Boosting:串行纠错。
  • Stacking:学习如何组合预测。

2.2 SVM 与核函数 ​

支持向量机(SVM)在原始特征空间中寻找分类超平面。对于线性不可分的数据,可以通过特征映射 ϕ 把样本映射到更高维空间,再在高维空间中使用线性方法:

x⟼ϕ(x)

核技巧不需要显式计算 ϕ(x),而是直接计算高维空间中的内积:

K(x,z)=ϕ(x)Tϕ(z)

这样既可以表达非线性关系,又避免显式构造高维特征。

合法核函数的基本条件 ​

对任意有限样本 x1,…,xn 构造核矩阵:

Kij=K(xi,xj)

标准核函数需要使这个核矩阵满足对称半正定条件,即:

K=KT,cTKc≥0对任意 c

这通常用 Mercer 条件或正定核条件来描述。辨析 SVM 核函数时,首先检查它是否是标准的正定核,而不是只看它能否写出一个相似度公式。

常见核函数 ​

线性核:

K(x,z)=xTz

多项式核:

K(x,z)=(γxTz+r)d

RBF(高斯径向基)核:

K(x,z)=exp⁡(−γ‖x−z‖22)

这三类是基础机器学习中最常见的标准核函数。

常见核函数速记

线性核、多项式核、RBF 高斯核。

所谓“逻辑核函数”不是 SVM 中标准的常用核函数名称,容易与 Sigmoid 核混淆。Sigmoid 核常写成:

K(x,z)=tanh⁡(γxTz+r)

但它不是任意参数下都满足半正定条件,因此在没有给出参数限制时,不能像线性核、多项式核和 RBF 核那样无条件视为合法标准核。

在核函数辨析中,线性核、多项式核和 RBF 核通常可以作为标准核函数直接识别;“逻辑核函数”不是规范的常见名称,不能因为它听起来像一个函数就默认满足合法核函数的条件。

RBF-SVM 中的 C 与 γ ​

RBF 核的形式为:

K(x,x′)=exp⁡(−γ‖x−x′‖22)

其中 γ 决定核函数随距离衰减的速度,也可以理解为一个样本对周围区域的影响范围。若将 RBF 核写成高斯核的带宽形式:

exp⁡(−‖x−x′‖222σ2)

则有:

γ=12σ2

因此 γ 越大,等价的带宽 σ 越小,单个样本的影响越局部;γ 越小,影响范围越宽。

SVM 的软间隔参数 C 控制违反间隔约束或误分类的惩罚。在带松弛变量的简化形式中,优化目标可以表示为:

minw,b,ξ12‖w‖22+C∑i=1nξi

其中 ξi 表示样本违反间隔约束的程度。C 越大,模型越不愿意容忍训练误差,通常对应更弱的正则化;C 越小,模型更愿意牺牲一部分训练集拟合效果来换取更宽的间隔和更强的正则化。

两个参数对模型复杂度的典型影响如下:

参数变化直接含义常见结果
C↑更重地惩罚间隔违反和分类错误更强调训练集拟合,决策边界可能更复杂,过拟合风险上升
C↓更能容忍间隔违反和分类错误正则化更强,边界通常更平滑,可能欠拟合
γ↑RBF 作用范围变小,更关注近邻样本边界更局部、更曲折,过拟合风险上升
γ↓RBF 作用范围变大,更多样本相互影响边界更平滑,过度减小时可能欠拟合

需要注意,γ 和 C 作用在模型的不同环节:C 控制训练误差的惩罚,γ 控制核相似性的局部程度。因此,提高 γ 不能理解为“等价于减小 C”或“等价于改变正则化强度”,二者需要分别调节。实际使用 RBF-SVM 时,通常先对特征进行标准化,再在对数尺度上通过交叉验证共同搜索 C 和 γ。

2.3 逻辑回归:概率输出、决策边界与分类损失 ​

逻辑回归虽然名字中有“回归”,但主要用于二分类。它先计算输入的线性得分:

z=wTx+b

再通过 Sigmoid 函数把得分压缩到 (0,1):

σ(z)=11+e−z

模型输出通常解释为样本属于正类的概率:

p^(x)=σ(wTx+b)≈P(y=1∣x)

概率计算与数值示例 ​

逻辑回归先计算线性得分,再通过 Sigmoid 将得分转换为正类概率。

数值计算示例

给定:

w=[0.5−1.0],x=[21],b=−1

先算线性得分:

z=0.5×2+(−1.0)×1−1=−1

再计算正类概率:

p^=σ(−1)=11+e≈0.2689≈0.27

因此,z=−1 表示模型给出的正类概率约为 0.27。在默认阈值 τ=0.5 下,它会被判为负类;概率值和最终类别仍然是两个不同的输出。

手算时可以利用以下常用近似值:

线性得分 zSigmoid 输出 σ(z)
−2σ(−2)≈0.12
−1σ(−1)≈0.27
0σ(0)=0.50
1σ(1)≈0.73
2σ(2)≈0.88

由于 Sigmoid 单调递增且 σ(0)=0.5,因此 z<0 时概率低于 0.5,z=0 时概率为 0.5,z>0 时概率高于 0.5。模型输出的概率估计不是最终的离散类别,仍需结合阈值 τ 做决策。

逻辑回归决策边界的几何意义 ​

使用阈值 τ 将概率转换为类别:

y^={1,p^(x)≥τ0,p^(x)<τ

最常见的阈值是 τ=0.5。由于 Sigmoid 是单调递增函数:

σ(z)=0.5⟺z=0

因此二分类决策边界由线性得分决定:

wTx+b=0

阈值并不一定固定为 0.5。在类别不平衡或漏报、误报代价不同的任务中,可以根据精确率、召回率和业务代价调整阈值。若阈值改为任意 τ∈(0,1),利用 Sigmoid 的反函数可得:

σ(z)=τ⟺z=log⁡τ1−τ

此时决策边界为:

wTx+b=log⁡τ1−τ

在默认阈值下,可以按照线性得分的符号判断类别:

{wTx+b>0⟹通常预测为正类wTx+b<0⟹通常预测为负类wTx+b=0⟹位于决策边界

所以,普通二分类逻辑回归的边界仍然是线性超平面;改变阈值会移动边界的位置,但不会把它变成曲线。在 R2 中它是一条直线,在 R3 中是一个平面,在更高维空间中称为超平面。向量 w 是该超平面的法向量,决定边界的方向,b 决定边界的位置。

对数几率解释 ​

逻辑回归并不是直接假设概率与输入特征严格线性相关,而是假设正类的对数几率与特征线性相关:

log⁡p^(x)1−p^(x)=wTx+b

分类输出函数与任务形式 ​

二分类通常使用一个 Sigmoid 输出正类概率。Sigmoid 已在本节开头定义,其输出范围为 0<σ(z)<1,因此适合表示二分类概率;例如输出为 0.82 时,可以理解为模型估计样本属于正类的概率约为 82%。最终类别仍需结合阈值决定,概率输出和离散分类结果不是同一个概念。

互斥多分类通常对多个类别的线性得分使用 Softmax:

softmax(z)k=ezk∑j=1Kezj

Softmax 输出的是一个 K 维概率分布,满足:

pk≥0,∑k=1Kpk=1

逻辑回归的二分类形式和 Softmax 回归的多分类形式都属于监督学习模型,训练时需要类别标签和相应的分类损失。

需要区分多分类和多标签分类:

  • 多分类:类别彼此互斥,一个样本只能属于一个类别,通常使用一个 Softmax;
  • 多标签分类:一个样本可以同时拥有多个标签,通常为每个标签使用独立的 Sigmoid,标签概率不要求加和为 1。

ReLU 和 Tanh 也会在神经网络中出现,但它们通常不是二分类概率输出函数:

函数公式输出范围常见位置
Sigmoidσ(z)(0,1)二分类输出层,也可用于部分隐藏层
Softmaxsoftmax(z)k各分量非负且总和为 1互斥多分类输出层
Tanhez−e−zez+e−z(−1,1)神经网络隐藏层或门控结构
ReLUmax(0,z)[0,+∞)神经网络隐藏层

分类输出速记

  • 二分类:Sigmoid。
  • 互斥多分类:Softmax。
  • 多标签分类:多个独立的 Sigmoid。

这里的归类依赖训练方式。例如神经网络既可以使用标签做监督学习,也可以通过自监督目标进行预训练;“神经网络”本身不是监督信号的同义词。

二元交叉熵损失 ​

逻辑回归的标签 y∈{0,1} 可以看作服从参数为 p^ 的 Bernoulli 分布,因此通常使用二元交叉熵(Binary Cross-Entropy,BCE),也就是 Bernoulli 负对数似然。单个样本的损失为:

L=−[ylog⁡p^+(1−y)log⁡(1−p^)]

对 n 个样本取平均后,批量损失为:

LBCE=−1n∑i=1n[yilog⁡p^i+(1−yi)log⁡(1−p^i)]

当 y=1 时,损失简化为:

ℓBCE(1,p^)=−log⁡p^

当 y=0 时,损失简化为:

ℓBCE(0,p^)=−log⁡(1−p^)
交叉熵计算示例

真实标签为 1 而模型只给出 p^=0.1 时:

ℓBCE(1,0.1)=−log⁡(0.1)

如果使用自然对数,则 −ln⁡(0.1)≈2.3026。预测概率越偏离真实标签,尤其是模型对错误类别越自信,交叉熵的惩罚增长越快;损失前的负号也保证了概率在 (0,1) 内时损失不会因为对数为负而变成负数。

在 Sigmoid 的线性得分 z 上,Sigmoid 与 BCE 组合的单样本梯度为:

∂ℓBCE∂z=p^−y

这种形式是二分类中常用 Sigmoid + BCE 组合的重要优化原因之一。MSE 并非绝对不能用于分类,但它主要对应连续目标的平方误差,也不再是 Bernoulli 观测模型的标准负对数似然;将 MSE 与 Sigmoid 组合时,还可能受到 Sigmoid 饱和导致的梯度减弱影响。

Focal Loss:聚焦难分类样本 ​

Focal Loss 是交叉熵的加权变体,主要用于类别不平衡或容易样本数量远多于困难样本的分类任务。设 p 是模型预测为正类的概率,对二分类可以定义真实类别对应的概率为:

pt={p,y=11−p,y=0

对于互斥多分类,若真实类别为 y,则 pt 就是 Softmax 输出中真实类别对应的概率 py。基础形式的 Focal Loss 为:

FL(pt)=−(1−pt)γlog⁡(pt),γ≥0

它在交叉熵前增加了调制因子 (1−pt)γ:

  • 容易分类且预测正确的样本通常有 pt≈1,调制因子接近 0,损失权重被降低;
  • 难分类或预测错误的样本通常有较小的 pt,调制因子较大,仍然保留较强惩罚;
  • γ 越大,对容易样本的降权越明显;当 γ=0 时,基础 Focal Loss 退化为交叉熵。

实际还可以加入类别平衡权重 αt:

FL(pt)=−αt(1−pt)γlog⁡(pt)

其中 αt 可以根据类别设置不同权重,用于进一步缓解正负样本或多数类、少数类之间的数量差异。Focal Loss 常用于目标检测等正负样本极度不平衡的任务,但 γ 和 αt 仍需通过验证集选择;它改变了样本损失权重,也可能影响概率校准,不能默认在所有分类任务中都优于普通交叉熵。

任务或损失常见输出形式核心特点
二分类 + Binary Cross-Entropy一个 Sigmoid,输出正类概率直接提高真实标签对应的概率
互斥多分类 + 多类交叉熵一个 Softmax,输出类别概率分布提高真实类别的预测概率
多标签分类 + 多个 Binary Cross-Entropy每个标签一个独立 Sigmoid各标签概率相互独立,不要求加和为 1
Focal Loss通常沿用分类任务的 Sigmoid 或 Softmax在交叉熵上降低易样本权重,突出难样本
MSE/MAE回归模型的连续值输出分别强调平方误差和绝对误差;也可以作为某些分类模型的替代目标,但不是标准概率分类损失
Hinge LossSVM 等间隔分类模型关注分类间隔和违反间隔的样本

分类损失速记

交叉熵负责按照真实类别概率计算损失;Focal Loss 在交叉熵上乘 (1−pt)γ,降低易样本权重、突出难样本。

2.4 线性回归:最小二乘、正则化与损失 ​

一元线性回归用直线拟合输入 x 与连续目标 y:

y^=a+bx

最小二乘法通过最小化所有样本的残差平方和估计参数:

mina,b∑i=1n(yi−a−bxi)2

记:

x¯=1n∑i=1nxi,y¯=1n∑i=1nyi

当 x 不是常数时,最优斜率和截距分别为:

b=∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2a=y¯−bx¯

斜率还可以写成协方差与方差之比:

b=Cov(x,y)Var(x)

这里要求协方差和方差使用一致的归一化约定。若所有 xi 都相同,则 Var(x)=0,无法由数据确定唯一斜率。

一元线性回归计算示例

给定:

x=[1,2,3],y=[1,4,9]

有:

x¯=2,y¯=143

斜率分子和分母分别为:

∑i(xi−x¯)(yi−y¯)=8,∑i(xi−x¯)2=2

因此:

b=82=4

对应截距为:

a=143−4⋅2=−103

所以这组数据的最小二乘拟合直线是:

y^=−103+4x

如果只需要斜率,应取 b,不要把截距 a 混在一起。

多变量线性回归可以写成:

y^=Xβ

当 X 满列秩时,最小二乘解可形式化写为:

β^=(XTX)−1XTy

实际数值计算通常优先使用 QR 或 SVD 求解,而不是直接显式计算 (XTX)−1,以减少数值不稳定。

线性关系与统计假设 ​

经典线性回归可以写成:

yi=a+bTxi+εi

其中 a+bTxi 是条件均值的线性部分,εi 是误差项。这里“线性”主要指模型对参数是线性的,并不要求每个原始特征只能以一次项出现。例如加入 x2、交互项或其他固定特征变换后,只要仍然对待估参数线性,仍可使用线性回归框架。

将所有样本写成矩阵后,上面的一元平方和可以统一写成最小化残差平方和:

minβ‖y−Xβ‖22

它不是最大化误差。常见的经典回归假设及其作用可以区分为:

假设含义主要作用
线性关系E[y∣X] 可由参数的线性组合表示建立模型形式
零条件均值E[ε∣X]=0保证 OLS 在相应条件下无偏
同方差Var(ε∣X)=σ2支持经典标准误和效率分析
误差独立不同样本的误差不相互依赖支持常规推断,时间序列需特别处理
误差正态ε∣X 近似服从正态分布主要用于小样本精确的 t 检验、F 检验和置信区间

正态误差不是使用最小二乘法拟合参数的必要条件。不满足正态性时,仍然可以计算 OLS 拟合和预测;但在进行严格的小样本统计推断时,正态性会影响理论分布和检验结论。实际分析中还可以使用渐近结果、稳健标准误或其他稳健推断方法。

多重共线性 ​

多重共线性是指多个自变量之间存在较强的线性相关关系。例如:

x2≈2x1

这意味着两个特征携带了大量重复信息。若设计矩阵的列几乎线性相关,则 XTX 会接近奇异,OLS 系数的估计方差会明显增大。在线性模型的经典条件下:

Var(β^∣X)=σ2(XTX)−1

当 XTX 接近不可逆时,逆矩阵中的某些方向会被放大,从而导致:

  • 回归系数对样本扰动很敏感,换一批样本后系数可能大幅变化;
  • 系数的标准误和方差变大,单个系数的显著性检验可能不稳定;
  • 特征系数的正负号甚至可能改变,难以解释每个特征的独立作用;
  • 整体预测性能不一定明显变差,尤其是在共线特征组合仍能稳定表示有效信号时。

因此,多重共线性主要伤害的是参数估计的稳定性和可解释性,而不是必然让训练集预测误差变大。可以使用相关矩阵、条件数或方差膨胀因子(VIF)辅助诊断,也可以通过删除冗余特征、合并特征、降维或正则化缓解。

Ridge 与 Lasso:两种常见正则化 ​

在 OLS 目标上加入参数惩罚,可以限制模型复杂度并缓解系数不稳定。以平方损失为例:

SSE(β)=‖y−Xβ‖22

Ridge Regression(岭回归)加入 L2 惩罚:

β^ridge=arg⁡minβ{‖y−Xβ‖22+λ‖β‖22}

其中:

‖β‖22=∑jβj2

Ridge 通常把相关特征的系数一起压小,使问题更稳定,但一般不会把系数精确压到 0。因此它主要用于收缩和缓解共线性,不以特征选择为主要特点。

Lasso Regression(最小绝对收缩与选择算子)加入 L1 惩罚:

β^lasso=arg⁡minβ{‖y−Xβ‖22+λ‖β‖1}

其中:

‖β‖1=∑j|βj|

由于 L1 惩罚在坐标轴方向具有尖角,Lasso 可以把部分系数压到恰好为 0,因此常用于产生稀疏模型和进行特征选择。实际建模时通常不惩罚截距项,并且应先对特征进行标准化,使惩罚对不同量纲的特征具有可比性。

两者的核心区别是:

方法惩罚项系数特点典型作用
OLS无额外惩罚可能受共线性影响而不稳定无约束的最小二乘拟合
RidgeL2:λ∑jβj2通常变小但不为零收缩系数、缓解共线性
LassoL1:λ∑j|βj|部分系数可以为零稀疏建模、特征选择

当多个特征高度相关时,Lasso 在这些特征之间选择谁保留可能比较不稳定;Ridge 往往更倾向于共同收缩相关特征。惩罚强度 λ 通常通过验证集或交叉验证选择,而不是只看训练集误差。

R2 与泛化性能 ​

R2 用残差平方和 SSE 与围绕目标均值的总平方和 SST 比较模型效果。它的完整定义、取值边界、增加特征后的单调性以及调整后的 R2 统一放在“模型评估”章节说明,避免在训练方法和评估指标两处重复展开。

需要先区分拟合与泛化:同一训练集上的普通 OLS 增加特征后,训练集 R2 不会下降,即使新增特征与目标无关,也可能只是因为拟合了噪声而上升。训练集 R2 高不等于新数据表现好,实际应结合验证集、交叉验证或测试集指标;比较不同特征数量的模型时,还可以参考会惩罚特征数量的调整后 R2。

回归损失:MSE、MAE 与 Huber ​

OLS 的名称来自 Ordinary Least Squares,前文的一元和矩阵形式都表明它优化的是残差平方和;这里进一步比较平方损失、绝对值损失与 Huber 损失。OLS 不是最小化残差绝对值之和。若目标改为:

minβ∑i=1n|yi−y^i|

则对应最小绝对偏差回归,也常称为 L1 回归。平方损失会更强地放大大残差,绝对值损失对异常值相对更稳健;二者不要与 Ridge/Lasso 的参数正则项混淆:前者是拟合误差,后者是对模型参数的复杂度约束。

Huber 损失在小误差区域使用平方损失,在大误差区域改用线性损失。设残差 r=y−y^、阈值 δ>0,则:

Lδ(r)={12r2,|r|≤δδ(|r|−12δ),|r|>δ

Huber 损失在 r=±δ 处连续且一阶可导:小误差部分保留 MSE 易于优化的特点,大误差部分只呈线性增长,因此比 MSE 更不容易被异常值支配,同时比 MAE 更平滑。

损失小误差行为大误差与异常值可导性与特点
MSE二次惩罚放大大误差,异常值影响更明显处处光滑,优化方便
MAE线性惩罚对异常值相对稳健在 r=0 处不可导
Huber二次惩罚超过 δ 后转为线性,较稳健连续且一阶可导,兼顾平滑性与稳健性

2.5 朴素贝叶斯:条件独立假设 ​

朴素贝叶斯是使用贝叶斯公式进行分类的监督学习方法。对特征向量 x=(x1,…,xd) 和类别 y:

P(y∣x)=P(x∣y)P(y)P(x)

分类时,分母 P(x) 对所有类别相同,因此通常选择后验概率最大的类别:

y^=arg⁡maxyP(y)P(x∣y)

“朴素”指的是一个强假设:给定类别 y 后,各个特征之间条件独立。因此:

P(x1,…,xd∣y)=∏j=1dP(xj∣y)

代入贝叶斯公式后,分类规则变为:

y^=arg⁡maxyP(y)∏j=1dP(xj∣y)

这里必须注意是条件独立,不是说特征在任何情况下都无条件独立。比如邮件分类可以使用是否出现某些词、是否包含链接、邮件长度等特征;模型假设在类别已知的条件下,这些特征的联合概率可以拆成各自条件概率的乘积。

需要估计的概率量 ​

训练朴素贝叶斯时,主要需要从数据中估计两类量:

  1. 类别的先验概率 P(y);
  2. 每个特征在给定类别下的条件概率 P(xj∣y)。

朴素假设使完整的联合条件概率可以由这些单特征概率重构:

P(x1,…,xd∣y)=∏j=1dP(xj∣y)

因此,不需要为每个类别直接估计高维特征的完整联合分布;只需估计各个一维条件概率,再通过乘积组合。对分类比较而言,也不需要显式估计边缘概率 P(x),因为它与候选类别无关,会在 arg⁡max 中被约掉。

如果需要输出归一化的后验概率,而不仅仅是比较类别,则仍然可以通过:

P(x)=∑yP(y)∏j=1dP(xj∣y)

进行归一化。因此更准确的说法是:分类决策时无需显式计算边缘概率,不是边缘概率在概率模型中完全不存在。

条件概率方向与贝叶斯反演 ​

贝叶斯公式用于把“观察到证据后属于某类别的概率”与“某类别下出现该证据的概率”联系起来:

P(y∣x)=P(x∣y)P(y)P(x)

其中:

概率含义
P(y∣x)观察到特征 x 后属于类别 y 的后验概率
P(x∣y)已知属于类别 y 时出现特征 x 的条件概率,也叫似然
P(y)类别 y 在观察证据前的先验概率
P(x)证据 x 的边缘概率,用于归一化

条件概率的方向不能直接交换。一般来说:

P(y∣x)≠P(x∣y)

计算后验概率时,分母需要用全概率公式展开。例如在垃圾邮件识别中,设:

P(free∣Spam)=0.8,P(free∣Ham)=0.1,P(Spam)=P(Ham)=0.5

先计算证据的边缘概率:

P(free)=P(free∣Spam)P(Spam)+P(free∣Ham)P(Ham)=0.8×0.5+0.1×0.5=0.45

再计算后验概率:

P(Spam∣free)=0.8×0.50.8×0.5+0.1×0.5=0.40.45=89≈0.8889

这里的 0.8 是 P(free∣Spam),表示“已知是垃圾邮件时出现 free 的概率”;89 才是 P(Spam∣free),表示“看到 free 后是垃圾邮件的概率”。贝叶斯反演不是简单交换条件,而是必须乘以先验并除以证据概率完成重新归一化。

对于文本中的 Multinomial Naive Bayes,常用平滑估计避免某个词在某个类别中未出现而导致整个概率乘积变为零:

P^(w∣c)=count(w,c)+α∑w′∈Vcount(w′,c)+α|V|

其中 α>0 是平滑系数,V 是词表。实际计算中还常使用对数概率:

log⁡P(y)+∑j=1dlog⁡P(xj∣y)

以避免许多小概率相乘造成数值下溢。

朴素贝叶斯的不同变体,主要区别在于对单个特征分布的具体假设:

变体常见特征形式典型分布假设或用途
Gaussian Naive Bayes连续数值特征类别条件下特征近似服从高斯分布
Multinomial Naive Bayes词频、计数等适合文本计数特征
Bernoulli Naive Bayes0/1 特征适合是否出现某个特征的二值表示

因此,“特征给定类别后条件独立”是朴素贝叶斯共同的核心假设;“连续特征服从高斯分布”只适用于 Gaussian Naive Bayes,不是所有朴素贝叶斯变体的共同条件。

2.6 XGBoost:二阶信息与正则化 ​

XGBoost 是一种梯度提升树模型,属于监督学习和 Boosting。它按顺序增加决策树,每棵新树用于拟合当前模型尚未解释的部分,并通过正则化控制树的复杂度。

第 t 棵树加入后的预测可以写成:

y^i(t)=y^i(t−1)+ft(xi)

XGBoost 优化带有正则项的目标函数:

L(t)=∑i=1nℓ(yi,y^i(t−1)+ft(xi))+Ω(ft)

对一棵有 T 个叶子的树,常见的复杂度正则项形式为:

Ω(ft)=γT+12λ∑j=1Twj2+α∑j=1T|wj|

其中 wj 是叶子权重,γ 惩罚叶子数量,λ 和 α 分别对应 L2 与 L1 正则强度。因此,XGBoost 并不是没有正则化的树模型;树结构和叶子权重都会受到约束。

二阶泰勒展开 ​

在已有预测 y^i(t−1) 附近,对损失函数做二阶泰勒展开。定义:

\boxed{ g_i= \frac{\partial\ell(y_i,\hat y_i)} \partial\hat y_i}, \qquad h_i= \frac{\partial^2\ell(y_i,\hat y_i)} \partial\hat y_i^2}

忽略与新树无关的常数项后,第 t 轮目标近似为:

L(t)≈∑i=1n[gift(xi)+12hift(xi)2]+Ω(ft)

因此,XGBoost 在评估叶子权重和候选分裂时同时使用一阶梯度 gi 与二阶梯度(Hessian)hi,而不只是使用一阶梯度。

例如,忽略 L1 正则影响时,一个节点分裂为左右子节点的简化增益可写成:

Gain=12(GL2HL+λ+GR2HR+λ−G2H+λ)−γ

其中 GL,GR,HL,HR 是左右子节点内样本的梯度和与 Hessian 和,G,H 是分裂前节点对应的总和。实际实现还会结合 L1 正则等项进行处理。

树深度与泛化 ​

增加树深度通常会提升模型的拟合能力,使训练误差下降,但不保证泛化性能同步提升。树过深可能记住训练数据中的噪声,导致过拟合。XGBoost 常通过以下参数或机制控制复杂度:

  • 限制最大树深度;
  • 要求叶子节点达到最小样本量或最小 Hessian 权重;
  • 对叶子数量和叶子权重进行正则化;
  • 对样本或特征进行子采样;
  • 使用学习率控制每棵树的贡献。

Gini 不纯度与 XGBoost 分裂增益 ​

CART 分类树常用 Gini 不纯度衡量节点中的类别混杂程度:

Gini=1−∑k=1Kpk2

Gini 越小,节点越纯;Gini 越大,类别越混杂。它是传统 CART 分类树的常见分裂指标。

XGBoost 的树分裂通常依据包含梯度和 Hessian 的目标增益,而不是直接把 Gini 不纯度作为通用分裂标准。可以这样区分:

分裂准则对比

  • CART 分类树:常见 Gini 或信息增益。
  • XGBoost:使用梯度和 Hessian 计算分裂增益,并加入正则化。

三、迁移学习与多任务学习 ​

迁移学习和监督/无监督是不同维度的概念。它描述的是如何利用已有任务或已有模型中的知识,而不单纯描述标签是否存在。

3.1 迁移学习 ​

迁移学习先在源任务或大规模数据上学习表示,再把已有知识迁移到目标任务。它特别适合:

  • 目标任务数据量不足;
  • 目标任务与预训练任务存在相关性;
  • 从头训练容易过拟合或训练成本过高。

常见做法包括:

  • 直接复用预训练模型;
  • 冻结部分底层特征提取层;
  • 只训练新的任务头;
  • 对全部或部分参数进行微调。

迁移学习的核心收益是复用已有表示、提升数据效率、减少训练时间和计算成本。任务差异过大时,已有表示可能不适用,甚至会产生负迁移。

迁移学习适用场景

数据量较少且目标任务与预训练任务相关时,优先考虑迁移学习。

3.2 多任务学习 ​

多任务学习同时训练多个相关任务,让它们共享部分模型参数或中间表示。典型结构是:

输入⟶共享 Backbone⟶{任务 1 Head任务 2 Head任务 3 Head

共享主干可以复用:

  • 模型参数;
  • 特征表示;
  • 中间计算结果。

因此多任务学习的主要优势是参数、计算和表征的复用。它不保证所有任务的训练速度一致,也不保证任务之间完全互不干扰。不同任务的目标可能冲突,出现负迁移或梯度竞争。

例如视觉模型可以共享一个 Backbone,再分别连接:

  • 图像分类头;
  • 目标检测头;
  • 深度估计头。

多任务学习速记

共享 Backbone + 多个任务 Head。

使用 Markdown 与 VitePress 构建