转移学习

转移学习培训深层学习模型

转移学习是一种深入的学习方法,其中已经为一个任务培训的模型用作执行类似任务的模型的起点。使用传输学习的更新和培训通常比从头划伤训练网络的速度更快和更容易。该方法通常用于对象检测,图像识别和语音识别应用程序等。

迁移学习是一种流行的技术,因为:

  • 它使您能够通过重用已经在大型数据集上训练过的流行模型,使用标记较少的数据来训练模型。
  • 它可以减少培训时间和计算资源。随着转移学习,重量不会从划痕中学到,因为预磨削的模型已经基于先前的学习来学习权重。
  • 您可以利用深度学习研究社区开发的模型体系结构,包括像GoogLeNet和ResNet这样的流行体系结构。

迁移学习的预训练模型

迁移学习的中心是迁移学习普里尔深度学习模式,由深度学习研究人员建造,已经使用数千或数百万样本训练图像培训。

有许多预先训练过的模型可供选择,每一种模型都有其优缺点可供考虑:

  • 大小:模型所需的内存占用是多少?模型大小的重要性取决于您打算在何处以及如何部署它。它是在嵌入式硬件上运行还是在台式电脑上运行?当部署到低内存系统时,网络的大小特别重要。
  • 准确性:模型在再培训前的表现如何?通常情况下,一个在ImageNet(一个包含100万张图片和1000种图片的常用数据集)上表现良好的模型,在新的类似任务上也可能表现良好。然而,ImageNet上的低准确率并不一定意味着该模型在所有任务上的表现都很差。
  • 预测速度:模型预测新输入的速度有多快?虽然预测速度可能会根据其他深度学习(如硬件和批大小)而变化,但速度也会根据所选模型的架构和模型的大小而变化。

比较流行磨普网络的模型大小,速度和准确性。

可以使用MATLAB和深度学习工具箱进行访问来自最新研究的预净化网络使用单行代码。Toolbox还为选择转移学习项目选择合适的网络提供指导。

哪种模式最适合你的迁移学习申请?

许多转移学习模型可供选择,记住所涉及的权衡和具体项目的总体目标是很重要的。例如,准确率相对较低的网络可能非常适合用于新的深度学习任务。一种好的方法是尝试各种模型,以找到最适合您的应用程序的模型。

入门的简单模型。通过简单的型号,例如AlexNet,Googlenet,VGG-16和VGG-19,您可以快速迭代并使用不同的数据预处理步骤和培训选项进行实验。一旦您看到的设置良好,您可以尝试更准确的网络以查看是否可以提高结果。

轻量级和计算高效的模型.当部署环境对模型大小施加限制时,SqueezeNet、MobileNet-v2和ShuffleNet是很好的选择。

您可以使用深层网络设计师为了快速评估项目的各种净化模型,更好地了解不同模型架构之间的权衡。

转移学习工作流程

虽然转移学习架构和应用程序具有很好的品种,但大多数转移学习工作流程遵循一个常见的一系列步骤

  1. 选择一个预先训练的模型。入门后,它可以帮助选择一个相对简单的模型。此示例使用Googlenet,一个流行的网络,具有22层深度,已培训以分类1000个对象类别。
  1. 更换最终图层。要重新训练网络对一组新的图像和类进行分类,您需要替换GoogLeNet模型的最后一层。最后的全连接层被修改为包含与新类数量相同的节点数量,以及一个新的分类层,该分类层将根据softmax层计算的概率产生输出。
  • 修改了图层后,最终完全连接的层将指定网络将学习的类的数量,而分类层将决定从可用的输出类别。例如,Googlenet最初受到1000个类别的培训,但通过替换最终图层,您可以重新培训它仅对您感兴趣的对象的五个(或任何其他数字)类别进行分类。
  1. 可以选择冻结重量。您可以通过将这些图层中的学习速率设置为零,冻结网络中的早期层的重量。在培训期间,冻结层的参数未更新,这可以显着加速网络培训。如果新数据集很小,则冻结权重也可以防止网络过度接收到新数据集。
  2. 重新培训模型。再培训将更新网络,以学习和识别与新图像和类别相关的特征。在大多数情况下,再培训比从头开始培训模型需要更少的数据。
  3. 预测和评估网络的准确性。检测到模型后,您可以对新图像进行分类并评估网络执行程度。

    从划伤或转移学习训练?

    深度学习的两个常用方法正在从头开始和转移学习培训模型。

    对于从划痕开发和培训模型,更好地为无法使用预先存在的模型的高度特定任务工作。这种方法的缺点是它通常需要大量数据来产生准确的结果。If you’re performing text analysis, for example, and you don’t have access to a pretrained model for a text analysis but you do have access to a large number of data samples, then developing a model from scratch is likely the best approach.

    迁移学习对诸如对象识别,各种流行佩带的模型存在。例如,如果您需要对花卉图像进行分类,而您的花卉图像数量有限,您可以从AlexNet网络转移权重和层,替换最终的分类层,并使用您拥有的图像重新训练您的模型。

转移学习工作流程:装载网络,替换图层,列车网络,评估准确性。

在这种情况下,迁移学习有可能在更短的时间内实现更高的模型精度。

比较从头划伤和转移学习的网络性能(准确性)。

转移学习的互动方法

使用深网络设计师您可以交互地完成整个转移学习工作流程- 包括导入预磨模的模型,修改最终层,并使用新数据重新检测网络 - 很少或没有编码。

深度网络设计器是一种点击型工具,用于在MATLAB中创建或修改深神经网络。此视频显示如何在传输学习工作流中使用该应用程序。

有关更多信息,请参见深度学习工具箱计算机Vision Toolbox™


了解有关转移学习的更多信息

另请参阅:深度学习卷积神经网络GPU编码器人工智能生物医学信号处理