这里的答案之一存在交叉熵:nolearn for multi-label classification,即:
# custom loss: multi label cross entropy
def multilabel_objective(predictions, targets):
epsilon = np.float32(1.0e-6)
one = np.float32(1.0)
pred = T.clip(predictions, epsilon, one - epsilon)
return -T.sum(targets * T.log(pred) + (one - targets) * T.log(one - pred), axis=1)
为什么这是专门的多标签?它看起来很像单变量(单类)分类的对数损失。我在文献http://arxiv.org/pdf/1312.5419v3.pdf中找到了这一点。