假设我们试着输入一些二分类数据,目标是 y=1。我们从正向传导开始,首先计算输入到隐藏层

h=∑​​w​i​​x​i​​=0.1×0.4−0.2×0.3=−0.02

隐藏层的输出 (激活函数f=sigmoid)

a=f(h)=sigmoid(−0.02)=0.495.

把它作为输出层的输入,神经网络的输出是:

​y​^​​=f(W⋅a)=sigmoid(0.1×0.495)=0.512.

二、反向传播

有了这个输出,我们就可以开始反向传播来计算两层的权重更新了。sigmoid 函数特性 f​′​​(x)=f(x)(1−f(x)),输出误差是:

δ​o​​=(y−​y​^​​)f​′​​(W⋅a)=(1−0.512)×0.512×(1−0.512)=0.122.

现在我们要通过反向传播来计算隐藏层的误差。这里我们把输出误差与隐藏层到输出层的权重 W 相乘。隐藏层的误差 δ​j​h​​=∑​k​​W​jk​​δ​ko​​f​′​​(h​j​​),这里因为只有一个隐藏节点,这就比较简单了

δ​h​​=Wδ​o​​f​′​​(h)=0.1×0.122×0.495×(1−0.495)=0.003

有了误差,就可以计算梯度下降步长了。隐藏层到输出层权重步长是学习率η乘以输出误差再乘以隐藏层激活值。

ΔW=ηδ​o​​a=0.5×0.122×0.495=0.0302

从输入到隐藏层的权重 w​i​​,是学习率乘以隐藏节点误差再乘以输入值。

Δw​i​​=ηδ​h​​x​i​​=(0.5×0.003×0.1,0.5×0.003×0.3)=(0.00015,0.00045)

相关文章:

  • 2021-08-14
  • 2021-05-03
  • 2021-04-30
  • 2021-04-10
  • 2022-12-23
  • 2021-05-26
  • 2021-10-16
猜你喜欢
  • 2021-07-06
  • 2021-10-25
  • 2021-04-19
  • 2021-11-10
  • 2021-12-26
  • 2021-12-10
  • 2021-04-30
相关资源
相似解决方案