🐳微调
2021-11-30
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
 
假如想识别图片中不同类型的椅子,然后向用户推荐购买链接。
一种可能的方法是首先识别100把普通椅子,为每把椅子拍摄1000张不同角度的图像,然后在收集的图像数据集上训练一个分类模型。 尽管这个椅子数据集可能大于Fashion-MNIST数据集,但实例数量仍然不到ImageNet中的十分之一。 适合ImageNet的复杂模型可能会在这个椅子数据集上过拟合。 此外,由于训练样本数量有限,训练模型的准确性可能无法满足实际要求。为了解决上述问题,一个显而易见的解决方案是收集更多的数据,但是收集和标记数据可能需要大量的时间和金钱(为了收集ImageNet数据集,研究人员花费了数百万美元的研究资金)。 尽管目前的数据收集成本已大幅降低,但这一成本仍不能忽视。
另一种解决方案是应用迁移学习(transfer learning)将从源数据集学到的知识迁移到目标数据集。 尽管ImageNet数据集中的大多数图像与椅子无关,但在此数据集上训练的模型可能会提取更通用的图像特征,这有助于识别边缘、纹理、形状和对象组合。 这些类似的特征也可能有效地识别椅子。
 

步骤

微调包括以下四个步骤:
  1. 在源数据集(例如ImageNet数据集)上预训练神经网络模型,即源模型
  1. 创建一个新的神经网络模型,即目标模型。这将复制源模型上的所有模型设计及其参数(输出层除外)。假定这些模型参数包含从源数据集中学到的知识,这些知识也将适用于目标数据集。还假设源模型的输出层与源数据集的标签密切相关;因此不在目标模型中使用该层。
  1. 向目标模型添加输出层,其输出数是目标数据集中的类别数,然后随机初始化该层的模型参数
  1. 在目标数据集(如椅子数据集)上训练目标模型。输出层将从头开始进行训练,而所有其他层的参数将根据源模型的参数进行微调。
notion image
当目标数据集比源数据集小得多时,微调有助于提高模型的泛化能力
 
 
 

热狗识别

这个小型数据集包含数千张包含热狗和不包含热狗的图像,使用微调模型来识别图像中是否包含热狗。
我们将在一个小型数据集上微调ResNet模型,该模型已在ImageNet数据集上进行了预训练
notion image
notion image
notion image
微调模型往往表现更好,因为它的初始参数值更有效
 
  • PyTorch
  • DenseNet 稠密连接网络目标检测和边界框
    目录