我正在研究一种图像类增量分类器方法,使用 CNN 作为特征提取器和全连接块进行分类。
首先,我对 VGG 训练网络进行了微调以完成新任务。一旦网络针对新任务进行了训练,我就会为每个类别存储一些示例,以避免忘记新类别何时可用。
当某些类可用时,我必须计算示例的每个输出,包括新类的示例。现在,向旧类的输出添加零,并在新类输出上添加与每个新类相对应的标签,我有了新标签,即:
如果有 3 个新班级进入……
旧类类型输出:[0.1, 0.05, 0.79, ..., 0 0 0]
新类类型输出:[0.1, 0.09, 0.3, 0.4, ..., 1 0 0]
**最后的输出对应于类别。
我的问题是,如何更改自定义损失函数来训练新课程?
我想要实现的损失函数定义为:
![loss function](https://i.stack.imgur.com/0kImf.png)
其中蒸馏损失对应于旧类别的输出以避免遗忘,分类损失对应于新类别。
如果您能给我提供一个更改 keras 中损失函数的代码示例,那就太好了。
谢谢!!!!!