假设你有一个常规的多类分类任务,要判断一张图片中是否有狗、猫或鸟。这在有足够数据的情况下相对容易解决。
如果你想在一张图片中同时包含狗、猫或鸟的组合,这就变成了一个多标签问题。
对于可能的单个元素数量较少的情况下,创建一个包含所有可能组合的数据集并训练神经网络识别这些组合似乎很容易。但如果你的数据集中有50种可能的动物,并且每张图片中可能包含5种或更多的动物呢?
在这种情况下,组合的数量将非常庞大,更不用说每个组合都需要多张图片了。
有没有一种方法让神经网络学习识别每个单独的动物,然后学会识别多种动物,假设它已经知道如何识别一种动物?
回答:
一种方法是训练50个神经网络,每个动物一个网络。
但通常在单个网络中,当每张图片中只有一种动物时,你会在神经网络的最后一层使用softmax函数。
在你描述的情况下,你可以简单地替换掉最后一层的softmax(例如,用带有sigmoid激活函数的全连接层),这样你的网络就可以独立预测每种动物的概率了。