首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单Sigmoid激活神经网络反向传播方程的帮助

简单Sigmoid激活神经网络反向传播方程的帮助
EN

Data Science用户
提问于 2017-08-30 12:25:40
回答 1查看 7K关注 0票数 1

我试图建立一个简单的神经网络,有两个输入神经元,一个隐藏层,有3个神经元,输出层有单个神经元,然后训练它来解决异或问题。

根据我对神经网络的理解,我计划在每个神经元中有一个加权线性输入函数和一个Sigmoid激活函数。例如,输入x的第一个输入神经元将计算c=ax+ba是参数,b是它的偏差。然后将c反馈给Sigmoid函数,计算出z=1/(1+exp(-c)),这将是它的输出。如果我做错了,请纠正我。

现在,我试图跟随这篇文章建立反传播微分方程。它说,dc = z * (1-z) * dz,其中dz是绿色边的梯度,然后是da = x * dc,其中da是在反向传播迭代中计算的梯度。

我的问题是,有三个zs (一个对应于每个向外边缘),他们的价值(重量)将是相同的(z=1/(1+exp(-c)))。我假设,隐藏层中三个神经元的所有值和梯度都是相同的。那么在隐藏层中有三个神经元又有什么意义呢?是什么导致的随机性会导致三条绿色边缘的三种不同的梯度?如果它们实际上是不同的,我如何计算dc,也就是简单的z * (1-z) * dz,但是有三个zs和三个dzs?

EN

回答 1

Data Science用户

回答已采纳

发布于 2017-08-31 14:05:14

实际上,梯度是计算权重的w.r.t,这样每个神经元就会根据其先前的权重发生不同的“权重变化”。换句话说,并不是所有的隐层中的3个神经元都会受到相同的惩罚,因为这些神经元在t=0处的初始权重是不同的。

在这里有很好的解释:https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/

我希望这个简短的回答能有所帮助!

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/22710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档