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

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

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

  • 它使您可以通过重用已经在大型数据集上培训的流行型号来培训具有更少标记数据的模型。
  • 它可以减少培训时间和计算资源。随着转移学习,重量不会从划痕中学到,因为预磨削的模型已经基于先前的学习来学习权重。
  • 您可以利用深度学习研究社区开发的模型架构,包括Googlenet和Reset等流行架构。

转移学习的预磨模模型

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

有许多预制模型可用,每个备用型号都有优势和缺点:

  • 尺寸:模型的所需内存足迹是什么?您的模型尺寸的重要性会根据您打算部署的位置以及如何进行而有所不同。它会在嵌入式硬件或桌面上运行吗?在部署到低存储器系统时,网络的大小尤为重要。
  • 准确性:在再培训之前,模型的表现如何?通常,对ImageNet执行良好的模型,该模型是包含百万图像和千类图像的常用数据集,也可能在新的类似任务上表现良好。但是,在想象中的低精度得分并不一定意味着模型将在所有任务中执行不佳。
  • 预测速度:模型可以在新输入上预测有多快?虽然预测速度可以基于其他深度学习,例如硬件和批量大小,但速度也基于所选模型的架构和模型大小而变化。

比较模型大小,速度和准确性的流行预训练网络。

您可以使用Matlab和Deep Learing Toolbox访问来自最新研究的预净化网络使用单行代码。Toolbox还为选择转移学习项目选择合适的网络提供指导。

哪种型号最适合您的转移学习申请?

许多转移学习模型可供选择,重要的是要记住所涉及的权衡以及您特定项目的整体目标。例如,精度相对较低的网络可能是完全适合新的深度学习任务。一种良好的方法是尝试各种模型来找到最适合您申请的模型。

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

轻量级和计算高效的模型。当部署环境放置型号大小的限制时,Screezenet,MobileNet-V2和Shufflenet都是好的选择。

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

转移学习工作流程

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

  1. 选择佩带的模型。在开始时,选择一个相对简单的模型会有所帮助。这个例子使用了GoogLeNet,这是一个流行的网络,有22层深度,经过训练可以分类1000个对象类别。
  1. 更换最终图层。要重新培训网络以对新的图像和类进行分类,请替换Googlenet模型的最后一层。最终完全连接的层被修改为包含与新类的数量相同数量的节点,以及将基于由Softmax层计算的概率产生输出的新分类层。
  • 修改了图层后,最终完全连接的层将指定新的网络将学习的类数量,并且分类层将确定来自的输出新的可用的输出类别。例如,Googlenet最初受到1000个类别的培训,但通过替换最终图层,您可以重新培训它仅对您感兴趣的对象的五个(或任何其他数字)类别进行分类。
  1. 任选地冻结重量。您可以通过将这些图层中的学习速率设置为零,冻结网络中的早期层的重量。在培训期间,冻结层的参数未更新,这可以显着加速网络培训。如果新数据集很小,则冻结权重也可以防止网络过度接收到新数据集。
  2. 恢复模型。Retringing将更新网络以学习和标识与新图像和类别相关联的功能。在大多数情况下,Retrings需要较少的数据,而不是从头训练模型。
  3. 预测和评估网络准确性。检测到模型后,您可以对新图像进行分类并评估网络执行程度。

    从划伤或转移学习训练?

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

    从无到有地开发和训练一个模型,对于那些无法使用现有模型的高度特定的任务,效果更好。这种方法的缺点是它通常需要大量的数据才能产生准确的结果。例如,如果您正在执行文本分析,并且您无法访问用于文本分析的预训练模型,但是您可以访问大量的数据样本,那么从头开发一个模型可能是最好的方法。

    转移学习对于诸如此类的任务是有用的对象识别,各种流行佩带的模型存在。例如,如果您需要对花图像进行分类并且您有有限数量的花卉图像,则可以从亚历克网网络传输权重和层,替换最终分类层,并用您拥有的图像恢复模型。

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

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

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

转移学习的互动方法

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

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

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


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

也可以看看:深度学习卷积神经网络GPU编码器人工智能