softmax损失如何在多任务学习中起作用

时间:2019-05-25 18:11:58

标签: keras neural-network deep-learning multitasking softmax

在研究用于多任务学习的损失函数时,我有些失落。

例如,在仅执行一项任务的二进制分类中(例如,将电子邮件分类为垃圾邮件),使用softmax激活+ softmax_crossentropy损失函数,每个标签(垃圾邮件/非垃圾邮件)的概率总和为1。这如何适用于多任务学习?

让我们考虑5个任务的情况,每个任务都是一个二进制问题。 softmax函数是独立应用于每个任务的吗(例如,对于任务1:标签1的概率= 0.7和标签2 = 0.3;对于任务2:标签1的概率= 0.2和标签2 = 0.8依此类推),还是考虑了(例如,如果任务1的标签1的概率为0.80,则所有其他任务的所有其他标签的总和为0.20)?

2 个答案:

答案 0 :(得分:0)

从根本上来说,在多任务(我想说这不是MULTI-LABEL分类)分类的情况下,针对不同任务计算的损失函数可能会有所不同。 例如,任务1可以是二进制分类。任务2可以是下一句的预测,依此类推。因此,由于不同的任务涉及学习不同的损失函数,因此您可以将假设归因于假设的第一部分,即,在学习第一任务时,Softmax仅应用于第一任务的标签。

答案 1 :(得分:0)

一些注意事项:

  1. 细化:不应该将softmax用于二进制分类,而应使用规则的S型(这是softmax的2d减小),然后是对数损失(相同)。

    < / li>
  2. 对于涉及分类的多任务,您可能会使用多个二进制分类。假设您有一张图片,并且希望输出显示其中是否有行人,汽车和道路标志。这不是多类分类,因为图像可以包含上述所有内容。因此,您可以将输出定义为3个节点,然后为每个节点计算二进制分类。这是在一个多任务NN中完成的,而不是运行3个不同的NN,并假设所有3个分类问题都可以受益于在一个NN中创建的相同潜在层或嵌入。