python - 我想为 3-best 分类定义损失函数
问题描述
我正在设计一个分类模型。
我有一个问题,有很多类别具有相似的功能。我认为最好的选择是重新生成类别层次结构,但这些都是固定的。
所以,我专注于 3-best accuracy,而不是 1-best accuracy。
我想为 3-best 精度定义一个损失函数。
我不在乎位置 1 - 3 的答案在哪里。
有什么好的损失函数吗?我该如何定义呢?
解决方案
您可以keras.metrics.top_k_categorical_accuracy
用于计算精度。
但这是准确度指标。到目前为止,我认为 TensorFlow 或 Keras 中没有任何内置的 top_k 损失函数。
损失函数应该是可微的,以便与基于梯度的学习方法一起工作。虽然top_k
不是可微函数。就像准确度指标一样。
因此,它可以用作准确度指标,但不能用作学习目标。所以你不会找到任何内置的方法来解决这个问题,但是还有其他研究论文旨在解决这个问题。您可能想看看Learning with Average Top-k Loss and Smooth Loss Functions for Deep Top-k Classification。
推荐阅读
- wordpress - 在 wodfpress 的 RSS 提要中显示修改日期
- batch-file - 批处理文件:同时启动两个进程,然后在进程 2 完成后终止进程 1
- javascript - 时间流分页不适用于nodejs
- cakephp - 如何将普通查询转换为 cakephp 标准
- google-apps-script - 从另一个单元格中减去一个单元格中的值的脚本
- list - 如何在列表中找到比前一个值增加不到 10% 的值
- qt - 连接自定义滚动条和 Flickable
- php - 为什么这个 PDO 准备好的语句不更新记录?
- django - 导航到不同的页面而不是 Ajax 调用
- asp.net-core - Hangfire - DisableConcurrentExecution - 如果在方法参数中传递相同的值,则防止并发执行