0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

吴恩达:将引领下一波机器学习技术”的迁移学习到底好在哪?

电子工程师 来源:未知 作者:工程师李察 2018-10-27 10:27 次阅读

两年前,吴恩达在 NIPS 2016 的 Tutorial 上曾说“在监督学习之后,迁移学习将引领下一波机器学习技术商业化浪潮。”现实中不断有新场景的出现,迁移学习可以帮助我们更好地处理遇到的新场景。迁移学习到底有哪些优点,能够成为现在机器学习算法的新焦点?本文将通过与深度学习进行对比,让大家在应用层面了解迁移学习的原理及其优势。

前言

深度学习在许多很难用其它方法解决的问题上取得了长足的进步。深度学习的成功归功于它与传统的机器学习的几个关键不同点,这使得它在处理非结构化数据的时候能够大放异彩。如今,深度学习模型可以玩游戏,检测癌症,与人类交谈,以及驾驶汽车。

但是,使深度学习强大的这几个不同点同时也使得其成本巨大。你可能听说过深度学习的成功需要庞大的数据量,昂贵的硬件设施,甚至更加昂贵的精英工程人才。现在,一些公司开始对那些可以减少成本的创新想法和技术特别兴奋。比如多任务学习(Multi-task learning),这是一种可以让机器学习模型一次性从多个任务中进行学习的方法。这种方法的其中一种好处就是,可以减少对训练数据量的需求。

在这篇文章中,我们将会介绍迁移学习(transfer learning),一种可以让知识从一个任务迁移到另一个任务中的机器学习方法。迁移学习不需要为你的问题重新开发一个完全定制的解决方案,而是允许你从相关问题中迁移知识,以帮助你更轻松地解决您的自定义问题。通过迁移知识,你可以利用用于获取这些知识所需的昂贵资源,包括训练数据,硬件设备,研究人员,而这些成本并不需要你来承担。下面让我们看看迁移学习何时以及是怎样起作用的。

深度学习与传统机器学习的不同点

迁移学习并不是一项新技术,它也不是专门为深度学习服务的,但是鉴于最近在深度学习方面取得的进展,它很令人兴奋。所以首先,我们需要阐明深度学习究竟和传统的机器学习在哪些方面有所不同。

深度学习进行底层抽象

机器学习是机器自动学习把预测值或者标签分配给数值型输入(即数据)的一种方式。这里的难点是,如何确切地确定这个函数,使得其对于给定输入可以生成输出。不对函数添加任何限制条件的话,其可能性(复杂性)是无穷无尽的。为了简化这个任务,根据我们正在解决的问题的类型,相关领域的专业知识,或者简单的试错方法,我们通常会在函数上强加某种类型的结构。一种结构定义了某一类型的机器学习模型。

理论上,有无限种可能的结构可供选择,但在实践中,大多数机器学习用例可以通过应用少数几种结构中的其中一种来解决:线性模型,树的组合分类器,和支持向量机是其中的核心。数据科学家的工作就是从这一小组可能的结构中选择正确的结构。这些模型作为黑盒对象,可以从许多成熟的机器学习库中获得,并且只需几行代码即可训练。举个例子,你可以用 Python 的 scikit-learn 库像以下这样训练一个随机森林模型:

或者用 R 来训练一个线性回归模型:

与此不同的是,深度学习在更加底层运行。深度学习不是从一小组的模型结构中进行选择,而是允许开发人员组成任意结构。构建块是一些模块或者层,可以将其想象成基本的基础数据转换。这意味着当我们应用深度学习时,我们需要打开黑盒子了解数据转换,而不是把它当做被算法固定的一堆参数

这种做法使得我们可以构建更加强大的模型,但是同时它也给整个模型构建过程添加了一种全新的挑战。尽管深度学习社区已经发表了大量研究,到处都有实用的深度学习指南,或者一些经验之谈,如何有效地组合这些数据转换依然是一个很困难的过程。

