神经网络 - 每个元素多个列(Pytorch)

时间:2018-04-27 09:30:07

标签: neural-network pytorch

我正在使用神经网络进行分类,但是对于我想要分类的每个患者/元素,我有4组不同的数字要学习(每个都有自己的结果可供比较),显然我想要一个每位患者的单一结果。我可以清楚地看到最终结果并分成4组并在那里做一些事情,但它似乎很容易引起问题,当我试图超越最基本的网络或首先尝试改组条目时。

这是否有标准方法?我正在尝试的所有东西都让我感觉到你将一个不优雅和低效的解决方案粘在一起,并且不利于以后扩展

1 个答案:

答案 0 :(得分:0)

根据您在我所理解的评论中添加的信息(如果我错了,请纠正我)您有N名患者,每名患者都有K个样本 - 每个样本都包含某些特征和中间结果。您还可以采用这些K中间结果,并将它们组合成一个您真正感兴趣的最终结果。我还假设每个中间结果都不可互换。

让我们举例来说,您患有某种疾病并从每位患者身上采集K血样。对每种血液样本进行不同组分的测试,从结果中可以确定它们是否被感染。在此示例中,K测试不可互换,因为每个测试都针对不同的组件。

此设置可以导致两个常见的管道:

  1. 端到端管道
  2. 两阶段管道
  3. 在端到端管道中,您将所有功能嵌入在一起。在你的情况下你有5个数字的K数组,所以你的神经网络输入将是一个4 * K数组。你应该确保始终保持连接的顺序(如果你的中间结果是可以互换的,那么这是不必要的),你的预测只是你真正感兴趣的最终预测。

    在两阶段管道中,您将训练K个不同的神经网络,每个神经网络将获得一个包含4个数字的数组并输出中间结果。接下来,您需要将这些结果与您正在寻找的预测结合起来。 关于两阶段解决方案的两点评论:

    1. 如果K阵列 可互换,则此方法无意义
    2. 如果需要,您可以进一步采用这种方法,并使用K中间预测作为另一个网络的输入,使用这些中间结果来获得最终预测。