BP神经网络反向传播手动推导

BP神经网络过程:

基本思想

BP算法是一个迭代算法,它的基本思想如下:

  1. 将训练集数据输入到神经网络的输入层,经过隐藏层,最后达到输出层并输出结果,这就是前向传播过程。
  2. 由于神经网络的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;
  3. 在反向传播的过程中,根据误差调整各种参数的值(相连神经元的权重),使得总损失函数减小。
  4. 迭代上述三个步骤(即对数据进行反复训练),直到满足停止准则。

梯度下降法

在这里插入图片描述
紫色部分:正确结果与节点输出结果的差值,也就是误差;
红色部分:节点的激活函数,所有输入该节点的链路把经过其上的信号与链路权重做乘积后加总,再把加总结果进行激活函数运算;
绿色部分:链路w(jk)前端节点输出的信号值。

神经网络训练过程实例

  1. 第一层是输入层,包含两个神经元:i1,i2 和偏置b1;
  2. 第二层是隐藏层,包含两个神经元:h1,h2 和偏置项b2;
  3. 第三层是输出:o1,o2。
  4. 每条线上标的 wi 是层与层之间连接的权重。
  5. 激活函数是 sigmod 函数。
  6. 我们用 z 表示某神经元的加权输入和;用 a 表示某神经元的输出。
    在这里插入图片描述

Step 1 前向传播

输入层 —> 隐藏层

在这里插入图片描述

隐藏层 —> 输出层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step 2 反向传播

计算损失函数:

在这里插入图片描述

隐藏层 —> 输出层的权值更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入层 —> 隐藏层的权值更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样,反向传播算法就完成了,最后我们再把更新的权值重新计算,不停地迭代。 在这个例子中第一次迭代之后,总误差0.298371109下降至0.291027924。
迭代10000次后,总误差为0.000035085。输出为:[0.015912196, 0.984065734]

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值