【发布时间】:2018-10-27 06:02:46
【问题描述】:
我用 2 个输入单元、2 个隐藏单元和 1 个输出单元实现了与门的神经网络。 我使用 40 个输入对神经网络进行了 200 个 epoch 的训练,学习率为 0.03。 当我尝试测试经过训练的神经网络的 AND 输入时,它给我的输出为:
- 0,0 = 0.295(预期为 0)
- 0,1 = 0.355(预期为 0)
- 1,0 = 0.329(预期为 0)
- 1,1 = 0.379(预期为 1)
这不是网络预期的输出。但是如果我将阈值设置为 0.36,并将所有高于 0.36 的值设置为 1,其余设置为 0,则神经网络输出每次都符合预期。 我的问题是:是否需要对网络的输出应用阈值才能生成像我这样的预期输出?
【问题讨论】:
-
嗨,您不应该对网络的输出应用阈值。您必须随机设置所有权重(包括每个神经元的阈值),然后给它 epochs / 假定结果并计算错误(假定结果和网络输出之间的差异)然后从这个错误中您必须使用 backpropagation (en.wikipedia.org/wiki/Backpropagation) 调整网络的每个权重。在某个时期之后,每个神经元都会调整其权重(包括阈值)以从给定的输入中给出正确的输出。
-
抱歉重复评论,没有足够的空间,但这里有一个完整的数学反向传播演示,您应该可以通过代码重现:mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example
标签: neural-network threshold perceptron