迁移学习介绍
1 课程概览
本课介绍迁移学习(Transfer Learning)。迁移学习是把别人训练好的模型直接拿来用。利用在一个任务上学到的知识来改善另外一个相关任务的性能。方式:特征迁移、模型迁移、知识迁移。一般指的是用别人预训练的模型直接干活。
2 核心概念与定义
- 迁移学习(Transfer Learning, TL):把别人训练好的模型直接拿来用。
- 预训练模型:别人训练好的模型。
- 特征迁移:在一个任务上训练模型的一部分,运用到另外一个任务。
- 模型迁移:在一个任务上训练的模型,应用在另外一个任务。
- 知识迁移:将源任务中学到的知识(如词嵌入、模型参数)用于目标任务。
3 模型与算法详解
迁移学习概念
把别人训练好的模型直接拿来用。
- 利用在一个任务上学到的知识
- 改善另外一个相关任务的性能
- 将已学习知识迁移到另一方
迁移学习的方式
| 方式 | 说明 | 示例 |
|---|---|---|
| 特征迁移 | 训练模型的一部分运用到另一个任务 | A 任务处理文本得到词向量,B 任务直接用 |
| 模型迁移 | 训练的模型应用到另一个任务 | 文本生成模型用于机器翻译 |
| 知识迁移 | 源任务的知识用于目标任务 | 词嵌入、模型参数 |
类比
| 类比 | 说明 |
|---|---|
| 人口迁移 | 过年时人口从一处迁移到另一处 |
| 金钱迁移 | 把钱从 A 工程挪到 B 工程 |
预训练模型
一般指的是用别人预训练的模型直接干活。
- 大型模型(如 6 个加起来约 10G)
- 大模型(如 DeepSeek R1,7B/8B/14B/32B/70B/671B)
- 边缘设备部署是未来问题
大模型示例
| 模型 | 参数量 | 说明 |
|---|---|---|
| DeepSeek R1 | 7B/8B/14B | 普通可用 |
| DeepSeek R1 | 32B | 较大 |
| DeepSeek R1 | 70B | 大 |
| DeepSeek R1 | 671B | 满血版,普通 PC 无法运行 |
4 数学原理与推导
迁移学习
$$\theta_{\text{target}} = \theta_{\text{source}} + \Delta\theta$$
其中:
- $\theta_{\text{source}}$ 是源任务的模型参数
- $\Delta\theta$ 是在目标任务上的微调
- $\theta_{\text{target}}$ 是目标任务的模型参数
特征迁移
$$\text{features}{\text{target}} = \text{model}{\text{source}}.\text{extract}(\text{data}_{\text{target}})$$
5 代码示例
# 迁移学习示例
import fasttext
def transfer_learning_example():
"""迁移学习示例"""
# 1. 加载别人训练好的模型(迁移学习)
model = fasttext.load_model("model/cc.zh.300.bin")
# 2. 直接使用(不需要自己训练)
word = "学习"
vector = model.get_word_vector(word)
print(f"'{word}' 的词向量维度: {vector.shape}")
# 3. 获取近义词
neighbors = model.get_nearest_neighbors(word, k=5)
print(f"\n'{word}' 的近义词:")
for score, neighbor in neighbors:
print(f" {neighbor}: {score:.4f}")
return model
# 测试
if __name__ == "__main__":
model = transfer_learning_example()
代码说明
| 代码 | 说明 |
|---|---|
fasttext.load_model() | 加载别人训练好的模型(迁移学习) |
model.get_word_vector(word) | 直接使用模型 |
model.get_nearest_neighbors(word, k) | 获取近义词 |
6 重难点与易错提醒
- ❗重点:迁移学习是拿别人预训练的模型直接干活。
- ❗重点:迁移学习有三种方式:特征迁移、模型迁移、知识迁移。
- 💡深入理解:大模型在边缘设备上的部署是未来问题。
7 课堂问答精选
Q1:什么是迁移学习?
A:把别人训练好的模型直接拿来用。利用在一个任务上学到的知识来改善另外一个相关任务的性能。
Q2:迁移学习有哪些方式?
A:①特征迁移:训练模型的一部分运用到另一个任务;②模型迁移:训练的模型应用到另一个任务;③知识迁移:源任务的知识用于目标任务。
Q3:迁移学习的一般理解是什么?
A:一般指的是用别人预训练的模型直接干活。
Q4:大模型在普通 PC 上能运行吗?
A:小模型(如 7B/8B)可以在普通 PC 上运行。大模型(如 671B 满血版)在普通 PC 上无法高效运行。边缘设备部署是未来需要解决的问题。
8 本课小结
- 迁移学习:把别人训练好的模型直接拿来用。
- 三种方式:特征迁移、模型迁移、知识迁移。
- 一般指的是用别人预训练的模型直接干活。
- 大模型在边缘设备上的部署是未来问题。
9 延伸思考
- 常见的预训练 NLP 模型有哪些?
- 如何使用 Transformers 库加载模型?