1

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

提前致谢!

PS (1) 当然,在任何一种方法中,训练样本的分布都严重偏向非目标(“其他”)类,并且 (2) 假设 NN 的输出层具有 softmax 激活。

4

1 回答 1

0

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

训练具有单独类输出的单个网络

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

训练专门从事特定课程的网络

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

构建一个模块化神经网络,在密切相关的类组上进行训练

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

还有许多其他方法也可以工作,但这些是基于上面概述的问题想到的主要三种方法。

于 2014-09-16T01:18:28.397 回答