BP神经网络的推导

1、正向向前传播

第一层为输出层:i1、i2,截距项b1

第二层为隐含层:h1、h2,截距项b2

第三层为输出层:o1、o2

每条线上的wn是曾与层之间的权重,激活函数为sigmoid

以数据推导,赋初值如下

 1.1、向前传播

        1.输入层->隐含层:

        计算神经元h1的输入和加权和:

        neth1=w1*i1+w2*i2+b1*1

        neth1=0.15*0.05+0.2*0.1+0.35*1=0.3775

        neth2=i1*w3+i2*w4+b1*1

        neth2=0.05*0.25+0.1*0.3+0.35=0.3925

        输出o1使用

         outh1=1/1+e(-neth1)=1/1+e(-0.3775)=0.5933269992

        outh2=1/1+e(-neth2)=1/1+e(-0.3935)=0.596884378

        2.隐含层->输出层:

        计算输出层神经元o1和o2的值:

        neto1=w5*outh1+w6*outh2+b2*1

        neto1=0.4*0.5933269992+0.45*0.596884378+0.6*1=1.105905967

        outo1=1/1+e(-neto1)=1/1+e(-1.105905967)=0.75136507

        neto2=w7*outh1+w8*outh2+b2*1

        out02=0.772928465

1.2反向计算

        1.计算总误差

         共有两个输出,所以分别计算o1和o2的误差,总误差为两者之和:

        Eo1=1/2(targeto1-outo2)^2=0.274811083

        Eo2=0.023560026

        Etotal=Eo1+Eo2=0.298371109

        2.隐含层->输出层的权值更新

        以权重参数w5为例,如果我们想知道w5对整体误差产生了多少影响,可以用整体误w5 求               偏导求出:(链式法则)

 

 计算

 Etotal=1/2(taargeto1-outo1)^2+1/2(targeto2-outo2)^2

=2*1/2(targeto1-out01)^2-1*(-1)+0

=-(targeto1-outo1)=-(0.01-0.75136507)=0.74136507

 

 对sigmoid函数对X求导

f(x)=1/+e^(-x)

df(x)/dx=e^-x/(1+e^-x)^2=1/1+e^-x*e^-x/1+e^-x=f(x)(1-f(x))

outo1=1/1+e^neto1

=outo1(1-outo1)=0.75136507(1-0.75136507)=0.186815602 

 neto1=w5*outh1+w6*outh2+b2*1

 

 

 0.74136507*0.186815602*0.59326992=0.082167041

这样就计算出整体误差E(total)对w5的偏导值

w5==0.4-0.5*0.082167041=0.35891648

 w6=0.408666186

w7=0.511301270

w8=0/561370121

3.隐含层->隐含层的权值更新

在上文计算总误差对w5的偏导时,是从out(o1)-->net(o1)-->w5,但是在隐含层之间的权值更新时,是从out(h1)-->net(h1)--w1,而out(h1)会接受E(o1)和E(o2)两个地方传来的误差所以这个地方两个都要计算

 

 

 

 

 =0.74136507*0.186815602=0.138498562

neto1=w5*outh1+w6*outh2+b2*1

=w5=0.4 

 

 =0.138498562*0.4=0.055399425

同理计算

 =-0.019049119

两者相加的

 =0.055399425(1-0.59326999)=0.241300709

再计算

  neth1=w1*i1+w2*i2+b1*1

=0.05

 

 =0.36350306*0.241300709*0.05=0.000438568

最后更新w1的权值

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值