我如何改变这个简单神经网络中的权重?

How do I alter the weights in this simple neural network?

我正在尝试学习神经网络,但在线提供的 material 非常密集,我只想了解在这个特殊的简单案例中会发生什么。这将帮助我转向更复杂的隐藏层。

假设我有 2 个输入,1 个输出,以后没有隐藏。输入和输出都是实数值。我使用 sigmoid 函数 $\frac{1}{1+e^{-x}}$。

假设我得到了一些给定权重 W1 和 W2 的输出 A,但我想要 B 的输出。我需要根据错误更改权重。

每个权重在更新时明确更改为什么?

在网上看到过使用sigmoid函数的导数的解释,不知道从哪里来的。我见过错误计算为 $\frac{1}{2}(A-B)^2$,有时只是 $A-B$。令人困惑。

(刚刚意识到 Whosebug 上没有 MathJax。希望您仍然可以阅读它。)

更新:我可能已经明白了,所以如果有人能证实这一点,那就太好了。

新的W1 = W1 + n * (X1) * (W1) * d * (e^x) / (e^x+1)^2 其中 n 是学习率,X1 是第一个输入,X2 是第二个输入,d 是误差,或 B-A。 x=W1X1 + W2X2,最后的函数是sigmoid函数的导数。其他权重类似: 新的 W2 = W2 + n * (X2) * (W2) * d * (e^x) / (e^x + 1)^2

(输入这个符号太可怕了。)

这一切都正确吗?

是的,这是正确的。此处给出了此案例的完整推导:http://en.wikipedia.org/wiki/Backpropagation#Derivation

你的公式对应第一种情况"if j is an output neuron";你用 phi(x) = 1/(1+e^-x).[=11 简化了 phi(x) (1-phi(x)) = (e^x) / (e^x+1)^2 =]