【发布时间】:2017-09-18 15:50:03
【问题描述】:
我正在用 python 创建一个非常简单的神经网络。我要求的不是任何特定的代码,而是它如何工作的一般概念。 我了解输入、权重等,以及前向传播中的所有内容。 我不明白的是反向传播。它将输出与所需输出进行比较并计算误差(差异),但它如何将所有权重更改为正确的?尤其是如何将权重更改为不同的(并非全部相同)?
其次,当您更改权重时,如何使其适用于多个输入,而不仅仅是一个输入或另一个?
最后,偏见有什么作用,你如何决定它是什么?我听说它被添加到它所连接的节点,但在 1 个输入、1 个输出和 1 个偏置连接到输出的情况下:
输入为 0 输入和输出之间的权重为 -17.2 偏差为 -1.79 输出为 0.9999999692839459
但是怎么做呢? 0 x -17.2 - 1.79 = -1.79???那不是1?
感谢大家的帮助:)
编辑:请不要给我指向其他来源的链接(例如,不是堆栈溢出),因为一个好的答案会帮助我和任何阅读此内容的人。谢谢!
【问题讨论】:
-
第一个问题的简短答案是渐变。第二个是“你没有;每一步的优化都是针对特定样本的”。两者的长答案是youtube.com/watch?v=vq2nnJ4g6N0,强烈推荐
-
问题要求我们推荐或查找书籍、工具、软件库、教程 或其他场外资源对于 Stack Overflow 来说是离题,因为它们往往会吸引固执己见的答案和垃圾邮件。取而代之的是describe the problem 以及迄今为止为解决该问题所做的工作。
-
感谢您的帮助。您能否通过示例将其发布为答案?例如。如果输入是 1 和 2,那么它将执行此操作,然后给出此输出。错误是 4 所以它会改变这个......@Ev.Kounis
-
@pedrolobito 我不是在要求场外资源,而是要回答我的问题。 Ev.kounis 游戏我一个资源,我已要求将其更改为答案
-
@RulerOfTheWorld 在这里写数学比观看视频需要的更多。
标签: python python-3.x neural-network backpropagation