diff --git a/第十章_迁移学习.md b/第十章_迁移学习.md index 845cba5..faf2690 100644 --- a/第十章_迁移学习.md +++ b/第十章_迁移学习.md @@ -24,37 +24,37 @@ 所以不是训练单个神经网络同时处理行人、汽车、停车标志和交通灯检测。你可以训练一个**用于行人检测的神经网络**,一个**用于汽车检测的神经网络**,一个**用于停车标志检测的神经网络**和一个**用于交通信号灯检测的神经网络**。 那么研究员 Rich Carona 几年前发现的是什么呢? 多任务学习会降低性能的唯一情况,和训练单个神经网络相比性能更低的情况就是你的神经网络还不够大。 但如果你可以训练一个足够大的神经网络,那么多任务学习肯定**不会或者很少**会**降低性能**,我们都希望它可以提升性能,比单独训练神经网络来单独完成各个任务**性能要更好**。 -所以**这就是多任务学习**,在实践中,多任务学习的使用频率要低于迁移学习。 +4. 所以**这就是多任务学习**,在实践中,多任务学习的使用频率要低于迁移学习。 我看到很多迁移学习的应用,你需要解决一个问题,但你的**训练数据很少**,所以你需要找一个数据很多的相关问题来**预先学习**,并将知识迁移到这个新问题上。 但多任务学习比较少见,就是你需要同时处理很多任务,都要做好,你可以同时训练所有这些任务,也许计算机视觉是一个例子。 在物体检测中,我们看到**更多**使用多任务学习的应用,其中一个神经网络尝试检测一大堆物体,比分别训练不同的神经网络检测物体**更好**。但我说,平均来说,目前迁移学习使用频率**更高**,比多任务学习频率**更高**,但两者都可以成为你的**强力工具**。 -3. 总结一下,多任务学习能让你训练一个神经网络来执行许多任务,这可以给你更高的性能,比单独完成各个任务更高的性能。 +5. 总结一下,多任务学习能让你训练一个神经网络来执行许多任务,这可以给你更高的性能,比单独完成各个任务更高的性能。 但要**注意**,**实际上**迁移学习比多任务学习使用频率**更高**。 我看到很多任务都是,如果你想解决一个机器学习问题,但你的数据集相对较小,那么迁移学习真的能帮到你,就是如果你找到一个相关问题,其中数据量要大得多,你就能以它为基础训练你的神经网络,然后迁移到这个数据量很少的任务上来。 -今天我们学到了很多和迁移学习有关的问题,还有一些迁移学习和多任务学习的应用。 +6. 今天我们学到了很多和迁移学习有关的问题,还有一些迁移学习和多任务学习的应用。 但多任务学习,我觉得使用频率比迁移学习要少得多,也许其中一个例外是计算机视觉,物体检测。在那些任务中,人们经常训练一个神经网络同时检测很多不同物体,这比训练单独的神经网络来检测视觉物体要更好。但平均而言,我认为即使迁移学习和多任务学习工作方式类似。 实际上,我看到用迁移学习比多任务学习要更多,我觉得这是因为你很难找到那么多相似且数据量对等的任务可以用单一神经网络训练。 再次,在计算机视觉领域,物体检测这个例子是最显著的例外情况。 -所以这就是多任务学习,多任务学习和迁移学习都是你的工具包中的重要工具。 +7. 所以这就是多任务学习,多任务学习和迁移学习都是你的工具包中的重要工具。 最后,我想继续讨论端到端深度学习,所以我们来看下一个视频来讨论端到端学习。 ## 10.4 什么是端到端的深度学习? -深度学习中**最令人振奋**的最新动态之一就是端到端深度学习的兴起,那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理。 +1. 深度学习中**最令人振奋**的最新动态之一就是端到端深度学习的兴起,那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理。 那么端到端深度学习就是**忽略所有这些不同的阶段**,用单个神经网络代替它。 -而端到端深度学习就只需要把训练集拿过来,直接学到了和之间的函数映射,直接绕过了其中很多步骤。对一些学科里的人来说,这点相当难以接受,他们无法接受这样**构建AI系统**,因为有些情况,**端到端方法**完全**取代**了旧系统,某些投入了多年研究的中间组件也许已经**过时**了。 +2. 而端到端深度学习就只需要把训练集拿过来,直接学到了和之间的函数映射,直接绕过了其中很多步骤。对一些学科里的人来说,这点相当难以接受,他们无法接受这样**构建AI系统**,因为有些情况,**端到端方法**完全**取代**了旧系统,某些投入了多年研究的中间组件也许已经**过时**了。 ## 10.5 端到端的深度学习举例? -这张图上是一个研究员做的人脸识别门禁,是百度的林元庆研究员做的。 +1. 这张图上是一个研究员做的人脸识别门禁,是百度的林元庆研究员做的。 这是一个相机,它会拍下接近门禁的人,如果它认出了那个人,门禁系统就自动打开,让他通过,所以你不需要刷一个**RFID工卡**就能进入这个设施。 系统部署在越来越多的中国办公室,希望在其他国家也可以部署更多,你可以接近门禁,如果它认出你的脸,它就直接让你通过,你不需要带RFID工卡。 -我们再来看几个例子,比如机器翻译。 +2. 我们再来看几个例子,比如机器翻译。 传统上,机器翻译系统也有一个很复杂的流水线,比如英语机翻得到文本,然后做文本分析,基本上要从文本中提取一些特征之类的,经过很多步骤,你最后会将英文文本翻译成法文。 因为对于机器翻译来说的确有很多(英文,法文)的数据对,端到端深度学习在机器翻译领域非常好用,那是因为在今天可以收集对的大数据集,就是英文句子和对应的法语翻译。 所以在这个例子中,端到端深度学习效果很好。 ## 10.6 端到端的深度学习有什么挑战? -事实证明,端到端深度学习的挑战之一是,你可能需要大量数据才能让系统表现良好,比如,你只有**3000小时数据**去训练你的**语音识别系统**,那么传统的流水线效果真的很好。 +1. 事实证明,端到端深度学习的挑战之一是,你可能需要大量数据才能让系统表现良好,比如,你只有**3000小时数据**去训练你的**语音识别系统**,那么传统的流水线效果真的很好。 但当你拥有非常大的数据集时,比如**10,000小时数据**或者**100,000小时**数据,这样端到端方法突然开始很厉害了。所以当你的**数据集较小**的时候,传统流水线方法其实效果也不错,通常做得**更好**。 -你需要**大数据集**才能让**端到端方法**真正发出耀眼光芒。如果你的数据量适中,那么也可以用中间件方法,你可能输入还是音频,然后绕过特征提取,直接尝试从神经网络输出音位,然后也可以在其他阶段用,所以这是往端到端学习迈出的一小步,但还没有到那里。 +2. 你需要**大数据集**才能让**端到端方法**真正发出耀眼光芒。如果你的数据量适中,那么也可以用中间件方法,你可能输入还是音频,然后绕过特征提取,直接尝试从神经网络输出音位,然后也可以在其他阶段用,所以这是往端到端学习迈出的一小步,但还没有到那里。 ## 10.7 端到端的深度学习优缺点? 假设你正在搭建一个机器学习系统,你要决定是否使用端对端方法,我们来看看端到端深度学习的一些优缺点,这样你就可以根据一些准则,判断你的应用程序是否有希望使用端到端方法。 @@ -75,6 +75,8 @@ 所以手工设计组件在这种情况,可能是把人类知识直接注入算法的途径,这总不是一件坏事。 我觉得学习算法有两个主要的知识来源,一个是数据,另一个是你手工设计的任何东西,可能是组件,功能,或者其他东西。 所以当你有大量数据时,手工设计的东西就不太重要了,但是当你没有太多的数据时,构造一个精心设计的系统,实际上可以将人类对这个问题的很多 认识直接注入到问题里,进入算法里应该挺有帮助的。 -所以端到端深度学习的弊端之一是它把可能有用的人工设计的组件排除在外了,精心设计的人工组件可能非常有用,但它们也有可能真的伤害到你的算法表现。 + +总结: +1.所以端到端深度学习的弊端之一是它把可能有用的人工设计的组件排除在外了,精心设计的人工组件可能非常有用,但它们也有可能真的伤害到你的算法表现。 例如,强制你的算法以音位为单位思考,也许让算法自己找到更好的表示方法更好。 所以这是一把双刃剑,可能有坏处,可能有好处,但往往好处更多,手工设计的组件往往在训练集更小的时候帮助更大。