多类目标检测:N X(1对所有)或1 X(N对所有)?

时间:2014-09-15 18:34:24

标签: neural-network classification deep-learning

我正在使用神经网络进行多类分类。假设我有10个目标类和一个null(非上述目标)。我为每个目标单独训练一个神经网络是否更好,每个网络有两个输出神经元(目标,非目标),因此在上述情况下我需要10个独立的神经网络或者有11个输出的神经网络(10个目标) ,另外1个)?我看到人们在不同的论文中使用这两种方法中的任何一种但没有解释,但是对于每个目标类使用单独的网络是否有理论上的优势?计算开销成本是否值得替代方法的收益和收益?

提前致谢!

P.S。 (1)当然,在任何一种方法中,训练样本的分布严重偏向非目标("其他")类,(2)NN的输出层假定具有softmax激活。

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这样的问题:

使用单独的类输出训练单个网络

这种方法可能是最快的训练和设计,并且会有许多输出等于所需的类输出数量。另一方面,您需要确保训练集中的每个类都有足够的大小写,以防止神经网络偏向某些类而不是其他类。此外,网络不会像下一个案例那样专门用于个别类。

训练专门针对特定课程的网络

在这种情况下,N神经网络将接受可能半真半假的训练。将使用测试数据和基于每个单独网络的输出选择的类来评估每个神经网络。大约有N次训练以及训练数据的预处理,但也有可能总体上提高准确性。计算成本是否合理,精确度的提高取决于设计师,但您通常应该看到改进。

建立一个模块化的神经网络,训练一组密切相关的课程

在这里,您可以将10个组分成两组,每组5个,具体取决于哪个神经网络被认为是最适合测试用例的。在这里,您可以训练一个网络来分配专家神经网络,并训练另外两个网络来估计特定的类别。这是上述两者之间的中间点。

还有许多其他方法也可以发挥作用,但这些是基于上述问题浮现在脑海中的三种方法。