多个神经网络,每个输出一个或多个输出?
我想将输入分类为3种可能性之一。使用3个网络每个输出一个还是一个网络3个输出更好? (即,3个网络,输出长度为3 [1,0,0]
多个神经网络,每个输出一个或多个输出?
的一个热矢量输出0
或1
或1个网络取决于到来的数据是如何复杂分类是否答案改变?
在什么量输出是否有意义分割的网络(如果有的话)?例如,如果我想分成20组,这有区别吗?
我会说这将使使用单一的网络,更有意义多个输出
主要原因是隐藏层(我假设你至少有一个隐藏层)可以被解释为将数据从原始空间(特征空间)转换到更适合任务的不同空间(分类在你的情况)。例如,当训练网络从原始像素识别人脸时,可能会使用隐藏层首先检测简单形状(例如基于像素的小线条),然后使用另一个隐藏层来检测简单形状,如眼睛/鼻子来自第一层的线条等(它可能不完全像这样“干净”,但这是一个易于理解的例子)。
使得网络可以学到改造通常是对分类任务有用,不管具体的例子有什么课。例如,无论实际图像是否包含脸部,能够检测图像中的眼睛是有用的;如果你确实发现了两只眼睛,你可以将它分类为一张脸,否则你将它归类为不是脸。在这两种情况下,你都在寻找眼睛。
因此,通过拆分成多个网络,你可能最终会在所有网络学习非常相似的模式呢。那么你可能已经节省了自己的计算工作,并且只学过一次。
分裂成多个网络的另一个缺点是,你可能会导致您的数据集变得不平衡(或更加不平衡,如果它已经是失衡的)。假设你有三个类,每个类有三分之一的数据集。如果您使用三个网络进行三个二元分类任务,则突然总是有1/3“1”类和2/3“0”类。然后,网络可能会偏向于预测各处的0,因为这三个问题中的每一个都是大多数类别。
注意,这都是基于我的直觉;如果您有时间,最好的解决方案是简单地尝试两种方法并测试!我认为我从未见过有人在实践中使用多个网络进行单一分类任务,所以如果您只有一个方法的时间,我建议去一个网络。
我认为唯一的情况下,将真正意义使用多个网络的是,如果你真的想预测多个不相关的值(或在非强关系至少值)。例如,如果给定图像,你想1)预测图像上是否有狗,2)它是照片还是绘画。那么最好使用两个网络,每个网络具有两个输出,而不是具有四个输出的单个网络。