【问题标题】:turn off features during training in deep network在深度网络训练期间关闭特征
【发布时间】:2020-10-06 12:17:53
【问题描述】:

我正在寻找以下问题的解决方案: 我的神经网络有 8 个特征和 6 个输出。

网络预测图表上的一些信息,其中记录与图表中的节点相关。 当我拥有具有相同程度邻居的所有示例(节点)时,它可以完美运行。 现在我需要它也适用于具有较少邻居的节点,但在一般形式上,这意味着我不知道先验有多少。

因此,当邻居不存在时,我尝试输入零,但是所有的预测都很奇怪,根本不正确。

所以我的问题是:有没有一种方法可以在训练期间关闭一些输入神经元,看看我在该示例中有多少有效特征?

更准确地说:NN 采用的第一个示例具有完整的邻居,因此我有 8 个值;第二个有 6 个值,所以我想关闭 2 个输入神经元等等。

有什么想法吗?

【问题讨论】:

    标签: python tensorflow deep-learning neural-network feature-selection


    【解决方案1】:

    一个可能可行的简单解决方案是将功能声明为不相关。因此,您只需指定一个值,这会使模型知道不应在此迭代中使用它。因此,当您将值设置为零时,模型只会认为它是零,因此含义不明确。但是,如果您将其设置为 -1,例如但是 -1 根本不会出现在您的数据中,模型可能能够得知 -1 表示不存在的特征,并更多地关注其他特征。

    【讨论】:

    • 所以你说要创建一个“不存在的特征”假设为 -1 的数据集,然后才再次训练网络,对吗?
    • 是的,如果你的数据允许的话,那就是这个主意
    • 当然允许,我只需要试试!谢啦。只是,您是自己想到的还是有一些参考资料谈论如何用非空值表示不存在的功能?
    • 肯定有关于如何处理这样的数据的参考资料,我可能已经阅读过它。我突然想到,将不存在的价值视为一种额外的价值。就像您进行分类时一样,您可以将一个类用于与您的类不匹配的所有其他东西,例如额外的“东西”类。我认为这也可能适用于您的情况。如果对您有帮助,我真的很感兴趣
    • 我今天会试试,让你知道会发生什么。很快:按照您的想法,我将 -1 值分配给缺失的功能;但在训练之前,我通常会进行标准化。因此,我将获得不同的负值而不是-1。你认为 thisc 会破坏训练,因此最好用 -1 替换它们,或者它应该理解任何负值都缺少特征?
    猜你喜欢
    • 2017-10-12
    • 2018-01-09
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多