下面我们考虑一个极其简单的卷积神经网络图像分类器,这里是用一个流行的深度学习库 PyTorch 来进行定义的。

因为我们使用的是底层的构建块,我们可以轻松改变模型的某个单一部件(例如,将F.relu变为F.sigmoid)。这样做可以得到一个全新的模型架构,它可能会产生截然不同的结果,而且它的可能性,毫不夸张地说,是无止境的。

深度学习还没有被充分地理解

即使给定了一个固定的神经网络架构,训练它也是众所周知的极其困难。首先,深度学习的损失函数通常不是凸函数,这意味着训练并不一定产生最优的可能解。第二,深度学习现在还是非常新的技术,它的许多组成部分仍未被充分理解。举个例子,批标准化(Batch Normalization)最近备受关注,因为似乎将其包含在某些模型中是取得良好结果的关键,但是专家无法就其原因达成一致。研究人员 Ali Rahimi 最近在一场机器学习会议上甚至把深度学习与炼金术相提并论,引发了一场论战。

自动特征工程

深度学习的复杂性促进了一门叫表示学习(representation learning)的技术的发展,这也是为什么经常有人说神经网络做的是“自动特征工程”。简单来说就是,我们不是让人类来手动从数据集中提取有效特征,而是构建一个模型,让模型可以自己学习对于当前任务来说哪些是需要的和有用的特征。把特征工程的任务交给模型来处理非常有效,但是代价是模型需要庞大的数据量,也因此需要庞大的计算能力。

你可以做什么?

和其他机器学习方法相比,深度学习太过于复杂,看上去似乎无法将其整合到你的业务中。对于那些资源有限的组织机构来说,这种感觉更加强烈。

对于那些需要走在前沿的组织机构来说,可能的确需要聘请专家和购买专业的硬件设施。但是很多情况下这不是必需的。有方法可以让你不需要进行大量的投资就可以有效地应用深度学习技术。这里就是迁移学习可以大展拳脚的地方了。

迁移学习可以让知识从一个机器学习模型迁移到另一个模型上。这些模型可能是对模型结构进行了长年研究、用相当多数据集对模型进行训练、用数以年计的计算时间对模型进行优化而得到的结果。利用迁移学习,你不需要承担上面说的任何成本就能获得这项工作的大部分好处!

什么是迁移学习

大多数机器学习任务始于零知识,意思是它的结构和模型的参数是从随机猜测开始的。当我们说模型是从头开始学习的时候,意思也是如此。

随机猜测开始训练的一个猫检测模型。通过它见过的许多不同的猫,该模型从中整合出相同的模式,逐渐学习到猫是什么。

在这种情况下,该模型学习到的所有内容都来自于你展示给它的数据。但是,这是解决问题的唯一方法吗?在某些情况下,看上去的确如此。

猫检测模型在不相关的应用中,例如欺诈检测,很有可能没有什么用处。它只知道如何应付猫的图片,而不是信用卡交易。

但是在某些情况下,我们似乎可以在不同任务之间共享信息

猫检测模型在相关任务中作用很大,例如猫的脸部定位。该检测器已经知道怎么检测猫胡子,鼻子,以及眼睛,所有这些对于定位猫的脸部都很有用处。

这就是迁移学习的本质:采用一种模型,学习如何很好地完成某项任务,将其部分或者所有知识迁移到一个相关的任务。

想想我们自己的学习经验,就会发现这其实很有道理:我们经常迁移以往习得的技能,这样可以更快地学习新的技能。举个例子,学过投掷棒球的人不需要重新学习抛东西的机制就能很好地学习到怎么扔一个足球。这些任务本质上是相通的,能够处理其中一件任务的话自然而然可以把学习到的能力迁移到另一项任务。

在机器学习领域,可能过去 5 年最好的例子就是计算机视觉领域。现在几乎没人会从头开始训练一个图像模型。相反,我们会从一个预训练好的模型开始,这个模型已经知道怎么区分一些简单的对象,例如猫,狗,还有雨伞。学习区分图像的模型首先学习如何检测一些通用图像特征,例如边缘,形状,文本,以及脸部。预训练模型具有以上这些的基本技能(还有更加具体的技能,例如区分狗和猫的能力)。

