什么是迁移学习?

迁移学习是一种机器学习技术,我们将一个任务上训练好的模型重新用作第二个任务的基础。当第二个任务与第一个任务相关,或者第二个任务的数据有限时,这种方法非常有益。

通过利用从初始任务中学到的特征,模型可以更有效地适应新任务,从而加速学习过程并提高性能。迁移学习还降低了过拟合的风险,因为模型已经包含了可用于第二个任务的通用特征。

迁移学习的重要性

迁移学习为解决关键挑战提供了方案,例如:

  • 数据稀缺: 获取大量的标注数据往往既困难又昂贵。迁移学习使我们能够使用预训练模型,从而减少对大型数据集的依赖。
  • 性能提升: 使用已经从大量数据中学习过的预训练模型作为起点,可以在新任务上获得更快、更准确的结果,这对于需要高精度和高效率的应用来说是理想的选择。
  • 时间和成本效益: 迁移学习通过利用现有模型缩短了训练时间并节省了资源,从而消除了从头开始训练的需要。
  • 适应性: 针对一个任务训练的模型可以针对相关任务进行微调,这使得迁移学习在各种应用中(从图像识别到自然语言处理)具有多功能性。

迁移学习的工作原理

迁移学习涉及一个结构化的过程,旨在利用预训练模型中的现有知识来处理新任务:

  • 预训练模型: 从一个已经在大型数据集上针对特定任务训练好的模型开始。这个预训练模型已经学习了在相关任务之间通用的特征和模式。
  • 基础模型: 这个预训练模型被称为基础模型,它包含处理数据以学习分层表示的层,从而捕捉从低级到复杂的特征。
  • 迁移层: 识别基础模型中包含既适用于原始任务也适用于新任务的通用信息的层。这些层通常靠近网络的顶部,捕捉广泛的、可复用的特征。
  • 微调: 使用来自新任务的数据微调这些选定的层。这个过程有助于保留预训练的知识,同时调整参数以满足新任务的具体要求,从而提高准确性和适应性。

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251001162116581880/taska.webp">taska

为任务 A 学习到的低级特征应该有利于任务 B 模型的学习。

迁移学习中的冻结层与可训练层

方面

冻结层

可训练层 —

— 定义

权重保持固定且在训练过程中不更新的层

权重在训练过程中被更新的层 目的

保留从大型预训练数据集中学到的通用特征

适应新数据集的特定任务特征 学习过程

没有反向传播更新;保持恒定

根据新数据通过反向传播进行更新 使用案例

当新数据集较小或与原始数据集相似时使用

当新数据集较大或与原始任务显著不同时使用 计算成本

较低,因为训练的参数较少

较高,因为需要更新更多参数 CNN 中的示例

捕捉边缘、纹理和基本形状的早期卷积层

用于微调特征的后期全连接层或更深的卷积层

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251003125416908815/inputlayer.webp">inputlayer

如何决定冻结或训练哪些层?

冻结或微调层的程度取决于目标数据集的相似性和大小:

  • 小规模相似数据集: 对于类似于原始数据集的较小数据集,我们冻结大部分层,仅微调最后一两层,以防止过拟合。
  • 大规模相似数据集: 对于大型、相似的数据集,我们可以解冻更多层,允许模型在保留来自基础模型的学得特征的同时进行适应。
  • 小规模不同数据集: 对于较小的、不相似的数据集,微调更靠近输入层的层有助于模型从头开始学习特定于任务的特征。
  • 大规模不同数据集: 在这种情况下,微调整个模型有助于模型适应新任务,同时利用来自预训练模型的广泛知识。

使用 MobileNetV2 进行 MNIST 分类的迁移学习

在这一节中,我们将通过微调一个在 ImageNet 上预训练的 MobileNetV2 模型 来探索迁移学习,用于对 MNIST 数字进行分类。

1. 准备数据集

我们首先加载 MNIST 数据集。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49693.html
点赞
0.00 平均评分 (0% 分数) - 0