【问题标题】:My feedforward network is giving me an output averaging what I really want我的前馈网络给了我一个平均我真正想要的输出
【发布时间】:2019-01-24 20:53:22
【问题描述】:

我正在从头开始构建前馈网络,但遇到以下问题: 我有 4 个神经元在入口和 4 个作为出口,输入是 [x;x;x;x] x 为 0 或 1 时,输出必须与输入相同。

在训练超过 100 万个条目和 1000 个批次后,我得到的结果始终在 [0.5;0.5;0.5;0.5] 左右。

我尝试更改纪元数和条目数。

由于 0.5 是 0 和 1 的平均值,我认为它们一定是我的问题的逻辑答案

编辑:我通过调试体重变化解决了问题,

【问题讨论】:

  • 您好,欢迎来到 SO。你有问题吗?你好像忘记问了。此外,由于您的问题很可能是由于代码中的错误,您可能必须添加一个代码版本来演示您对问题所遇到的问题。查看How to create a Minimal, Complete, and Verifiable example的解释

标签: c++ deep-learning artificial-intelligence


【解决方案1】:

这种行为有很多原因。最常见的是您的 nn 能力太小。如果无法适应建模函数形状,NN 模型希望最小化成本函数,nn 将平均函数,这是这种优化中的正常和最佳策略。第二种解释可能是您的数据内部没有任何模式。随机输入强制 NN 返回分布均值。

我建议您通过添加带有额外神经元的隐藏层(即 50、100、200 个神经元的隐藏层)来增加网络的能力并观察会发生什么。如果由于梯度消失问题不使用“relu”激活函数,请小心添加多个隐藏层。

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多