迁移学习(TL)是一种机器学习技术,其中从一项任务中学到的知识被重新利用,以提升在相关任务上的表现。例如,在图像分类中,学习识别汽车时获得的知识可以应用于尝试识别卡车。这一主题与关于学习迁移的心理学文献相关,尽管两个领域之间的实际联系有限。将先前学习任务中的信息重用或迁移到新任务中,有可能显著提高学习效率。由于迁移学习利用了多个目标函数的训练,它与代价敏感机器学习和多目标优化相关。
在现代实践中,迁移学习的主要形式是在一个广泛、数据丰富的源任务上预训练大型神经网络,然后在数据有限的目标任务上进行微调。这种方法支撑了深度学习中的许多成功,尤其是在自然语言处理(如大型语言模型所示)和计算机视觉领域。术语“迁移学习细节”通常指涉及这一微调过程的实践和理论考量。
历史
1976年,Bozinovski和Fulgosi发表了一篇关于神经网络训练中迁移学习的论文。该论文为该主题提供了一个数学和几何模型。1981年,一份报告考虑了将迁移学习应用于代表计算机终端字母的图像数据集,实验性地证明了正迁移学习和负迁移学习。负迁移发生在源知识损害目标性能时。
1992年,Lorien Pratt提出了基于可区分性的迁移(DBT)算法。到1998年,该领域已发展到包括多任务学习,并有了更正式的理论基础。迁移学习的有影响力的出版物包括1998年的书籍《学会学习》、2009年的综述和2019年的综述。
吴恩达在2016年NIPS教程中表示,迁移学习将成为监督学习之后机器学习商业成功的下一个驱动力。在2020年的论文《重新思考预训练和自训练》中,Zoph等人报告称,在某些设置下预训练可能损害准确性,并提倡自训练,这突显了迁移学习的微妙权衡。
定义
迁移学习的定义基于域和任务。一个域D由以下组成:特征空间X和边际概率分布P(X),其中X = {x_1, ..., x_n} ∈ X。给定一个特定域D = {X, P(X)},一个任务由两个部分组成:标签空间Y和目标预测函数f: X → Y。函数f预测新实例x的标签f(x)。该任务,记为T = {Y, f(x)},从包含对{x_i, y_i}的训练数据中学习。
给定源域D_S和学习任务T_S,以及目标域D_T和学习任务T_T,其中D_S ≠ D_T或T_S ≠ T_T,迁移学习旨在利用D_S和T_S中的知识帮助改进D_T中目标预测函数f_T(·)的学习。关键假设是源任务和目标任务足够相关,以至于共享知识可以被迁移。
微调机制
深度学习中迁移学习最常见的实现是微调。模型首先在大型通用数据集(源任务)上进行预训练。然后,其权重被用作目标任务训练的初始化。预训练网络的较低层通常学习通用特征,这些层通常被冻结或以较低的学习率进行调整以保留学习到的表示,而较高层则在目标数据上重新训练。
微调可以应用于整个网络或仅应用于部分层。当目标数据集较小时,从业者通常冻结大部分层以避免过拟合,只更新最终分类头。对于较大的目标数据集,可以进行更激进的微调。在微调过程中,通常使用丢弃、批归一化和层归一化等技术来正则化模型。
迁移学习的类型
迁移学习可以根据源域和目标域及任务之间的一致性程度进行分类。归纳迁移学习发生在源任务和目标任务不同时,即使域相同。转导迁移学习发生在域不同但任务相同时。无监督迁移学习适用于任务和域都不同但标记数据不可用的情况。
在实践中,大多数深度学习应用使用具有相同特征空间的归纳迁移学习,例如在通用文本上预训练变换器并在情感分析上进行微调。多任务学习,即模型同时训练多个目标,与迁移学习密切相关,并共享数学基础。
应用
迁移学习在AI应用中无处不在。在计算机视觉中,在ImageNet上预训练的模型已被微调用于医学图像分析、目标检测和自动驾驶。在自然语言处理中,OpenAI和Google DeepMind发布了大型预训练模型,研究人员将其微调用于问答或翻译等特定任务。
具体例子包括用于文本理解的BERT,它在掩码语言建模上预训练,并微调用于情感分类或命名实体识别。在语音识别中,在通用音频上预训练的模型被适应于声学环境。在强化学习中,迁移学习可以通过重用先前任务中的策略来加速在新环境中的学习。
理论考量
迁移学习的有效性取决于源分布和目标分布之间的相似性。一个关键的理论结果是,目标任务上的泛化误差受源任务上的误差加上衡量两个域之间差异的项的限制。这种关系指导了何时应用迁移学习的实际决策。
当源知识对目标任务具有误导性时,可能会发生负迁移。例如,在具有许多类别的图像分类上预训练可能对具有非常不同标签分布的目标任务没有帮助。域适应技术,如对抗训练,旨在最小化域偏移。总的来说,最近的研究强调迁移学习不是万能的;需要仔细评估。
优化技术
微调大型预训练模型需要专门的优化。Adam优化器及其变体是标准选择,通常使用比从头训练更低的初始学习率。梯度裁剪经常用于防止微调期间的梯度爆炸。课程学习也可以应用,其中目标数据集按难度递增呈现。
另一种方法是对预训练层使用较小的学习率,对新初始化的层使用较高的学习率。此外,数据增强技术,如随机裁剪或令牌掩码,可以帮助模型在小型目标数据集上泛化。一些方法在微调后使用模型剪枝来减小模型大小而不显著损失准确性。
与大型语言模型的关系
大型语言模型的兴起使迁移学习比以往任何时候都更加关键。像GPT-3和Claude这样的模型在大型语料库上预训练,然后通过微调或提示适应下游任务。在某些情况下,迁移学习通过指令调优大规模进行,其中模型在许多任务上同时微调以提高泛化能力。
基于人类反馈的强化学习(RLHF)是一种迁移学习形式,其中预训练模型使用人类偏好作为奖励信号进行微调。这种方法在使模型与人类价值观对齐方面发挥了重要作用。来自Anthropic和OpenAI的研究说明了迁移学习如何与安全和对齐交互。
挑战与未来方向
一个主要挑战是预训练的计算成本,这通常需要大型专用硬件集群,如AWS Trainium或Google Cloud TPU。关于高效迁移学习有积极的研究,包括参数高效方法,如适配器或LoRA,这些方法只更新一小部分权重。
另一个关注点是遗忘,即当在新任务上微调时,模型可能会丢失源任务的知识。持续学习方法旨在缓解这一问题。截至2020年代初,迁移学习仍然是一个活跃的研究领域,关于预训练何时有帮助以及何时没有帮助的细致发现,如Zoph等人所强调的。未来的工作可能集中在理论保证和更好的避免负迁移的方法上。