联系我们

AI 101.

什么是转移学习?

mm

更新

 on

什么是转移学习?

练习时机器学习,培训模型可能需要很长时间。从头开始创建模型架构,培训模型,然后调整模型是一种大量的时间和精力。培训机器学习模型的更有效的方法是使用已经定义的架构,可能具有已经计算的权重。这是背后的主要想法转移学习,采取已经使用和重新展开新任务的模型。

在使用可以使用转移学习的不同方式之前,让我们花点时间理解为什么转移学习是一种强大而有用的技术。

解决深层学习问题

当你试图解决 深度学习 问题,如构建图像分类器,您必须创建模型架构,然后在数据上培训模型。培训模型分类器涉及调整网络的权重,该过程可能需要几个小时甚至几天,具体取决于模型和数据集的复杂性。培训时间将按照数据集的大小和模型架构的复杂性进行缩放。

如果该模型未达到任务所需的精度,则可能需要进行模型的调整,然后需要培训模型。这意味着可以找到更多的培训,直到可以找到最佳架构,训练长度和数据集分区。当您考虑彼此的分类器必须彼此对齐有多少变量,它使机器学习工程师始终寻找更容易,更有效地培训和实现模型的方法。因此,创建了转移学习技术。

设计和测试模型后,如果模型证明有用,可以保存并重新使用以进行类似的问题。

转移学习类型

一般来说,有两种不同的各种转移学习:从头开始开发模型,使用预先训练的模型。

从划痕开发模型时,您需要创建一种能够解释您的培训数据和从中提取模式的模型架构。在第一次培训模型后,您可能需要更改它,以便从模型中获得最佳性能。然后,您可以保存模型架构并将其用作将在类似任务上使用的模型的起点。

在第二个条件下–使用预先训练的模型–您只需选择一个预先训练的模型即可使用。许多大学和研究团队将使其模型的规格用于一般使用。可以随着权重下载模型的架构。

在进行转移学习时,整个模型架构和权重可以用于手头的任务,或者只能使用模型的某些部分/层。仅使用一些预先训练的模型和培训模型的其余部分被称为微调。

FineTuning网络

FineTuning网络描述了培训网络中的一些层的过程。如果新的训练数据集与用于训练原始模型的数据集是多的,则可以使用许多相同的权重。

网络中应该被引入并培训的网络中的图层数应按照新数据集的大小进行缩放。如果正在进行培训的数据集很小,则更好地练习大多数层,因为它们是并训练最终的几层。这是为了防止网络过度装备。或者,可以去除预训练网络的最终层,并加入新层,然后训练。相比之下,如果数据集是一个大型数据集,则可能比原始数据集大得多,因此应恢复整个网络。使用网络为固定特征提取器,大多数网络可用于提取功能,同时只有网络的最终层可以是未通知和培训的。

当您在FineTuning网络时,请记住,Grancnet的早期图层是包含表示图像更通用功能的信息。这些是边缘和颜色的特点。相比之下,GrandNet的稍后层保持了更具体的细节,该详细信息对于在数据集中的数据集中保持的单个类更初是最初培训的。如果您在与原始数据集完全不同的数据集上培训模型,则可能希望使用模型的初始图层来提取功能,并刚重新培训模型的其余部分。

转移学习例子

转移学习的最常见应用可能是那些使用图像数据作为输入的应用。这些通常是预测/分类任务。方式卷积神经网络解释图像数据将自身带到模型的重用方面,因为卷积层通常区分非常相似的特征。共同传输学习问题的一个例子是想象成1000任务,一个全部数据集满是1000种不同的对象。开发在此数据集上实现高性能的模型的公司经常在许可证下发布他们的模型,让其他人重复使用它们。由此过程产生的一些模型包括Microsoft Reset Model.,google inception模型,以及牛津vgg模型 团体。

Blogger和Programmer有专业的机器学习 深度学习 话题。丹尼尔希望帮助别人利用AI的力量来社交。