首页人工智能技术资讯正文

微调模型完成图像的分类任务【黑马人工智能开发】

更新时间:2022-04-07 来源:黑马程序员 浏览量:

如何在只有6万张图像的MNIST训练数据集上训练模型?学术界当下使用最广泛的大规模图像数据集ImageNet,它有超过1,000万的图像和1,000类的物体。然而,我们平常接触到数据集的规模通常在这两者之间。假设我们想从图像中识别出不同种类的椅子,然后将购买链接推荐给用户。一种可能的方法是先找出100种常见的椅子,为每种椅子拍摄1,000张不同角度的图像,然后在收集到的图像数据集上训练一个分类模型。另外一种解决办法是应用迁移学习(transfer learning),将从源数据集学到的知识迁移到目标数据集上。例如,虽然ImageNet数据集的图像大多跟椅子无关,但在该数据集上训练的模型可以抽取较通用的图像特征,从而能够帮助识别边缘、纹理、形状和物体组成等。这些类似的特征对于识别椅子也可能同样有效。

微调由以下4步构成。

1.在源数据集(如ImageNet数据集)上预训练一个神经网络模型,即源模型。

2.创建一个新的神经网络模型,即目标模型。它复制了源模型上除了输出层外的所有模型设计及其参数。我们假设这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。我们还假设源模型的输出层跟源数据集的标签紧密相关,因此在目标模型中不予采用。

3.为目标模型添加一个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。

4.在目标数据集(如椅子数据集)上训练目标模型。我们将从头训练输出层,而其余层的参数都是基于源模型的参数微调得到的。

1649309670295_微调模型.png


当目标数据集远小于源数据集时,微调有助于提升模型的泛化能力。






猜你喜欢:

tf.keras怎样实现深度学习?

Numpy基础操作:数组之间形状相互转换

SIFT算法原理:SIFT算法详细介绍

为什么CNN对像素级别的分类很难?

黑马程序员Ai人工智能开发培训

分享到:
在线咨询 我要报名
和我们在线交谈!