当前位置: 首页 > news >正文

内网做网站外网访问/百度手机助手下载正版

内网做网站外网访问,百度手机助手下载正版,关于网站设计的毕业论文,江阴做网站的摘要: 在前面的文章里面,RNN训练与BP算法,我们提到了RNN的训练算法。但是回头看的时候在时间的维度上没有做处理,所以整个推导可能存在一点问题。 那么,在这篇文章里面,我们将介绍bptt(Back Propagation…

摘要:


在前面的文章里面,RNN训练与BP算法,我们提到了RNN的训练算法。但是回头看的时候在时间的维度上没有做处理,所以整个推导可能存在一点问题。

那么,在这篇文章里面,我们将介绍bptt(Back Propagation Through Time)算法如在训练RNN。

关于bptt


这里首先解释一下所谓的bptt,bptt的思路其实很简单,就是把整个RNN按时间的维度展开成一个“多层的神经网络”。具体来说比如下图:
这里写图片描述

既然RNN已经按时间的维度展开成一个看起来像多层的神经网络,这个时候用普通的bp算法就可以同样的计算,只不过这里比较复杂的是权重共享。比如上图中每一根线就是一个权重,而我们可以看到在RNN由于权重是共享的,所以三条红线的权重是一样的,这在运用链式法则的时候稍微比较复杂。

正文:


首先,和以往一样,我们先做一些定义。
hti=f(netthi)

netthi=m(vimxtm)+s(uisht1s)

nettyk=mwkmhtm
最后一层经过softmax的转化
otk=enettykkenettyk
在这里我们使用交叉熵作为Loss Function
Et=kztklnotk

我们的任务同样也是求EwkmEvimEuim
注意,这里的E没有时间的下标。因为在RNN里,这些梯度分别为各个时刻的梯度之和。
即:
Ewkm=stept=0Etwkm
Evim=stept=0Etvim
Euim=stept=0Etuim

所以下面我们推导的是EtwkmEtvimEtuim

我们先推导Etwkm
Etwkm=kEtotkotknettyknettykwkm=(otkztk)htm。(这一部分的推导在前面的文章已经讨论过了)。
在这里,记误差信号:
δ(output,t)k=Etnettyk=kEtotkotknettyk=(otkztk)(后面会用到)

对于EtvimEtuim其实是差不多的,所以这里详细介绍其中一个。这两个导数也是RNN里面最复杂的。

推导:Etvim

Etvim=tt=0Etnetthinetthivim
对于这个式子第一次看可能有点懵逼,这里稍微解释一下:
从式:hti=f(m(vimxtm)+s(uisht1s))中我们可以看到,vim影响的是所有时刻的netthi,t=0,1,2,....step。所以当Etvim求偏导的时候,由于链式法则需要考虑到所有时刻的netthi

下面分成两部分来求Etnetthinetthivim.
第一部分:Etnetthi
这里我们记δ(t,t)i=Etnetthi(误差信号,和前面文章一样)。



(由于带着符号去求这两个导数会让人看起来非常懵逼,所以下面指定具体的值,后面抽象给出通式)
假设共3个时刻,即t=0,1,2。
对于t=2t=2时:
E2表示第2个时刻(也是最后一个时刻)的误差)
net2hi表示第2个时刻隐藏层第i个神经元的净输入)
具体来说:E2net2hi=E2h2ih2inet2hi

对于E2h2i=kE2net2yknet2ykh2i
由于δ(output,t)k=Etnettyk
所以,我们有:
E2h2i=kE2net2yknet2ykh2i=kδ(output,2)knet2ykh2i=kδ(output,2)kwki
综上:
δ(2,2)i=E2net2hi=E2h2ih2inet2hi=(kδ(output,2)kwki)f(net2hi)

对于t=1t=2时:
E2表示第2个时刻的误差)
net1hi表示第1个时刻隐藏层第i个神经元的净输入)
具体来说:E2net1hi=E2h1ih1inet1hi
那么E2h1i=kE2net1yknet1ykh1i+jE2net2hjnet2hjh1i。请对比这个式子和上面t=2t=2时的区别,区别在于多了一项jE2net2hjnet2hjh1i。这个原因我们已经在RNN与bp算法中讨论过,这里简单的说就是由于t=1时刻有t=2时刻反向传播回来的误差,所以要考虑上这一项,但是对于t=2已经是最后一个时刻了,没有反向传播回来的误差。

对于第一项kE2net1yknet1ykh1i其实是0。下面简单分析下原因:
上式进一步可以化为:k(kE2o1ko1knet1yk)net1ykh1iE2与第1个时刻输出o1k无关。所以为0。

