【发布时间】:2012-09-30 20:09:38
【问题描述】:
我正在使用this article 来实现具有反向传播的神经网络,但在计算错误时遇到了麻烦。简而言之,我的 sigmoid 函数将我的所有节点输出压缩为 1.0,然后导致错误计算返回 0:
error = (expected - actual) * (1 - actual) * actual
^^ this term causes multiply by 0
所以我的错误总是 0。
我怀疑问题出在我的 sigmoid 实现上,它返回 1.0,而不是渐近地限制在 1.0 以下:
# ruby
def sigmoid(x)
1/(1+Math.exp(-x))
end
sigmoid 实际上不应该达到 1.0,我是正确的,还是我有其他问题?
【问题讨论】:
-
是的,你的函数应该总是低于 1。我认为一些舍入问题可能是罪魁祸首......
标签: artificial-intelligence computer-science neural-network