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

时间:2015-04-15 20:52:30

标签: math machine-learning neural-network

我试图了解神经网络,但在线提供的材料非常密集,我只是想了解在这个特殊的简单案例中会发生什么。这将有助于我使用隐藏层进行更复杂的事情。

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

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

更新后每个权重的明确变化是什么?

我已经使用sigmoid函数的衍生物在网上看到了解释,但我不知道它来自何处。我发现错误计算为$ \ frac {1} {2}(A-B)^ 2 $,有时候只是$ A-B $。这令人困惑。

(刚刚意识到stackoverflow上没有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

(输入这种表示法很糟糕。)

这一切都正确吗?

1 个答案:

答案 0 :(得分:0)

是的,这是正确的。这种情况的完整推导在这里给出:http://en.wikipedia.org/wiki/Backpropagation#Derivation

你的公式对应于第一种情况"如果j是输出神经元&#34 ;;你用phi(x)= 1 /(1 + e ^ -x)简化了phi(x)(1-phi(x))=(e ^ x)/(e ^ x + 1)^ 2。