深度学习分类中如何处理类之间的相关性?

时间:2019-10-30 15:19:14

标签: tensorflow keras deep-learning classification

我不确定如何处理深度学习分类网络中某些类别相互关联的情况。

例如,在对图像进行分类时,如果输入是狗的照片,而输出标签是猫,则损失应低于输出标签是飞机或桥梁的损失。我想知道CS人士以前如何处理这个问题,以及是否有我可以参考的文件。谢谢!

1 个答案:

答案 0 :(得分:2)

tl; dr:
你不能/不应该

长版:
如果对于您的特定情况,您可以找到一个度量来确定各个类之间的距离,例如:

d[i,j] = f(L[i], L[j])

(其中d[i,j]是带有标签L[i]L[j]的类之间的距离,而f是这两个类/标签的函数),则可以将其合并在您的损失函数中,使得d较大时损失会更大,而d较小时损失会小。

但是,在您的猫/狗/飞机/桥梁/ ...示例中,我无法相信有正确的方法来确定狗/猫或狗/桥梁等之间的距离。如果您确实想要,您当然可以手动确定,例如,如果您的图像包含猫,则预测桥梁比预测狗差3倍:

d[cat,dog]=1
d[cat,bridge]=3

但是我完全不会推荐这个。

我什么时候推荐这个?如果您有许多类,并且有一个相关矩阵可以正确量化所有类之间的相关性