# 第 10 章　模型独立的学习方式

> 来源：https://deeplearning.bnuai.com/chapters/10-model-independent-learning ｜ 作者：唐志清（北京师范大学） ｜ 更新：2026-11-01 ｜ 内容依据邱锡鹏《神经网络与深度学习》（https://nndl.ai/）及作者公开课件

## 学习目标

<div class="goals">

- 理解集成学习为什么有效，掌握 Bagging、随机森林和 AdaBoost 的算法流程；
- 理解协同训练的“多视角”假设；
- 了解多任务学习的四种共享模式；
- 理解迁移学习的基本设定、归纳迁移与转导迁移（领域适应）；
- 理解元学习“学习如何学习”的思想，掌握 MAML 的两层优化；
- 了解终身学习中的灾难性遗忘及弹性权重巩固。

</div>

## 课件幻灯片

> 本章课件共 16 页，可在网页中逐页浏览：https://deeplearning.bnuai.com/chapters/10-model-independent-learning；PDF 下载：https://deeplearning.bnuai.com/pdf/nndl-ch10.pdf

## 讲义

前面各章的学习方式都依赖于具体的模型，而本章介绍的学习方式**不限于某个特定模型**：无论是前馈网络、循环网络还是其他模型，都可以使用。它们关注的是另一些问题：如何组合多个模型？如何利用无标注数据？如何在多个任务、多个领域之间共享知识？如何持续学习、快速学习？[幻灯片 2](#slide-2)

```mermaid
flowchart LR
  R(("模型独立的<br/>学习方式")) --> E["集成学习"]
  R --> CT["协同训练"]
  R --> MT["多任务学习"]
  R --> TL["迁移学习"]
  R --> LL["终身学习"]
  R --> ML["元学习"]
  E --> E1["Bagging / 随机森林"]
  E --> E2["Boosting / AdaBoost"]
  TL --> T1["归纳迁移：预训练-微调"]
  TL --> T2["转导迁移：领域适应"]
  ML --> M1["基于优化器"]
  ML --> M2["MAML"]
```

### 10.1 集成学习

**集成学习**通过某种策略把多个模型集成起来，以提高决策的准确率。最直接的策略是**直接平均**（投票）：$f^{(c)}(\boldsymbol x)=\frac1M\sum_{m=1}^{M}f_m(\boldsymbol x)$。[幻灯片 4](#slide-4)

设每个模型的期望错误为 $\mathcal R(f_m)=\mathbb E_{\boldsymbol x}[\epsilon_m(\boldsymbol x)^2]$，平均期望错误为 $\bar{\mathcal R}=\frac1M\sum_m\mathcal R(f_m)$，则可以证明集成模型的期望错误满足

$$
\frac1M\bar{\mathcal R}\ \le\ \mathcal R\big(f^{(c)}\big)\ \le\ \bar{\mathcal R}.
$$

当各模型的错误互不相关时取下界——集成的效果最好；完全相同时取上界——集成没有帮助。因此**模型之间的差异性**是集成学习的关键。增加差异性的方法有两类：[幻灯片 5](#slide-5)

- **Bagging 类方法**：通过对训练集进行有放回的随机采样（自助采样）得到多个不同的训练集，分别训练模型，再投票或平均。**随机森林**在 Bagging 的基础上，在每个决策树的分裂节点上还随机选取特征子集，进一步增加了树之间的独立性。[幻灯片 6](#slide-6)
- **Boosting 类方法**：按顺序训练一系列模型，后面的模型更关注前面模型分错的样本，即每个模型在前一个模型的基础上“提升”。[幻灯片 7](#slide-7)

**AdaBoost**（二分类，$y\in\{+1,-1\}$）的流程：[幻灯片 8](#slide-8)

1. 初始化样本权重 $w_1^{(n)}=\frac1N$；
2. 对 $m=1,\cdots,M$：按权重训练弱分类器 $f_m$，计算加权错误率 $\epsilon_m=\sum_n w_m^{(n)}\mathbb I\big(f_m(\boldsymbol x^{(n)})\ne y^{(n)}\big)$；计算分类器权重
   $$\alpha_m=\frac12\log\frac{1-\epsilon_m}{\epsilon_m};$$
   更新样本权重 $w_{m+1}^{(n)}\propto w_m^{(n)}\exp\big(-\alpha_m y^{(n)}f_m(\boldsymbol x^{(n)})\big)$（分错的样本权重变大）；
3. 输出 $F(\boldsymbol x)=\mathrm{sgn}\big(\sum_{m=1}^{M}\alpha_m f_m(\boldsymbol x)\big)$。

AdaBoost 可以看作用前向分步法优化**指数损失** $\mathcal L(y,F(\boldsymbol x))=\exp(-yF(\boldsymbol x))$ 的加法模型。错误率越低的弱分类器权重越大；只要每个弱分类器比随机猜测好（$\epsilon_m<0.5$），集成后的训练误差就能指数下降。

### 10.2 协同训练

半监督学习希望同时利用少量有标注数据和大量无标注数据。**自训练**用模型自己的高置信度预测作为伪标签，但容易强化自身的错误。**协同训练**则基于**多视角**：假设每个样本可以从两个**相互独立**且各自**充分**的视角（特征集合）$\boldsymbol x=[\boldsymbol x_1,\boldsymbol x_2]$ 来描述，例如网页既可以用正文、也可以用指向它的超链接文字来分类。[幻灯片 9](#slide-9)

1. 在有标注数据上分别用两个视角训练两个分类器 $f_1,f_2$；
2. 每个分类器在无标注数据上预测，挑选各自置信度最高的若干样本加入**另一个**分类器的训练集；
3. 重新训练，重复直到收敛。

由于两个视角条件独立，一个分类器的高置信度样本对另一个分类器来说相当于“随机”的新样本，能带来新的信息。

### 10.3 多任务学习

**多任务学习**同时学习多个相关任务，让它们在学习过程中共享知识，利用任务之间的相关性来提高每个任务的性能和泛化能力。多任务学习可以看作一种归纳迁移学习，共享的知识相当于一种**归纳偏置**，也起到了正则化的作用。[幻灯片 10](#slide-10)

常见的四种共享模式：

- **硬共享**：不同任务共享底层的若干层，上层为各任务特定的层；
- **软共享**：每个任务有自己的网络，但可以从其他任务“读取”信息（如交叉缝合网络）；
- **层次共享**：低层任务在网络的低层输出，高层任务在高层输出（如词性标注 → 句法分析 → 语义任务）；
- **共享-私有**：每个任务的表示由共享模块和私有模块组成，二者互补。

训练时联合目标为 $\mathcal L(\theta)=\sum_{m=1}^{M}\eta_m\mathcal L_m(\theta)$，$\eta_m$ 为任务权重；常用的策略是交替地从各个任务中随机抽取小批量进行更新。Caruana 1997 年的经典论文系统阐述了多任务学习为何有效。[幻灯片 11](#slide-11)

### 10.4 迁移学习

标注数据往往稀缺，而相关领域可能有大量数据。**迁移学习**旨在把**源领域** $\mathcal D_S$ 中学到的知识迁移到**目标领域** $\mathcal D_T$ 上。一个领域包括输入空间、输出空间和联合分布 $p(\boldsymbol x,y)$，不同领域可能在这些方面中的任意一个上不同。[幻灯片 12](#slide-12)

- **归纳迁移学习**：源领域和目标领域任务不同，但目标领域有少量标注数据。典型做法是**预训练-微调**：在大规模数据（如 ImageNet、大规模文本）上预训练，再在目标任务上微调；或者把预训练模型当作**特征提取器**。今天的预训练语言模型就是归纳迁移学习的代表。
- **转导迁移学习**（**领域适应**）：任务相同，源领域有大量标注数据，目标领域只有无标注数据。根据联合分布 $p(\boldsymbol x,y)=p(\boldsymbol x)p(y\mid\boldsymbol x)$ 中哪一部分发生变化，分为**协变量偏移**（$p(\boldsymbol x)$ 变化）、**概念偏移**（$p(y\mid\boldsymbol x)$ 变化）和**先验偏移**（$p(y)$ 变化）。常用方法是学习一个**领域无关的表示**，例如用领域对抗训练让判别器无法区分特征来自哪个领域。

### 10.5 元学习

人类能从很少的样本中快速学会新概念，因为我们已经积累了“如何学习”的经验。**元学习**即“学习如何学习”，希望从大量相关任务中学到一些通用知识，使得在新任务上只需少量样本和迭代就能快速适应。[幻灯片 13](#slide-13)

**基于优化器的元学习**：把梯度下降的更新规则本身用一个网络（如 LSTM）来学习，$\theta_{t+1}=\theta_t+g_t(\nabla\mathcal L(\theta_t);\phi)$，其中元参数 $\phi$ 在许多任务上训练。

**模型无关的元学习**（MAML）：学习一个好的**初始化参数** $\theta$，使得模型在新任务上经过少量梯度更新就能取得好的效果。对每个采样到的任务 $\mathcal T_m$，先做一步（或几步）内循环更新，再用更新后的参数在该任务上的损失来更新初始参数：[幻灯片 14](#slide-14)

$$
\theta_m'=\theta-\alpha\nabla_\theta\mathcal L_{\mathcal T_m}(f_\theta),\qquad
\theta\leftarrow\theta-\beta\nabla_\theta\sum_{m=1}^{M}\mathcal L_{\mathcal T_m}\big(f_{\theta_m'}\big).
$$

外循环的梯度需要对内循环的更新求导，涉及二阶导数；实践中常用一阶近似（FOMAML、Reptile）。

### 10.6 终身学习

**终身学习**（持续学习）希望像人一样持续地学习一系列任务，并把已学到的知识用于新任务。与多任务学习不同，终身学习中任务是**依次**出现的，学习新任务时通常无法再访问旧任务的数据。[幻灯片 15](#slide-15)

终身学习的核心难题是**灾难性遗忘**：按新任务训练时，网络参数被改写，旧任务的性能急剧下降。一种解决方法是**弹性权重巩固**（EWC）：用 Fisher 信息矩阵 $F_i$ 衡量每个参数对旧任务 $\mathcal T_A$ 的重要性，学习新任务 $\mathcal T_B$ 时约束重要参数不要偏离太远：

$$
\mathcal L(\theta)=\mathcal L_B(\theta)+\sum_i\frac{\lambda}{2}F_i\big(\theta_i-\theta^*_{A,i}\big)^2 .
$$

其他思路还包括保留少量旧样本进行回放、用生成模型产生伪样本，以及为新任务动态扩展网络结构等。

## 本章小结

- 集成学习依靠模型差异性降低错误：Bagging / 随机森林并行采样，Boosting / AdaBoost 顺序关注难例。
- 协同训练利用两个独立充分的视角互相提供伪标签；多任务学习通过参数共享获得归纳偏置。
- 迁移学习把源领域知识迁移到目标领域：预训练-微调（归纳）和领域适应（转导）。
- 元学习“学习如何学习”（如 MAML 学习初始化），终身学习要克服灾难性遗忘（如 EWC）。

## 思考题与习题 {#exercises}

<div class="exercise-list">

1. **（推导）** 证明当 $M$ 个模型的误差 $\epsilon_m(\boldsymbol x)$ 均值为 0 且互不相关时，直接平均集成的期望错误为 $\frac1M\bar{\mathcal R}$。
2. **（计算）** AdaBoost 中某弱分类器的加权错误率 $\epsilon_m=0.2$，计算其权重 $\alpha_m$；分错样本与分对样本的权重分别乘以多少（归一化前）？
3. **（分析）** 为什么 AdaBoost 要求 $\epsilon_m<0.5$？若 $\epsilon_m>0.5$ 会发生什么？
4. **（概念）** 多任务学习、迁移学习、终身学习和元学习都涉及多个任务，比较它们在任务出现的方式和学习目标上的区别。
5. **（分析）** 举出生活或应用中协变量偏移、概念偏移、先验偏移的例子各一个。
6. **（编程）** 用 ImageNet 预训练的 ResNet-18 在一个小数据集（如花卉分类）上比较：从零训练、只训练最后一层、全部微调三种方式的效果。

</div>

**部分提示**

- 第 2 题：$\alpha_m=\frac12\log4=\log2\approx0.693$；分错样本权重乘 $e^{\alpha_m}=2$，分对样本乘 $e^{-\alpha_m}=0.5$。
- 第 3 题：$\epsilon_m>0.5$ 时 $\alpha_m<0$，相当于把该分类器反过来用；$\epsilon_m=0.5$ 时它没有任何贡献。
- 第 4 题：多任务学习同时学多个任务、追求所有任务都好；迁移学习关注目标任务；终身学习任务依次到来、不能忘记旧任务；元学习追求在新任务上快速学习。

## 延伸阅读

- 教材：邱锡鹏《神经网络与深度学习》第 10 章「模型独立的学习方式」。
- 周志华《集成学习：基础与算法》；Blum A, Mitchell T. Combining labeled and unlabeled data with co-training, 1998；Caruana R. Multitask learning, Machine Learning 1997。
- Finn C, et al. Model-agnostic meta-learning for fast adaptation of deep networks, ICML 2017；Kirkpatrick J, et al. Overcoming catastrophic forgetting in neural networks, PNAS 2017。
- 第二版对应章节：第 11 章「模型独立的学习方式」。
