Tensorflow 在多标签图像分类任务中,哪个损失函数能很好地收敛?

Tensorflow 在多标签图像分类任务中,哪个损失函数能很好地收敛?,tensorflow,keras,deep-learning,computer-vision,conv-neural-network,Tensorflow,Keras,Deep Learning,Computer Vision,Conv Neural Network,我用sigmoid作为输出激活函数,用binary\u交叉熵作为损失函数,训练了一个多标签多类图像分类器。 验证的准确度曲线显示出上下波动,而损失曲线在几个时期显示出奇怪(非常高)的值 以下是微调(最后一个块)VGG19模型的精度和损耗曲线,该模型具有Dropout和BatchNormalization 微调(最后一块)VGG19模型的精度和损耗曲线,带有辍学、批量标准化和数据增强 我用1800个训练图像(5个标签)和100个验证图像训练分类器。我使用的优化器是SGD((lr=0.001

我用
sigmoid
作为输出激活函数,用
binary\u交叉熵
作为损失函数,训练了一个多标签多类图像分类器。 验证的准确度曲线显示出上下波动,而损失曲线在几个时期显示出奇怪(非常高)的值

以下是微调(最后一个块)
VGG19
模型的精度和损耗曲线,该模型具有
Dropout
BatchNormalization


微调(最后一块)
VGG19
模型的精度和损耗曲线,带有
辍学
批量标准化
数据增强


我用1800个训练图像(5个标签)和100个验证图像训练分类器。我使用的优化器是
SGD((lr=0.001,momentum=0.99)
。 有人能解释为什么某些EOCH的损失曲线变得如此奇怪或高?
我应该使用不同的损失函数吗?如果是,哪一个?

不用担心-一切都很好。你的损失曲线没有说太多,特别是“损失曲线中的尖峰”。它们是完全允许的,你的模型还在训练中。你应该看看你的准确度曲线,我认为这一曲线上升得很正常。

谢谢你@Frederik的回答。我仍然很满意“我无法理解,为什么损失曲线中会出现这些尖峰。这个模型预测81/100的标签都是正确的,汉明损失约为6%?为什么?这是巧合。模型在训练时间的那一刻的权重很好地符合之前看到的训练数据,但显然它在测试数据上失败了很多。这仍有待学习。”ing。想象一个孩子试图学习一些东西。比如说,经过一点练习,他认为自己学会了一条捷径来完成任务,后来才发现这只是一条捷径,而且并不总是有效的,所以他学会了正确的完成任务的方法。谢谢@Frederik,我明白了。