迁移学习仅针对新类别进行训练,而不影响其他类别的预测

人工智能 卷积神经网络 迁移学习 增量学习
2021-10-29 22:39:48

我基本上对路上的车辆感兴趣。

YoloV3 pytorch给出了不错的结果。

所以我感兴趣的车辆Car Motorbike Bicycle Truckbus我有一个小车辆被检测为truck

由于小型车辆很好地被检测为卡车。我已将这辆小型车辆注释为不同的类别。

不过,我可以添加一个额外的课程,比如第 81 个课程,因为当前使用的 YoloV3 是在 80 个课程上训练的。

第 81 类将包含卡车的重量,我将冻结重量,使其余 80 类保持不变,并且仅对新数据的第 81 类进行训练。

问题是最后一层会根据它所学习的所有类的预测进行调整。

我找不到任何帖子可以真正提到这种保留其他类的预测并使用迁移学习引入新类的方法。

我能得到的最接近的是这篇 使用 keras的重量采样教程SSD 的帖子

它在

选项 1:忽略我们只需要 8 个类的事实

This would work, and it wouldn't even be a terrible option. Since only 8 out of the 80 classes would get trained, the model might get gradually worse at predicting the other 72 clases在第二段。

是否可以在引入新类的同时保留先前预训练模型的预测并使用迁移学习仅针对该类进行训练?

我觉得这是不可能的,想知道你的意见。希望有人能证明我错了。

1个回答

即使您只想为一个新课程重新训练您的模型,您也必须准备好您的训练数据,使其包含您想要预测的所有或大部分课程。大多数时候,网络的最后两层都有要预测的标签数量的数据,这些数据应该始终是您已经训练过的类数和您要为训练添加的类数的总和。