迁移学习

迁移学习是利用预训练模型的知识解决相关任务,减少训练时间和数据需求。本文介绍了迁移学习的概念,包括特征提取和微调,并通过PyTorch展示了如何在猫狗数据集上实现。此外,讨论了迁移学习的优势,如节省资源和应对小数据集问题。
摘要由CSDN通过智能技术生成

390a07bf2ada9a5907403646a4bdfa21.png

简介

好的机器学习模型需要大量数据和许多GPU或TPU进行训练。大多数时候,他们只能执行特定的任务。

大学和大公司有时会发布他们的模型。但很可能你希望开发一个机器学习应用程序,但没有适合你的任务的可用模型。

但别担心,你不必收集大量数据,也不必花费大量资金来开发自己的模型。你可以用迁移学习代替。这减少了训练时间,并且可以用更少的数据获得良好的性能。

什么是迁移学习?

在迁移学习中,我们使用模型在特定任务上收集的知识来解决不同但相关的任务。模型可以从上一个任务中学到的东西中获益,从而更快地学习新任务。

让我们在这里举个例子,假设你想在图像上检测狗。在互联网上,你可以找到一种可以检测猫的模型。由于这是一项非常类似的任务,你需要拍摄几张你的狗的照片,并重新训练模型以检测狗。

也许模型已经学会了通过猫的皮毛或它们有眼睛的事实来识别猫,这对识别狗也会很有帮助。

实际上有两种类型的迁移学习,特征提取和微调。

通常,这两种方法遵循相同的程序:

  • 初始化预训练的模型(我们要学习的模型)

  • 重塑最终层的形状,使其输出数量与新数据集中分类的数量相同

  • 定义要更新的层

  • 训练新数据集

特征提取

让我们考虑一个卷积神经网络结构,滤波器是一个密集层和一个输出神经元。

f283746064b598b965b53e1b4e8465e2.png

该网络经过训练,可以预测图像上有猫的概率。我们需要一个大数据集(有猫和没有猫的图像),而且训练时间很长。此步骤称为“预训练”。

bb03963feaf5605228abaaa3a2b380f3.png

然后是有趣的部分。我们再次训练网络,但这次是用一个包含狗的小图像数据集。

在训练过程中,除输出层外的所有层都被“冻结”。这意味着我们不会在训练期间更新它们。

训练后,网络输出狗在图像上可见的概率。此训练程序所需时间将少于之前的预训练。

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值