【问题标题】:Permutation-invariant neural network排列不变的神经网络
【发布时间】:2017-09-26 07:50:41
【问题描述】:

我有一个来自多对象跟踪试验的数据集,其中参与者跟踪显示屏上的 8 个点,其中 4 个是目标(在试验开始时短暂标记),4 个是干扰物。在试验结束时,该人标记 4 个目标。我的数据集仅包括参与者回答正确的试验。我每秒有 10 帧,每帧包括点的位置和眼睛注视的位置,所以总共 18 个数字。试验持续 8 秒。 这些点有 40 条可能的轨迹。

我正在尝试训练一个神经网络,以仅根据注视的位置和点来标记 4 个目标。问题是,在数据集中,答案总是向量中的前 4 个点。如果我使用这些输出进行训练,网络只会学会总是说 [1,1,1,1,0,0,0,0]。 有没有一种方法可以改变输入或输出(或两者)——例如通过计算不同的特征——这样网络接收积分的顺序就无关紧要了?点的坐标是输入向量中的第一个(第二个,第三个……)这一事实在此任务中没有任何意义。

到目前为止我尝试了什么:

  • 在训练期间,随机排列每个输入(和输出 相应地)并遍历所有 70 种可能的排列 输出向量 [1,1,1,1,0,0,0,0] 使得排列为 在培训中的代表相同。没用(成功率是 1/70,等于机会)
  • 从左到右对点进行排序(按 x 坐标) - 结果有所改善,但网络基本上记住了轨迹并且即使在我移除眼睛注视位置时也能正常工作。当然,我希望网络能够正确回复,即使是未经训练的新轨迹

我对输入特征有一个想法,我可以将显示划分为一个离散的网格,并在有一个点的地方放置 1,在注视位置所在的位置放置一些其他数字,在其他地方放置 0。但是,我不知道输出会是什么样子,有什么想法吗?

我知道我无法从一帧中找到关于整个试验的答案,所以我希望将网络的输出组合到试验的所有 80 帧中并从中找到答案。

我什至不确定神经网络有没有希望学会这一点。有没有置换不变的机器学习模型?找了好久,一无所获。

【问题讨论】:

    标签: machine-learning neural-network feature-selection


    【解决方案1】:

    看看PointNet 架构。他们正在解决一个类似的问题,但是是 3D 的。

    基本方法如下。将所有点馈送到嵌入层,该嵌入层将 xy 坐标映射到更高维空间。这些是点的局部特征。然后,将所有局部特征输入到“全局特征提取器”模块中,该模块的最后一层是最大池。该模块的输出代表整个输入,最后的最大池保证了置换不变性(或“对称性”)。然后,将所有局部特征与全局特征连接起来,就可以获得每个点的完整特征集。最后,通过密集层将每个点的特征映射到点的类,就完成了。

    如果你看一下PointNet source code,你会发现这个架构很容易实现。

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2018-11-01
      • 2016-09-02
      • 2019-09-15
      • 2012-03-03
      相关资源
      最近更新 更多