我训练了一个深度学习模型,将给定的图像分为三类。现在我想向我的模型再添加一个类。我试图查看"在线学习",但它似乎针对现有课程的新数据进行了训练。我是否需要在所有四个类上再次训练我的整个模型,或者有什么方法可以在新类上训练我的模型?
您可能在架构末尾的 3 个神经元密集层之后使用了 softmax 来分类为 3 类。添加一个类将导致在 4 个神经元密集层上执行 softmax,因此无法在当前图形中容纳具有冻结权重的额外神经元,基本上您正在修改图形,因此您必须从头开始训练整个模型
-----或-----
一种方法是加载模型并删除最后一层,将其更改为 4 个神经元并再次训练网络!这基本上会从头开始训练最后一层的权重。我认为无论如何都无法在添加新类时保持这些(最后一层的权重(权重不变.
您必须删除最终的全连接层,冻结特征提取层中的权重,添加一个具有四个输出的新全连接层,并使用原始三个类和新的第四个类的图像重新训练模型。
我试图查看"在线学习",但它似乎针对现有课程的新数据进行了训练。
在线学习是一个术语,用于指代在训练时采用连续或顺序输入数据流的模型,与离线学习(也称为批量学习(相反,离线学习(也称为批量学习(在静态预定义数据集上预先训练模型。
持续学习(也称为增量、连续、终身学习(是指在在线学习环境中工作的 ML 的一个分支,其中模型旨在学习新任务,同时保持历史任务的性能。它可以应用于多种问题范式(包括类增量学习,其中每个新任务为不断扩展的超分类问题提供新的类标签(。
我是否需要在所有四个类上再次训练我的整个模型,或者有什么方法可以在新类上训练我的模型?
在更新的数据集上天真地重新训练模型确实是一种解决方案。持续学习旨在解决无法访问历史数据(即原始 3 类(的情况,或者在越来越大的数据集上重新训练不切实际的情况(出于效率、空间、隐私等问题(。已经提出了使用不同底层架构的多个此类模型,但几乎所有示例都专门处理图像分类问题。
相关问题:
- 如何使用现有和较新的类微调 keras 模型?