【问题标题】:Neural network gives different output for same input神经网络为相同的输入提供不同的输出
【发布时间】:2017-07-09 08:40:53
【问题描述】:

NN 为相同输入输出不同值的潜在原因是什么?尤其是在没有任何随机或随机过程的情况下?

【问题讨论】:

  • 不是重复的。

标签: tensorflow neural-network


【解决方案1】:

这是一个非常广泛和普遍的问题,甚至可能过于广泛,甚至无法在这里讨论,但是您应该了解有关神经网络的几件事:

  1. 它们是不是寻找完美最优解的方法。神经网络通常会学习给定的示例,并“找出”一种合理地预测结果的方法。合理是相对的,对于某些模型可能意味着 50% 的成功,而对于其他模型,任何低于 99.9% 的都将被视为失败。

  2. 他们的结果非常依赖于训练的数据。数据的顺序很重要,在训练期间打乱数据通常是个好主意,但这可能会导致截然不同的结果。此外,数据的质量也很重要——例如,如果训练数据与测试数据在性质上大不相同。

  3. 计算中神经网络的最佳类比当然是大脑。即使拥有相同的信息和相同的基本生物学,我们都可以根据无穷无尽的其他变量对事物产生不同的看法。在某种程度上与计算机学习相同。

  4. 某些类型的神经网络使用dropout 层,专门设计用于在训练期间关闭网络的随机部分。这不应该影响最终的预测过程,因为对于预测,该层通常设置为允许网络的所有部分运行,但是如果您输入数据并告诉模型它正在“训练”而不是要求它进行预测,结果可能会有很大差异。

所有这些的总和只是说:神经网络的训练应该期望从相似的起始条件产生不同的结果,因此必须针对每个条件进行多次测试以确定什么部分是不可避免的,哪些部分不是。

【讨论】:

    【解决方案2】:

    这可能是由于数据的洗牌,如果你想使用相同的向量,你应该关闭洗牌参数。

    【讨论】:

    • OP 已经声明他禁用了任何随机性,因此洗牌不是这里的潜在原因。
    猜你喜欢
    • 1970-01-01
    • 2016-08-13
    • 2017-01-06
    • 1970-01-01
    • 2021-01-07
    • 2011-05-28
    • 2015-01-10
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多