【问题标题】:Multiple neural networks with one output each or one with multiple outputs?多个神经网络,每个都有一个输出还是一个有多个输出?
【发布时间】:2017-05-31 06:07:25
【问题描述】:

我想将输入分类为 3 种可能性之一。使用 3 个每个输出一个输出的网络还是使用 1 个输出 3 个输出的网络更好? (即 3 个输出 01 的网络或 1 个输出长度为 3 的热向量的网络 [1,0,0]

答案是否会根据传入数据的分类复杂程度而变化?

对网络进行分区(如果有的话)有意义的输出量是多少?例如,如果我想分成 20 组,有区别吗?

【问题讨论】:

    标签: machine-learning neural-network artificial-intelligence


    【解决方案1】:

    我会说使用具有多个输出的单个网络会更有意义。

    主要原因是隐藏层(我假设您至少有一个隐藏层)可以解释为将数据从原始空间(特征空间)转换为更适合的不同空间任务(在您的情况下分类)。例如,当训练一个网络从原始像素中识别人脸时,它可能会使用一个隐藏层首先根据像素检测简单的形状,例如细线,然后使用另一个隐藏层来检测简单的形状,例如基于像素的眼睛/鼻子。第一层的线条等等(它可能并不完全像这样“干净”,但这是一个易于理解的例子)。

    网络可以学习的这种转换通常对分类任务很有用,无论特定示例具有什么类别。例如,无论实际图像是否包含人脸,都能够检测图像中的眼睛是很有用的;如果确实检测到两只眼睛,则可以将其归类为人脸,否则将其归类为不是人脸。在这两种情况下,你都在寻找眼睛。

    因此,通过拆分为多个网络,您最终可能会在所有网络中学习到非常相似的模式。那么你不妨省去计算工作,只学过一次。

    拆分成多个网络的另一个缺点是您可能会导致数据集变得不平衡(或者如果它已经不平衡,则更加不平衡)。假设您有三个类,每个类恰好有 1/3 的数据集。如果你使用三个网络进行三个二元分类任务,你突然总是有 1/3 ''1'' 类和 2/3 ''0'' 类。然后,网络可能会偏向于在任何地方预测 0,因为这些是三个独立问题中的大多数类别。

    请注意,这一切都是基于我的直觉;如果您有时间,最好的解决方案是简单地尝试两种方法并进行测试!不过,我认为我在实践中从未见过有人使用多个网络来完成单个分类任务,因此如果您只有时间使用一种方法,我建议您使用单个网络。

    我认为使用多个网络真正有意义的唯一情况是,如果您确实想要预测多个不相关的值(或至少是不强相关的值)。例如,如果给定图像,您想要 1) 预测图像上是否有狗,以及 2) 它是照片还是绘画。那么最好使用两个各有两个输出的网络,而不是一个有四个输出的单个网络。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-12
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多