Skip to main content
 首页 » 编程设计

neural-network中神经网络的阈值

2025年05月04日116mfryf

我实现了一个具有 2 个输入单元、2 个隐藏单元和 1 个输出单元的与门神经网络。 我使用 40 个输入对神经网络进行了 200 个时期的训练,学习率为 0.03。 当我尝试测试经过训练的神经网络的 AND 输入时,它给出的输出为:

  1. 0,0 = 0.295(预计为 0)
  2. 0,1 = 0.355(预计为 0)
  3. 1,0 = 0.329(预计为 0)
  4. 1,1 = 0.379(预计为 1)

这不是网络预期的输出。但如果我将阈值设置为 0.36,并将所有高于 0.36 的值设置为 1,其余值设置为 0,则神经网络输出每次都符合预期。 我的问题是:是否需要对网络的输出应用阈值才能生成像我这样的预期输出?

请您参考如下方法:

阈值不是必需的,但可以帮助更好地分类,例如。

根据你的情况,也许你可以为0设置阈值0.1,为1设置阈值0.9。当你的输出低于0.1时,我们可以认为它是0,如果输出高于0.9,那么它是1 .

因此,仅仅因为那个测试示例有效,就将阈值设置为 0.36,这是一个非常糟糕的想法。 因为 0.36 距离我们想要的输出 1 还很远。而且因为它可能(不会)不适用于您的所有测试数据。

您应该考虑代码的问题。

这不是最初的问题,但这里有一些想法:
1. 查看每个时期的训练准确性。如果学习缓慢,请提高学习率,并可能在几个时期后降低学习率。
2.如果精度没有变化,请查看您的反向传播算法
3.查看您的数据集并确保输入和输出正确
4. 确保你的权重是随机初始化的
5. 与门可以用线性神经网络来求解,无需隐藏层。 Myabe 尝试删除你的隐藏层?