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