迁移学习简介
在本节课中,我们将讨论迁移学习及其在现实世界中的一些应用。
什么是迁移学习?
人类天生具备在不同任务之间迁移知识的能力。我们在学习完成某项任务时所获得的知识,可以被用于学习解决其他相关任务。任务之间的关联性越强,我们越容易实现知识的迁移或交叉利用。以下例子可以帮助我们更好地理解这一点:
- 如果你会骑摩托车,那么你就能学会开汽车。
- 如果你懂数学和统计学,那么你就能学习机器学习。
- 如果你会演奏古典钢琴,那么你就能学会演奏爵士钢琴。
传统的机器学习和深度学习算法通常是孤立工作的。这些算法被设计用来解决特定任务,一旦特征空间的分布发生变化,就必须从头开始重新构建模型。
迁移学习的核心思想是打破孤立学习的范式,将一个任务中学到的知识应用于解决相关的其他任务。
事实上,曾就职于 Google Brain、百度、斯坦福大学和 Coursera 的著名教授兼数据科学家 Andrew Ng 在 2016 年 NIPS 大会上做了一场精彩的教程演讲,题为《使用深度学习构建 AI 应用的技术细节》,他在其中提到:
在监督学习之后,迁移学习将成为推动机器学习商业成功的关键力量。
请看下图,以更清楚地理解迁移学习与传统机器学习技术的区别。
以下是关于迁移学习的一些正式定义:
迁移学习和领域自适应指的是:将在一种环境中学习到的知识加以利用,以提升在另一种环境中的泛化能力。
迁移学习是指通过将已学习的相关任务中的知识迁移到新任务中,从而提升新任务的学习效果。
迁移学习的应用示例
下面我们来看一些迁移学习的实际应用案例。
视觉领域的迁移学习(图像数据)
在计算机视觉中,我们处理的是图像或视频数据。这类任务中,深度学习模型非常常见。通常人们不会从零开始训练网络,而是采用已经在大规模、高难度图像分类任务(例如 ImageNet 的 1000 类图像分类竞赛)上预训练好的深度学习模型。
开发这些模型的研究人员公开了最终模型的权重,允许在宽松许可下使用。
一些常见的预训练模型包括:
- 牛津 VGG 模型
- 谷歌 Inception 模型
- 微软 ResNet 模型
自然语言处理中的迁移学习(文本数据)
在自然语言处理(NLP)中,输入或输出通常是文本数据。这类问题中常使用词嵌入(word embedding)技术。词嵌入是指将词语映射到高维连续向量空间,语义相近的词在该空间中具有相似的向量表示。
研究人员在大规模文本语料库上训练出模型后,也将其在宽松许可下公开发布。
一些常见的预训练模型包括:
- 谷歌的 word2vec 模型
- 斯坦福大学的 GloVe 模型
本章我们将仅聚焦于图像数据,以及如何对图像输入或输出应用迁移学习。后续章节中,我们还会进一步探讨 NLP 中的迁移学习!