新兴机器学习算法:迁移学习

1.前言

在面对某一领域的具体问题时,通常可能无法得到构建模型所需规模的数据。然而在一个模型训练任务中针对某种类型数据获得的关系也可以轻松地应用于同一领域的不同问题。这种技术也叫做迁移学习(Transfer Learning)。

Qiang Yang、Sinno Jialin Pan,“A Survey on Transfer Learning”,IEEE Transactions on Knowledge & Data Engineering,vol. 22, no. , pp. 1345–1359, October 2010, doi:10.1109/TKDE.2009.191

2.区分监督学习、半监督学习、迁移学习、自我学习

举一个经典的例子,分离大象和犀牛。
  1. 对于监督学习,我们手头有大量大象的样本和犀牛的样本,接下来训练分类器,进行分类,大家都知道的。
  2. 对于迁移学习,则是指我们手头上有大量羊的样本和马的样本(已标记),少量的大象和犀牛的样本,接下来就要从羊和马的样本中选出有效的样本分别加入到大象和犀牛的标记样本中,然后再用监督学习的方法训练分类器。
  3. 对于半监督学习,则是手上仅有少量大象和犀牛的已标记样本,另外有一堆大象和犀牛没有标记的数据(注意它们中要么是大象要么是犀牛,没有其他物种)。半监督学习就是利用这些样本训练分类器,实现分类。
  4. 对于自我学习,同样是手上仅有少量大象和犀牛的已标记样本,另外有一大堆自然图像。所谓自然图像,就是有大象和犀牛的图片,还有各种其他物种的图片。自我学习比半监督学习更适合实际场景-----哪有一堆只有大象和犀牛的图片给你呢?而自然图像的来源更加广泛,可以从互联网上随便下载。

3.迁移学习

借助迁移学习技术,我们可以直接使用预训练过的模型,这种模型已经通过大量容易获得的数据集进行过训练(虽然是针对完全不同的任务进行训练的,但输入的内容完全相同,只不过输出的结果不同)。
随后从中找出输出结果可重用的层。我们可以使用这些层的输出结果充当输入,进而训练出一个所需参数的数量更少,规模也更小的网络。这个小规模网络只需要了解特定问题的内部关系,同时已经通过预培训模型学习过数据中蕴含的模式。通过这种方式,即可将经过训练检测猫咪的模型重新用于再现梵高的画作。
迁移学习技术的另一个重大收益在于可以对模型进行完善的“通用化”。大型模型往往会与数据过度拟合(Overfit),例如建模所用数据量远远超过隐含的现象数量,在处理未曾见过的数据时效果可能不如测试时那么好。由于迁移学习可以让模型看到不同类型的数据,因此可以习得更出色的底层规则。

4.迁移学习的真实案例

4.1图像识别


4.2对象检测


4.3文字识别


迁移学习实现过程中的难点:
虽然可以用更少量的数据训练模型,但该技术的运用有着更高的技能要求。只需要看看上述例子中硬编码参数的数量,并设想一下要在模型训练完成前不断调整这些参数,迁移学习技术使用的难度之大可想而知。
迁移学习技术目前面临的问题包括:
  • 找到预训练所需的大规模数据集
  • 决定用来预训练的模型
  • 两种模型中任何一种无法按照预期工作都将比较难以调试
  • 不确定为了训练模型还需要额外准备多少数据
  • 使用预训练模型时难以决定在哪里停止
  • 在预训练模型的基础上,确定模型所需层和参数的数量
  • 托管并提供组合后的模型
  • 当出现更多数据或更好的技术后,对预训练模型进行更新

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页