Python 如何在深度学习中向现有分类器添加新类?

Python 如何在深度学习中向现有分类器添加新类?,python,keras,deep-learning,multiclass-classification,online-machine-learning,Python,Keras,Deep Learning,Multiclass Classification,Online Machine Learning,我训练了一个深度学习模型,将给定的图像分为三类。现在我想在我的模型中再添加一个类。我试图查看“在线学习”,但它似乎是针对现有课程的新数据进行培训。我是否需要在所有四个类上再次训练我的整个模型,或者是否有任何方法可以在新类上训练我的模型?您可能已经在体系结构末尾的3个神经元密集层之后使用了softmax将模型分为3个类。添加一个类将导致在4个神经元密集层上执行softmax,因此无法在当前图中使用冻结的权重来容纳额外的神经元,基本上您是在修改图,因此您必须从头开始训练整个模型 -----或----

我训练了一个深度学习模型,将给定的图像分为三类。现在我想在我的模型中再添加一个类。我试图查看“在线学习”,但它似乎是针对现有课程的新数据进行培训。我是否需要在所有四个类上再次训练我的整个模型,或者是否有任何方法可以在新类上训练我的模型?

您可能已经在体系结构末尾的3个神经元密集层之后使用了softmax将模型分为3个类。添加一个类将导致在4个神经元密集层上执行softmax,因此无法在当前图中使用冻结的权重来容纳额外的神经元,基本上您是在修改图,因此您必须从头开始训练整个模型

-----或-----


一种方法是加载模型并移除最后一层,将其更改为4个神经元并再次训练网络!这将基本上从头开始训练最后一层的权重。我认为在添加新类时,无论如何都无法保持这些(最后一层的权重)权重不变。

您必须删除最后一个完全连接的层,冻结特征提取层中的权重,添加一个新的具有四个输出的完全连接层,并使用原始三个类和新的第四个类的图像重新训练模型

我试图查看“在线学习”,但它似乎是针对现有课程的新数据进行培训

在线学习是一个术语,用于指在训练时接受连续或连续输入数据流的模型,而离线学习(也称为批量学习),其中模型在静态预定义数据集上预训练

持续学习(也称为增量、持续、终身学习)是指在线学习环境下的ML分支,模型旨在学习新任务,同时保持历史任务的性能。它可以应用于多个问题范例(包括类增量学习,其中每个新任务为不断扩展的超级分类问题提供新的类标签)

我是否需要在所有四节课上再次训练我的整个模型,还是有任何方法可以在新课上训练我的模型

在更新的数据集上天真地重新训练模型确实是一个解决方案。寻求解决无法访问历史数据(即原始3类)的情况,或无法在越来越大的数据集上进行再培训的情况(出于效率、空间、隐私等考虑)。已经提出了使用不同底层架构的多个这样的模型,但几乎所有的示例都专门处理图像分类问题


相关问题:


现在我了解了如何更新到网络以对新类进行分类。。。我想我可以使用迁移学习,而不是从头开始训练我的模型(随机权重初始化)。谢谢你的评论。是的,你可以初始化最后一层的权重,保持前一层的权重不变。干杯