迁移学习是一种机器学习技术,利用在一个任务或数据集上获得的知识来提高另一个相关任务和/或不同数据集上的模型性能。1也就是说,迁移学习利用在一个场景中学习到的知识来提高在另一个场景中的泛化性。2
迁移学习有着广泛的应用,从解决数据科学中的回归问题到训练深度学习模型。事实上,迁移学习对于后者来说更具吸引力,因为创建深度 Neural Networks 需要大量数据。
传统的学习过程通常会基于可用的标记数据为每个新任务构建新模型。这是因为传统的机器学习算法假设训练和测试数据来自相同的特征空间。因此,如果数据分布发生变化,或者将训练好的模型应用于新的数据集,即使尝试完成与第一个模型类似的任务(例如,电影评论和歌曲评论的情感分析分类器),用户也必须从头开始重新训练一个新的模型。然而,迁移学习算法以已经训练的模型或网络为起点。然后,它会应用该模型在初始源任务或数据中获得的知识(例如对电影评论进行分类)转向新的但相关的目标任务或数据(例如对歌曲评论进行分类)。3
当然,从一个领域到另一个领域的知识迁移并不能完全消除质量数据带来的负面影响。即使使用迁移学习,数据预处理技术以及诸如数据增强和特征提取等特征工程仍然是必要的。
与其说迁移学习本身存在缺点,不如说它在误用时可能会产生负面影响。迁移学习在满足以下三个条件时的效果最佳:
当这些条件不满足时,迁移学习可能会对模型性能产生负面影响。文献将此称为负转移。现有研究提出了多种测试方法,用于评估数据集和任务是否满足上述条件,从而避免负迁移。5为了解决源数据集和目标数据集之间数据分布差异过大而导致的负迁移问题,研究人员开发了一种称为远程迁移的方法。6
请注意,还没有通用的标准来衡量迁移学习中任务之间的相似性。然而,部分研究提出使用不同的评估方法,以预测数据集和机器学习任务之间的相似性,以及预测迁移学习的可行性。7
迁移学习包含三个相近的实践或分支。它们彼此之间的区别,以及与更广泛的迁移学习之间的区别,主要体现在源域、目标域和要完成的任务之间的关系的变化上。8
迁移学习有别于微调。诚然,二者都利用了已有的机器学习模型,而不是从头开始训练新的模型。但相似之处仅此而已。微调是指在特定任务的数据集上对模型进行进一步训练,以提升模型在最初设计目标任务上的性能。例如,可以使用 COCO 或 ImageNet 等海量图像集创建通用对象检测模型,然后在专用于汽车检测的较小标记数据集上进一步训练所生成的模型。通过这种方式,用户可以针对专用于汽车检测的对象检测模型进行微调。相比之下,迁移学习指用户何时将模型应用于一个新的、相关问题,而并非最初设计解决的问题。
迁移学习在现实世界的机器学习和人工智能应用有着广泛的应用。开发人员和数据科学家可以利用迁移学习来辅助完成各种任务,并将其与其他学习方法例如强化学习等相结合。
影响 NLP 中迁移学习的一个突出问题是特征不匹配。不同域中的特征可能具有不同的含义以及内涵(例如,light 既可以指重量,也可以光学)。这种特征表示的差异会影响情感分类任务、语言模型等。基于深度学习的模型(尤其是单词嵌入)有望纠正这种情况,因为它们能够充分捕获域适应任务的语义关系和方向。12
由于获取足够的用于各种计算机视觉任的人工标记数据存在困难,因此大量研究关注了迁移学习在卷积神经网络 (CNN) 中的应用。一个值得注意的例子是 ResNet,这是一种预训练的模型架构,在图像分类和物体检测任务中表现出更高的性能。13最近的研究对著名的 ImageNet 数据集在迁移学习中的应用进行了调研,并提出一种与计算机视觉领域传统观点相悖的结论:训练可靠的泛化模型只需要使用该数据集的一小部分即可。14许多针对计算机视觉的迁移学习教程均使用 ResNet 和/或 ImageNet,并结合 TensorFlow 的 Keras 库。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。