迁移学习那点儿事成数据科学家的关键技能!
在这篇文章中,你将了解到什么是迁移学习,它的一些应用是什么以及为什么它是数据科学家的关键技能。
迁移学习不是机器学习模式或技术,它是机器学习中的一种“设计方法”。另一种“设计方法”就是主动学习。
迁移学习:一个定义
迁移学习的一般概念是利用从任务中学到的知识,在只有少量标记数据可用的设置中,可以使用大量标记数据。创建带标签的数据是昂贵的,所以最佳方法是利用现有数据集。
在传统的机器学习模型中,主要目标是基于从训练数据中学习到的模式推广到看不见的数据。通过迁移学习,尝试从已经学习完成不同任务的模式开始,启动这个泛化过程。本质上,不是从一个(通常是随机初始化的)空白表单开始学习的过程,而是从已经学会解决不同任务的模式开始。
能够从图像中区分线条和形状(左),会更容易确定某物是否是“汽车”,而不是必须从原始像素值开始。迁移学习可以让你利用来自其他计算机视觉模型的学习模式。
在NLP中,表示词有不同的方法(在左边有一个词的代表,在右边有一个表示词的符号)。通过迁移学习机器学习模型可以利用不同单词之间存在的关系。
知识和模式的转移在各种领域都是可能的。今天的文章将通过查看这些不同领域的几个例子来说明迁移学习。目标是激励数据科学家在他们的机器学习项目中进行迁移学习,并让他们意识到优缺点。
为什么对迁移学习的理解是数据科学家的关键技能,这儿有3个原因:
·迁移学习在任何一种学习中都是至关重要的。为了获得成功,人类不是每一个任务或问题都能被教导。每个人都会遇到从未遇到过的情况,我们仍然设法以特殊的方式解决问题。从大量的经验中学习和将“知识”输出到新的环境中的能力正是迁移学习所关心的。从这个角度来看,迁移学习和泛化在概念层面上是高度相似的,主要区别在于迁移学习经常被用于“跨任务转移知识,而不是在一个特定的任务中进行概括”。因此,迁移学习与所有机器学习模型所必需的泛化概念有着内在联系。
·迁移学习是确保大量小数据环境下深度学习技术突破的关键。在研究中,深度学习几乎是无处不在,但是很多现实生活场景通常没有数百万个标记数据点来训练模型。深度学习技术需要大量的数据来调整神经网络中的数百万个参数。特别是在监督式学习的情况下,这意味着你需要大量(非常昂贵的)标签数据。标记图像听起来很平常,但是在自然语言处理(NLP)中,需要专家知识才能创建大型标记数据集。例如Penn treebank是一个词性标记集,已经有7年的历史了,需要许多受过训练的语言学家的密切合作。迁移学习是减少数据集所需大小的一种方法,以使神经网络成为可行的选择。其他可行的选择正朝着更多的概率启发模式发展,这些模型通常更适合处理有限的数据集。
·迁移学习有显著的优点和缺点。了解这些缺点对于成功的机器学习应用程序至关重要。知识转让只有在“适当”的情况下才有可能。在这个背景下确切地定义合适的手段并不容易,通常需要进行大量的实验。一般的情况下,你可能不会相信一个在玩具车里开车的孩子能够驾驶法拉利。在迁移学习中也是这样的原理:虽然很难量化,但迁移学习是有上限的。这不是一个适合所有问题的解决方案。
迁移学习的一般概念
迁移学习的要求
正如名称所述,迁移学习需要将知识从一个领域转移到另一个领域的能力。迁移学习可以在高水平上解释。一个例子就是NLP中的架构可以被重新在序列预测问题中重用,因为很多NLP问题本质上可以归结为序列预测问题。迁移学习也可以在低层次上进行解释,其中你实际上是正在重复使用不同模型中的参数(跳过词组,连续词袋等)。迁移学习的要求一方面是具体的问题,另一方面是具体的模型。接下来的两节将分别讨论迁移学习的高层次和低层次的方法,尽管在文献中通常会用不同的名字,但是迁移学习的总体概念仍然存在。
多任务学习
在多任务学习中,你可以同时在不同的任务上训练模型。通常使用深度学习模型,因为它们可以灵活地进行调整。
网络体系结构是这样调整的,即第一层跨越不同的任务使用,随后为不同的任务指定不同的任务层和输出。总的思路是,通过对不同任务的网络进行训练,网络将更好地推广,因为模型需要在类似“知识”或“处理”的任务上表现良好。
自然语言处理的一个例子是一个模型,它的最终目标是执行实体识别,而不是纯粹的训练模型的实体识别任务,也可以用它来进行词性分类,得到词语联想的一部分,......因此,模型会从这些任务和不同的数据集中获益。
Featuriser
深度学习模型的一大优点是特征提取是“自动的”。基于标记的数据和反向传播,网络能够确定任务的有用特征。例如对图像进行分类,网络“计算出”输入的哪一部分是重要的。这意味着功能定义的手动工作被抽象出来。深度学习网络可以在其他问题中重复使用,因为所提取的特征类型也常常对其他问题有用。本质上,在一个特征中,你使用网络的第一层来确定有用的特征,但是你不使用网络的输出,因为它是特定于任务的。
鉴于深度学习系统擅长特征提取,如何重用现有网络来执行其他任务的特征提取?可以将数据样本馈送到网络中,并将网络中的一个中间层作为输出。这个中间层可以被解释为一个固定的长度,原始数据的处理表示。通常情况下,在计算机视觉的情况下使用特征的概念。图像然后被馈送到预先训练的网络(例如,VGG或AlexNet)中,并且在新的数据表示上使用不同的机器学习方法。提取中间层作为图像的表示显著地减少了原始数据大小,使得它们更适合于传统的机器学习技术(例如,逻辑回归或支持向量机与小图像的表示(例如128维度)相比更好地工作到原来的,例如,128x128 = 16384尺寸)。