对于第二项jE2net2hjnet2hjh1i,我们带入δ(t,t)i=Etnetthi有:
jE2net2hjnet2hjh1i=jδ(2,2)jnet2hjh1i
同时明显有net2hjh1i=uji
即:E2h1i=jδ(2,2)juji

综上:
δ(1,2)i=E2net1hi=E2h1ih1inet1hi=(jδ(2,2)jnet2hjh1i)f(net1hi)=(jδ(2,2)juji)f(net1hi)

对于t=0t=2时:
E2表示第2个时刻的误差)
net0hi表示第0个时刻隐藏层第i个神经元的净输入)。
和上面的思路一样,我们容易得到:
δ(0,2)i=E2net0hi=(jδ(1,2)juji)f(net0hi)

至此,我们求完了Etnetthi。下面我们来总结一下其通式:

Etnetthi=δ(t,t)i={(kδ(output,t)kwki)f(netthi),(jδ(t+1,t)juji)f(netthi),t=ttt


另外,对于δ(output,t)k有以下表达式:
δ(output,t)k=Etnettyk=kEtotkotknettyk=(otkztk)



最后只要求出netthivim,其值具体为netthivim=xtm


最后,对于Etuim其实和上面的差不多,主要是后面的部分不一样,具体来说:
Etuim=tt=0Etnetthinetthiuim,可以看到就只有等式右边的第二项不一样,关键部分是一样的。netthiuim=ht1m

细节-1


上面提到,当只有3个时刻时,t=0,1,2。
对于误差E2(最后一个时刻的误差),没有再下一个时刻反向传回的误差。
那么对于E1(第1个时刻的误差)存在下一个时刻反向传回的误差,但是在E1h1i中的第二项jE1net2hjnet2hjh1i仍然为0。是因为E1net2hj=0,因为E1的误差和下一个时刻隐藏层的输出没有任何关系。

总结


看起来bptt和我们之前讨论的bp本质上是一样的,只是在一些细节的处理上由于权重共享的原因有所不同,但是基本上还是一样的。

下面这篇文章是有一个简单的rnn代码,大家可以参考一下
参考文章1
代码的bptt中每一步的迭代公式其实就是上面的公式。希望对大家有帮助~

http://www.lbrq.cn/news/1114003.html

相关文章:

  • 网站制作可以/台州专业关键词优化
  • 怎么做跨境电商流程及步骤/seo外链发布平台
  • asp动态网站建设/西地那非片能延时多久每次吃多少
  • 网站开发视频播放好做吗/广州专门做网站
  • 网页设计与制作 pdf/seo网络优化平台
  • 网站与微信对接/真正免费的网站建站平
  • 做毕业设计做网站真实数据来源/百度一下你就知道移动首页
  • 许昌市住房建设局网站/app推广拉新工作可靠吗
  • 动态网站 流程/企业文化墙
  • 电脑谷歌浏览器打开是2345网址导航/uc浏览器关键词排名优化
  • 网页制作三剑客软件下载/百度seo如何优化
  • 用腾讯云做淘宝客网站视频下载/市场推广方案
  • 南宁模板建站定制网站/软文文案案例
  • 国外黄色 网站/百度售后服务电话
  • 优化网站工具/培训网站源码
  • 没有网站怎么做熊掌号/晚上网站推广软件免费版
  • wordpress编辑区/seo关键词优化外包公司
  • 香港公司怎么做网站/深圳网站建设服务
  • 自己做报名网站/河北百度seo关键词
  • 做网站设计师好吗/上海知名网站制作公司
  • 网络营销为导向的企业网站/一键制作网站
  • 茂名网站建设公司/爱站网注册人查询
  • 网站分类目录大多数依靠的是人为提交而不是蜘蛛/sem是什么基团
  • 做网站大作业的心得体会/抖音seo什么意思
  • 做怎样的网站能赚钱/重庆百度竞价推广
  • 免费搭建单页网站/信息流广告文案
  • 济南建站公司注意事项/百度公司怎么样
  • 网站怎样做的/如何推广网站运营
  • 移动端英文简称/seo的内容主要有哪些方面
  • 建网站用什么服务器好/博客营销
  • 网络爬虫的介绍
  • 【Lua】题目小练2
  • 【人工智能99问】梯度消失、梯度爆炸的定义、后果及规避手段?(7/99)
  • 医院各类不良事件上报,PHP+vscode+vue2+element+laravel8+mysql5.7不良事件管理系统源代码,成品源码,不良事件管理系统
  • 基于springboot+vue的酒店管理系统设计与实现
  • Python爬虫实战:研究PyYAML库相关技术