反向传播算法

神经网络之反向传播算法

 

  反向传播(BackPropagation)算法(也叫误差逆传播算法)适用于训练多层网络,学习BP算法告诉我们:

  1、当我们改变权值和偏置的时候,损失函数的改变速度

  2、如何改变权值和偏置以训练神经网络的整体表现

  BP算法基于梯度下降策略,以目标的负方向梯度对参数进行调整。BP算法最关键的部分就是求梯度(某一函数在该点处的方向导数沿着该方向取得最大值)。

  这里通过一个例子来理解反向传播算法

                                                              

第一层是输入层,包含两个神经元i1,i2和截距项b1;第二层是隐层,包含两个神经元h1, h2和截距项b2,第三层是输出层o1,o2,每条线上的是层与层之间连接的权重,激活函数使用书上(机器学习(周志华))的Sigmoid函数。

该算法的目标是通过输入数据i1,i2,使输出尽可能与原始输出尽可能接近(这里假设的输出分别为:)。

一、反向传播:

1、输入层——>隐层

隐层/输出层第h个神经元接收到的输入为

这里的,这里的为偏置*偏置项(书上没有偏置,直接就是输入点*全值的和),即接受的神经元的输入为;利用Sigmoid函数()来计算h1的输出:即,

同理,接受的输入函数为,同样可以算出的输出为:

2、隐层——>输出层

同样使用公式和公式来计算o1的输入的输出(即:最终的输出)

同理,接受的输入函数为的输出为

然后通过比较的值来确定是否要更新权值,重新计算输出。

3、计算总误差

这里的分别是输出层第j个神经元(一共n个)的理想输出和实际输出

所以本例中E=+=(后面有用)

接下来就可以开始进行权值更新了

1)隐层——>输出层的权值更新

为例,计算对整体误差产生了多少的影响,可以用整体误差对求偏导求出:

(链式法则)

根据的定义,显然有:

Sigmoid函数有一个很好的性质:

然后即E=+求导

即:                

三者相乘得到最终结果:

 =

*(

*(

得到了BP算法中关于w5的更新公式:

为学习率

  最后更新的值:

同理可得的更新权值。

2)输入层——>隐层的权值更新

为例,这里需要注意一下,会接受来自o1、o2两个地方传来的误差,所以在计算时:

 

       

同理

 

       

 

所以

同理,更新

 

这样,就完成了方向传播算法的第一次迭代,然后将更新之后的权值重新带入计算,直到f()和g()比较接近的时候停止。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值