首页 > 编程知识 正文

bp神经网络算法原理公式,神经网络bp算法推导

时间:2023-05-03 09:35:53 阅读:22209 作者:1303

首先,本论文需要对RNN有一定程度的知识,而且本论文只以标准的网络结构为对象,目的是彻底阐明反向传播和BPTT。

反向传播形象描述

反向传播是什么? 传播的是什么? 传播的是误差,根据误差进行调整。

举个例子,去买苹果。 说着,老板来要20元苹果(目标、真值),老板开始往袋子里放苹果,差不多(预测),放下秤砣,差一点(误差),再放一个,差一点) (调整一次后的误差),"

注意每次都是根据误差来进行调整,这点谨记。

BPTT 剖析

RNN网络结构比较复杂,BPTT在梯度计算时也与常规不同。

不同1:权重共享,多个误差

通常把误差分成两条路传达,在每条路上计算w很容易理解

另一方面,在共享权重的情况下,一个权重生成两个误差,另一个总误差到底使用哪个? 怎么反方向? 如果能逆向返回的话,w2个,怎么处理? 不管怎么想,都很混乱,

其实是的

1 .总误差、分误差其实是一样的

2 .两个w,需要合计。

一个权重,多个误差,求和

不同2:权重共享,链式传递

两个w,乍一看,不知道怎么计算。

其实是的

链式法则

一个权重,多次传递,其梯度中含有w,且容易看出,传递次数越多,w的指数越大

其实rnn比这些不同点更复杂

图不说明。 直接放在晾衣架上。

首先对网上各种坑爹教程进行补充和完善,总结,当然虽然坑爹,但是对我们理解也是有帮助的。

教程1 :教程介绍ly1的误差来自ly2和next_ly1两个方向。 实际上,说法很好,但不完整。

补充:

1. ly1的误差来自两个方向,ly2和next_ly1,这两条路要根据各自的误差计算。 (这里是我在上述例子中记得的) ) ) ) ) ) )。

2 .这里计算的是“单层”梯度,即单个w梯度,实际计算BPTT梯度则不然。

这里的公式应该是这样的

教程2 :在教程中定义中间变量,用中间变量表示坡度

各种各样的,我完全不知道。 公式也没有导出过程。

补记:这里,对各个节点自定义变量,将各个节点直接相加得到总梯度。

总结:我们在这里定义了中间变量。 之所以定义这个,是因为这个计算很麻烦,经常使用。 这样可以很好地简化运算。

这里的公式应该是这样的

在这些教程中加上我的补充,其实可以计算出坡度。

下面我再系统的讲一遍BPTT

我还是用这张图。 此图在整个网络体系结构中相对完整,但缺少完整的cell。 用前向传播进行标记。

前向传播

wi表示输入权重,wh表示隐藏层权重

反向传播

首先理解下面的公式

1. v和c无多重传递误差,与常规梯度计算无差异

2. wi wh b均有多重传播

同样设定中间变量,注意这个变量最好是个递推公式,能够大大简化运算,且容易得到规律

初始设置

最佳化

重新优化

这样好像好多了,递归去

从上式可以知道即使注意到这里也能传达误差吧

1 .这是隐藏层cell在时间t的误差,当然要乘以总误差

2. t时刻的误差从t时刻到t的和,也就是说从终点一步一步地传来

3 .各步骤的传递为从t时刻到传递时刻的联合、w指数。

4 .大概这样w * loss t1 ww * loss T2 www * loss T3 wwww * losst4wwww * los st5,越往前走这个公式就越长,损失也越小

5 .加入活化函数搅拌,其导数始终小于1

wi也一样

转载于:https://www.cn blogs.com/Yan shw/p/10478876.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。