【问题标题】:Neural network - multiple columns per element (Pytorch)神经网络 - 每个元素多列(Pytorch)
【发布时间】:2018-04-29 17:34:20
【问题描述】:

我正在使用神经网络进行分类,但对于我想要分类的每个患者/元素,我有 4 组不同的数字可供学习(每组都有自己的结果进行比较),显然我想要一个每个患者的单一结果。显然,我可以将最终结果分成 4 人一组并在那里做一些事情,但这似乎很老套,以后当我尝试超越最基本的网络或尝试先改组条目时可能会导致问题。

这有标准的方法吗?我正在尝试的一切都让我感觉你正在将一个不优雅、低效且不利于以后扩展的解决方案粘合在一起

【问题讨论】:

  • 您好,您能否详细说明一下您的问题定义?有哪些不同的数字集,它们与元素的关系是什么?您想要获得的实际目标(分类)是什么?
  • 嗨,所以每一列都是一组简单的数字,准确地说是录音。目标将是 1 或 0。目标每次都是相同的(一个人将是 1 或 0,无论它是哪种记录)。例如,四行:0.4、0.5、0.14、0.34、1。该患者每 4 列将有一个 1,但其他数字将不同。我不确定是否可以将它们全部组合在一起 - 一方面它可以让我摆脱重叠的特征(?),但另一方面不同发音的区别可能很重要。
  • 为了清楚起见 - 对于每个人,你得到 K 个样本(不同的数字)并且你想输出 K 个预测?
  • 我宁愿1预测!我可以分别进行 K 个预测并尝试将它们变成 1,但是是的,我只想对每个人进行一次分类

标签: neural-network pytorch


【解决方案1】:

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

例如,假设您患有某种疾病,并且您从每个患者身上采集 K 血样。每个血液样本都经过不同成分的检测,从结果中您可以确定它们是否被感染。在此示例中,K 测试不可互换,因为每个测试针对不同的组件。

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

  1. 端到端管道
  2. 两级流水线

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

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

  1. 如果 K 个数组可互换的,那么这种方法是没有意义的
  2. 如果需要,您可以进一步采用这种方法,将 K 个中间预测用作另一个网络的输入,该网络使用这些中间结果来获得最终预测。

【讨论】:

    猜你喜欢
    • 2018-12-16
    • 2016-09-08
    • 2021-03-11
    • 2019-03-08
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多