联系我们

AI 101

什么是转学?

mm

更新

 on

什么是转学?

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

在深入研究可以使用转移学习的各种方式之前,让我们花一点时间来理解为什么转移学习是一种如此强大和有用的技术。

解决深度学习问题

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

如果模型无法达到任务所需的精度,则可能需要对模型进行调整,然后需要对模型进行重新训练。这意味着要花更多的时间进行培训,直到找到最佳的体系结构,培训长度和数据集分区。当您考虑要使一个分类器有用时必须相互对齐多少个变量时,有意义的是,机器学习工程师一直在寻找更轻松,更有效的方法来训练和实现模型。因此,创建了迁移学习技术。

在设计和测试模型之后,如果该模型被证明是有用的,则可以将其保存并以后再用于类似问题。

转移学习的类型

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

从头开始开发模型时,您需要创建一个模型架构,该架构能够解释您的训练数据并从中提取模式。首次训练模型后,您可能需要对其进行更改,以便从模型中获得最佳性能。然后,您可以保存模型体系结构,并将其用作将用于类似任务的模型的起点。

在第二种情况下–使用预先训练的模型–您只需要选择一个预先训练的模型即可使用。许多大学和研究团队都会将其模型规格提供给通用。该模型的体系结构可以与权重一起下载。

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

微调网络

对网络进行微调描述了仅训练网络中某些层的过程。如果新的训练数据集与用于训练原始模型的数据集非常相似,则可以使用许多相同的权重。

网络中应取消冻结和重新训练的层数应根据新数据集的大小扩展。如果要对其进行训练的数据集很小,则最好保留大部分图层,而只训练最后几层。这是为了防止网络过度安装。或者,可以删除预训练网络的最后一层,然后添加新层,然后对其进行训练。相反,如果数据集是一个较大的数据集(可能大于原始数据集),则应重新训练整个网络。将网络用作 固定特征提取器,大多数网络都可以用来提取要素,而网络的最后一层可以被冻结和训练。

在微调网络时,请记住,ConvNet的较早层是包含代表图像更一般特征的信息的层。这些是边缘和颜色之类的功能。相比之下,ConvNet的后续层保留的细节更特定于最初训练模型的数据集中包含的各个类。如果您要在与原始数据集截然不同的数据集上训练模型,则可能需要使用模型的初始图层来提取特征,而只是重新训练模型的其余部分。

转移学习实例

转移学习的最常见应用可能是那些使用图像数据作为输入的应用。这些通常是预测/分类任务。道路 卷积神经网络 解释图像数据有助于重用模型的各个方面,因为卷积层通常会区分非常​​相似的特征。常见的迁移学习问题的一个示例是ImageNet 1000任务,该任务是由1000个不同类的对象组成的庞大数据集。开发能够在此数据集上实现高性能的模型的公司通常会根据允许他人重用它们的许可发布其模型。此过程产生的一些模型包括 Microsoft ResNet模型,Google Inception Model和 牛津VGG模型 组。

专门从事以下工作的Blogger和程序员 机器学习 深度学习 话题。 Daniel希望帮助他人将AI的力量用于社会公益。