泛化

/ˌdʒenərəlaɪˈzeɪʃən/

Also known as: out-of-distribution generalization, transfer learning, domain adaptation

research intermediate

什么是泛化?

泛化是模型在新的、以前未见过的数据上表现良好的能力,而不仅仅是记住训练示例。这可以说是任何机器学习系统最重要的属性——一个只在见过的数据上工作的模型实用价值有限。

根本问题:模型是学习底层模式和原则,还是仅仅记住特定示例?

为什么泛化很重要

训练与现实:模型在固定数据集上训练,但在动态、不可预测的环境中部署。良好的泛化弥合了这一差距。

新情况:现实世界的用例涉及模型在训练期间从未见过的组合和上下文。

真正的理解:泛化良好的模型可能理解更深层次的模式,而不是表面相关性。

泛化类型

分布内:在与训练数据相似的新示例上表现良好。大多数基准测试都测试这一点。

分布外(OOD):处理与训练数据有显著差异的示例。要困难得多。

零样本:执行从未明确训练过的任务。

少样本:仅从几个示例中学习新任务。

迁移:将知识从一个领域应用到另一个领域。

大语言模型中的泛化问题

大型语言模型表现出令人困惑的模式。它们可以:

  • 在律师资格考试中得分高于人类平均水平
  • 编写复杂的代码
  • 解释复杂的科学概念

然而它们也会:

  • 在简单的逻辑难题上失败
  • 犯基本的算术错误
  • 错过明显的矛盾

这种不一致性——Demis Hassabis 称之为”参差智能”——揭示了当前模型在各领域的泛化并不均匀。

记忆与理解

一个持续的争论:大语言模型是真正泛化,还是与记忆的训练数据进行模式匹配?

泛化的证据

  • 新颖的创意组合
  • 解决训练数据中不存在的问题
  • 跨领域迁移

记忆的证据

  • 性能随着新颖措辞而下降
  • 在真正新颖的场景中挣扎
  • 基准污染问题

真相可能介于两者之间——模型泛化一些模式,同时记忆其他模式。

测试泛化

保留测试集:从训练中保留的数据以评估性能。

对抗性示例:旨在愚弄模型的输入,测试鲁棒性。

分布转移:在来自不同来源或时间段的数据上进行测试。

新任务类型:在训练中不存在的任务类别上进行评估。

为什么困难

维度诅咒:随着输入复杂性的增长,可能输入的空间呈指数级爆炸。

虚假相关性:模型可以学习在训练数据上有效但在一般情况下失败的捷径。

数据偏差:训练数据可能无法代表现实世界场景的完整分布。

评估挑战:很难知道模型是否真正泛化,或者只是在训练期间看到了类似的示例。

前进的道路

改善泛化可能需要:

  • 更好的架构:世界模型、因果推理
  • 更丰富的训练:多模态、具身学习
  • 课程学习:逐步接触更困难的示例
  • 不确定性量化:知道模型何时超出其深度

相关阅读