此时,预训练的分类模型可以通过添加层或者在一个新的数据集上重新训练,来继承那些花费巨大而获得的基本技能,然后将其延伸到新的任务。这就是迁移学习。

这种方法的好处很明显。

迁移学习训练数据量需求量更小

当你在一个与猫相关的新任务中重复使用你最喜爱的猫检测模型时,你的模型已经拥有了“一百万只猫的智慧”,这意味着你不需要再使用那么多的猫图片来训练新任务了。减少训练数据量可以让你在只有很少数据,或者要获得更多数据的成本过高或者不可能获得更多数据的情况下也能训练,同时可以让你在比较廉价的硬件设施上更快地训练模型。

迁移学习训练模型泛化能力更强

迁移学习可以改进模型的泛化能力,或者说增强其在非训练数据上分类良好的能力。这是因为在训练预训练模型时,是有目的性地让模型可以学习到对相关任务都很有用的通用特征。当模型迁移到一个新任务时,它将很难过拟合新的训练数据,因为它将仅从一个很一般的知识库中继续学习而已。构建一个泛化能力强的模型是机器学习中最难以及最重要的部分之一。

迁移学习训练过程更加鲁棒

从一个预训练的模型开始,也可以避免训练一个带有数百万参数的复杂模型,这个过程非常令人沮丧,非常不稳定,而且令人困惑。迁移学习可以将可训练参数的数量减少多达 100%,使得训练更稳定,而且更容易调试。

迁移学习降低深度学习的入门门槛

最后,迁移学习降低深度学习的门槛,因为你不需要成为专家就能获得专家级的结果。举例来说,流行的图像分类模型 Resnet-50,这个特定的结构是怎么选择的呢?这是许多深度学习专家的多年研究和实验的结果。这个复杂的结构中包含有 2500 万个权重,如果没有对这个模型中各个部件的深入了解,从头优化这些权重可以说是几乎不可能的任务。幸运的是,有了迁移学习,你可以重用这个复杂的结构,以及这些优化过的权重,因此显著降低了深度学习的入门门槛。

多任务学习又是什么?

迁移学习是用于训练机器学习模型的知识共享技术的其中一种,已被证明是非常有效的。目前,知识共享技术中最有趣的两种就是迁移学习和多任务学习。在迁移学习中,模型首先在单个任务中进行训练,然后可以用于相关任务的起始点。在学习相关任务时,原始的被迁移模型会学习如何专门处理新的任务,而不需要担心会不会影响其在原来任务上的效果。而在多任务学习中,单个模型一次性学习处理多个任务,对模型的性能评估则取决于它学习之后能够多好地完成这些任务。后续我们也会分析讨论更过有关多任务学习的好处以及其何时能起作用。

结论

迁移学习是一项知识共享技术,其可以减少构建深度学习模型时对训练数据量,计算能力,以及工程人才的依赖。由于深度学习可以提供与传统机器学习相比的显著改进,迁移学习成为一项必不可少的工具。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3172

    浏览量

    48711
  • 机器学习
    +关注

    关注

    66

    文章

    8377

    浏览量

    132407
  • 深度学习
    +关注

    关注

    73

    文章

    5492

    浏览量

    120976

