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