更有效的多标签分类方法?
More efficient way to do multi-label classification?
假设您有一个常规的多重class class判断图像是否包含狗、猫或鸟。这是一个相对微不足道的(给定足够的数据)来解决。
如果您想在单个图像中组合狗、猫或鸟,这将是一个多标签问题。
对于少量可能的单个元素,创建包含所有可能组合的数据集并教神经网络识别组合似乎很容易。但是,如果您有一个大型数据集,其中可能包含 50 种可能的动物,并且单张图像中有 5 种以上的动物怎么办?
到那时会有太多的组合,甚至没有考虑到每个组合需要多张图片的事实。
有没有一种方法可以让 NN 学习,或许只识别每只动物,然后学习如何识别多只动物,因为它知道如何识别一只动物?
一个人可以训练 50 个神经网络,每只动物一个。
但通常在单个网络中,当每张图像只有一只动物时,您会使用 softmax 作为神经网络的最后一层。
在您描述的情况下,您只需替换最后一个 softmax(例如,用一个带有 sigmoid 激活函数的密集层),使您的网络能够独立预测每只动物的概率。
假设您有一个常规的多重class class判断图像是否包含狗、猫或鸟。这是一个相对微不足道的(给定足够的数据)来解决。
如果您想在单个图像中组合狗、猫或鸟,这将是一个多标签问题。
对于少量可能的单个元素,创建包含所有可能组合的数据集并教神经网络识别组合似乎很容易。但是,如果您有一个大型数据集,其中可能包含 50 种可能的动物,并且单张图像中有 5 种以上的动物怎么办?
到那时会有太多的组合,甚至没有考虑到每个组合需要多张图片的事实。
有没有一种方法可以让 NN 学习,或许只识别每只动物,然后学习如何识别多只动物,因为它知道如何识别一只动物?
一个人可以训练 50 个神经网络,每只动物一个。
但通常在单个网络中,当每张图像只有一只动物时,您会使用 softmax 作为神经网络的最后一层。
在您描述的情况下,您只需替换最后一个 softmax(例如,用一个带有 sigmoid 激活函数的密集层),使您的网络能够独立预测每只动物的概率。