原文标题:吴恩达说“将引领下一波机器学习技术”的迁移学习到底好在哪?

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是机器学习?通过机器学习方法能解决哪些问题?

    计算机系统自身的性能”。事实上,由于“经验”在计算机系统中主要以数据的形式存在,因此机器学习需要设法对数据进行分析学习,这就使得它逐渐成为智能数据分析技术的创新源之
    的头像 发表于 11-16 01:07 224次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    【书籍评测活动NO.51】具身智能机器人系统 | 了解AI的下一个浪潮!

    早就听大佬们说,具身智能是人工智能的下一波浪潮,也是AI未来的趋势! 最近,具身智能的概念更是炙手可热,备受瞩目! 不论是这几天稚晖君开源人形机器人全套图纸+代码,引发圈内热议。 还是各类具身智能
    发表于 11-11 10:20

    下一机器技术:工业自动化的五大趋势

    随着人工智能(AI)技术的迅猛发展和全球制造业的转型升级,下一机器技术正在引领工业自动化领域的新
    的头像 发表于 10-23 15:52 488次阅读

    【《时间序列与机器学习》阅读体验】+ 时间序列的信息提取

    之前对《时间序列与机器学习书进行了整体浏览,并且非常轻松愉快的完成了第章的学习,今天开始学习
    发表于 08-14 18:00

    预训练和迁移学习的区别和联系

    预训练和迁移学习是深度学习机器学习领域中的两个重要概念,它们在提高模型性能、减少训练时间和降低对数据量的需求方面发挥着关键作用。本文将从定
    的头像 发表于 07-11 10:12 839次阅读

    深度学习与nlp的区别在哪

    深度学习和自然语言处理(NLP)是计算机科学领域中两个非常重要的研究方向。它们之间既有联系,也有区别。本文介绍深度学习与NLP的区别。 深度学习简介 深度
    的头像 发表于 07-05 09:47 813次阅读

    迁移学习的基本概念和实现方法

    迁移学习(Transfer Learning)是机器学习领域中的个重要概念,其核心思想是利用在
    的头像 发表于 07-04 17:30 1343次阅读

    机器学习算法原理详解

    机器学习作为人工智能的个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文深入解读几种常见的
    的头像 发表于 07-02 11:25 764次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于
    的头像 发表于 07-01 11:40 1190次阅读

    SnapAI和机器学习引入Snapchat

    Snap首席执行官伊万·斯皮格近日宣布,公司加大投资力度,人工智能和机器学习技术深度引入其主打社交应用Snapchat,以进
    的头像 发表于 05-21 09:31 474次阅读

    NVIDIA TAO工具套件功能与智浦eIQ机器学习开发环境的集成

    智浦半导体宣布与NVIDIA合作,NVIDIA经过训练的人工智能模型通过eIQ机器学习开发环境部署到智浦广泛的边缘处理产品组合中。
    的头像 发表于 03-22 09:11 939次阅读

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我逐步讲解如何使用 TensorFlow 创建个简单的机器学习模型。
    的头像 发表于 01-08 09:25 914次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型

    什么是机器学习?它的重要性体现在哪

    机器学习种人工智能(AI)的子领域,旨在使计算机系统通过经验自动学习和改进,而无需明确地进行编程。它侧重于开发算法和模型,使计算机能够从数据中提取模式、进行预测和做出决策,而无需显
    的头像 发表于 01-05 08:27 1422次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?它的重要性体现<b class='flag-5'>在哪</b>

    未来十年不变的AI是什么?等专家关于2024年AI发展趋势的预测

    随着2024年的到来,人工智能领域正迎来前所未有的变革和发展。从深度学习到自然语言处理,AI技术的每个分支都在经历着快速的进步。在这个关键的时刻,业界专家们提出了对未来趋势的深刻洞察,预测了
    的头像 发表于 01-04 11:36 862次阅读
    未来十年不变的AI是什么?<b class='flag-5'>吴</b><b class='flag-5'>恩</b><b class='flag-5'>达</b>等专家关于2024年AI发展趋势的预测

    python常用机器学习及深度学习库介绍

    目前,随着人工智能的大热,吸引了诸多行业对于人工智能的关注,同时也迎来了一波一波的人工智能学习的热潮,虽然人工智能背后的原理并不能通过短短文给予详细介绍,但是像所有学科
    的头像 发表于 01-03 10:28 764次阅读
    python常用<b class='flag-5'>机器</b><b class='flag-5'>学习</b>及深度<b class='flag-5'>学习</b>库介绍