八、(一)预训练网络与迁移学习

上一章:七、卷积神经网络

下一章:八、(二)深度学习训练技巧

 更多章节:人工智能入门课程


目录

课前练习

预训练模型作为特征提取器

猫与狗数据集

✍️ 练习:迁移学习

可视化对抗性猫

总结

挑战

课后练习

作业


训练CNN网络可能需要花费很多时间,并且需要大量数据。训练的大部分时间都用于学习神经网络可以用来从图片中提取模式的最优低级滤波器上。一个自然的问题产生了,我们是否可以使用在一个数据集上训练的神经网络,将其调整为在不需要完整训练过程的情况下,对其他不同的图像进行分类?

这种方法叫做迁移学习,因为我们把知识从一个神经网络模型迁移到另一个。在迁移学习中,我们通常从一个已经在某些大规模数据集(比如ImageNet)上预训练了的模型开始。这些模型已经能够很好的从普通图片上提取不同的特征,在很多情况下,只需要这些已提取的特征的基础上构建一个分类器就可以产生良好的结果。

 迁移学习是其他学术领域比如说教育业的专业术语它是指将一个领域的知识应用到另一个领域的过程

预训练模型作为特征提取器

我们前面章节讨论到的卷积网络包含许多的层每个层都能够从图像中提取一些特征从低级像素组合比如水平/垂直线条或笔画开始逐渐到高级特征组合相应于一些像眼睛的火焰之类的东西)。如果我们在足够大规模的通用和多样化图像数据集上训练CNN网络应该能够学会提取这些常见特征

Keras和PyTorch都包含了可以轻松加载一些常见架构的预训练网络权重的函数其中大多数网络都是在ImageNet 图像数据集上训练的最常用的神经网络架构在上一课时的CNN 架构页面中中进行了描述特别是您可能会考虑使用以下之一

  • VGG-16/VGG-19相对简单并且提供优秀的准确率通常首次使用神经网络)选择VGG是个好选择,来看看迁移学习如何工作
  • ResNet是微软研究院于2015年提出的一系列模型它们具有更多的层因此需要耗费很多资源
  • MobileNet是一系列体积更小适合移动设备的模型如果您资源有限并且可以牺牲一些准确度您可以使用它们

这是一些使用VGG-16网络从一只猫的照片中提取的样本特征

猫与狗数据集

在这个例子中我们将使用一个猫与狗的数据集这非常接近真实的图像分类场景

✍️ 练习:迁移学习

让我们看看相应的笔记中迁移学习的实际应用

可视化对抗性猫

预训练神经网络模型在它的大脑中包含各种不同的模式包括理想猫以及理想狗理想斑马等的概念将这种图像使用某种方法可视化将会非常有趣然而这并不简单因为模式分散在整个网络权重中同时以层次结构组织

我们可以采用的一种方法是我们从一张随机图像开始然后使用梯度下降优化技术来调整这张图片直到神经网络开始认为它是一只猫

但是如果我们这么做我们将得到一些与随机噪音非常相似的东西这是因为让网络认为输入图像是猫的方法有很多种其中包括一些在视觉上没有意义的方法虽然这些图像包含许多典型的猫的模式但没有什么约束这些模型是具有视觉独特性的

为了改善结果我们可以在损失函数中增加另一项叫做变化损失variation loss)它是一个衡量图像的相邻像素点相似度的指标最小化变化损失使得图像更平滑消除噪音从而显示出更具视觉吸引力的模式这是一个这样子的“理想”的图像的示例它们被高概率的被分类为猫和斑马

理想猫

理想斑马

类似的方法可以用于对神经网络执行所谓的对抗性攻击adversarial attacks)设想我们想欺骗神经网络使得它认为一只狗看起来像一只猫如果我们拿一张被神经网络识别为狗的图像然后我们使用梯度下降优化对它图像直到网络开始将图像分类为一只猫

狗的原始图片

被分类为猫的狗的图片

查看以下笔记中的代码重现上述结果

总结

使用迁移学习您可以快速组建一个具有高准确率的用于自定义对象分类任务的分类器您可以看到我们正在解决的问题越复杂我们需要的算力越高并且在CPU上并不容易解决在下一个单元我们将尝试使用一个更轻量级、更少计算资源的实现方式来训练相同的模型,并且只会略微降低一些准确度

挑战

在附带的笔记中底部有说明如何将迁移知识最好的适用略微相似的训练数据也许是新类型的动物)。在完全不同的图像上实验看看您的知识迁移模型表现得好还是差

复习和自学

通读TrainingTricks.md以加深您对使用其他方法训练您的模型的理解

作业

在本实验中我们将使用现实生活中的Oxford-IIIT宠物数据集其中包含35个品种的猫和狗并且我们将构建一个迁移学习分类器


上一章: 七、卷积神经网络

下一章:八、(二)深度学习训练技巧

 更多章节:人工智能入门课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值