使用无意义的类预训练一个模型重要吗?

Is it important to pre-train a model by using meaningless classes?

如果我想训练一个可以检测图片中 5 类 的对象检测模型,在像 coco(80 类对象)这样的大型数据集中预训练这个模型是否重要,或者只拿5类coco来预训练这个模型(假设这5类可以在coco中找到)?

如果你要检测的5类已经在MS-COCO数据集中,有两种可能的选择

  1. 使用在 MS-COCO 数据集上预训练的现有对象检测模型。如果检测结果满意,很好,可以继续使用
  2. 如果没有,您可以根据包含您感兴趣的 类 的数据微调模型,基本上使用预训练的 MS-COCO 权重作为起点,根据包含这 5 类(数据越多越好)

现在,如果您希望检测的 类 不在原始 MS-COCO 数据集中,使用预训练的 MS-COCO 权重(在 80 类 即使它们与你的不相关)在早期的卷积层中,然后在你的数据集上训练网络的检测层和更深层。这是因为网络学习到的低级特征(如边缘、斑点等)大部分 类 都是通用的,并且会大大加快训练速度