离散输出的多类分类:选择哪种损失函数和激活?

2024-05-19 10:54:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个多类分类问题,使用Keras序列模型。在我的数据集中,输出类具有以下值之一: (1, 2, 3, 4, 5)

是的,我已经尝试过对输出进行热编码,并使用categorical_crossentropy作为丢失函数,在输出层中使用softmax

然而,我认为softmax和分类交叉熵在我的案例中不是正确的选择。在我的数据集中,输出类具有某种“离散性”(或规模)。类1是“最差的”,类5是“最好的”

假设在一个特定的输入上,模型预测2,而真实的类是1,那么当模型预测类5,真实的类是1时,它是一个更好的预测

我希望损失函数将这些“小错误”考虑在内,而不是以相同的方式处理所有错误

总之,我想知道对于给定的问题,在损失函数和输出层激活方面,我的选择是什么。


Tags: 数据函数模型编码错误分类序列交叉
1条回答
网友
1楼 · 发布于 2024-05-19 10:54:14

根据您的要求,我强烈建议您创建损失函数。 通过这种方式,您可以按照您希望的方式处理结果。基本上,在创建损失函数时,您只需要y\u predy\u true,然后将其作为张量返回

还值得注意的是,在创建任何自定义损失时,优化器只允许使用Tensor Flow后端操作,因为使用Numpy等库将导致编译错误

以下是在您的模型中进行自定义训练时使用Tensor Flow中的文档的link

相关问题 更多 >

    热门问题