如何在深度学习中将新的 class 添加到现有的 classifier?
How to add a new class to an existing classifier in deep learning?
我训练了一个深度学习模型来class将给定的图像分成三个classes。现在我想在我的模型中再添加一个 class。我试图查看“在线学习”,但它似乎是在为现有的 classes 训练新数据。我是否需要在所有四个 class 上再次训练我的整个模型,或者有什么方法可以在新的 class 上训练我的模型?
您可能在架构末端的 3 个神经元密集层之后使用了 softmax class化为 3 classes。添加 class 将导致在 4 个神经元密集层上执行 softmax,因此无法在当前图形中使用冻结权重来容纳额外的神经元,基本上你正在修改图形,因此你将拥有从头开始训练整个模型
-----或-----
一种方法是加载模型并删除最后一层,将其更改为 4 个神经元并再次训练网络!这基本上会从头开始训练最后一层的权重。我认为在添加新的 class 时无论如何都无法保持这些(最后一层的权重)权重不变。
您必须删除最终的全连接层,冻结特征提取层中的权重,添加一个新的具有四个输出的全连接层并使用原始三个的图像重新训练模型class es 和新的第四个 class.
I tried to check out "Online learning", but it seems to train on new data for existing classes.
在线学习 是一个术语,用于指代在训练时采用连续或顺序输入数据流的模型,与离线学习(也称为批量学习),其中模型在静态预定义数据集上 pre-trained。
持续学习(也称为增量、连续、终身学习)是指在在线学习环境中工作的 ML 分支,其中模型旨在学习新任务,同时保持性能在历史任务上。它可以应用于多个问题范式(包括 Class-incremental 学习,其中每个新任务都为不断扩展的 super-classification 问题提供新的 class 标签)。
Do I need to train my whole model again on all four classes or is there any way I can just train my model on new class?
天真地re-training更新数据集上的模型确实是一个解决方案。 Continual learning 试图解决无法访问历史数据(即原始 3 classes)的情况,或者在越来越大的数据集上进行再训练不切实际(为了提高效率,space,隐私等问题)。已经提出了多个使用不同底层架构的此类模型,但几乎所有示例都专门处理图像 class化问题。
相关问题:
- How to fine-tune a keras model with existing plus newer classes?
我训练了一个深度学习模型来class将给定的图像分成三个classes。现在我想在我的模型中再添加一个 class。我试图查看“在线学习”,但它似乎是在为现有的 classes 训练新数据。我是否需要在所有四个 class 上再次训练我的整个模型,或者有什么方法可以在新的 class 上训练我的模型?
您可能在架构末端的 3 个神经元密集层之后使用了 softmax class化为 3 classes。添加 class 将导致在 4 个神经元密集层上执行 softmax,因此无法在当前图形中使用冻结权重来容纳额外的神经元,基本上你正在修改图形,因此你将拥有从头开始训练整个模型
-----或-----
一种方法是加载模型并删除最后一层,将其更改为 4 个神经元并再次训练网络!这基本上会从头开始训练最后一层的权重。我认为在添加新的 class 时无论如何都无法保持这些(最后一层的权重)权重不变。
您必须删除最终的全连接层,冻结特征提取层中的权重,添加一个新的具有四个输出的全连接层并使用原始三个的图像重新训练模型class es 和新的第四个 class.
I tried to check out "Online learning", but it seems to train on new data for existing classes.
在线学习 是一个术语,用于指代在训练时采用连续或顺序输入数据流的模型,与离线学习(也称为批量学习),其中模型在静态预定义数据集上 pre-trained。
持续学习(也称为增量、连续、终身学习)是指在在线学习环境中工作的 ML 分支,其中模型旨在学习新任务,同时保持性能在历史任务上。它可以应用于多个问题范式(包括 Class-incremental 学习,其中每个新任务都为不断扩展的 super-classification 问题提供新的 class 标签)。
Do I need to train my whole model again on all four classes or is there any way I can just train my model on new class?
天真地re-training更新数据集上的模型确实是一个解决方案。 Continual learning 试图解决无法访问历史数据(即原始 3 classes)的情况,或者在越来越大的数据集上进行再训练不切实际(为了提高效率,space,隐私等问题)。已经提出了多个使用不同底层架构的此类模型,但几乎所有示例都专门处理图像 class化问题。
相关问题:
- How to fine-tune a keras model with existing plus newer classes?