BPTT-应用于简单的循环神经网络「建议收藏」

BPTT-应用于简单的循环神经网络「建议收藏」上面是一组序列变量,即四个变量z1,z2,z3,z4z_1,z_2,z_3,z_4中的任一ziz_i的值均依赖于它前面的变量z1,z2,..,zi−1z_1,z_2,..,z_{i-1},且有z2=2∗z1z_2=2*z_1z3=3∗z2+z1z_3=3*z_2+z_1z4=4∗z3+2∗z2+z1z_4=4*z_3+2*z_2+z_1

大家好,又见面了,我是你们的朋友全栈君。

这里写图片描述
上面是一组序列变量,即四个变量 z1,z2,z3,z4 中的任一 zi 的值均依赖于它前面的变量 z1,z2,..,zi1 ,且有
z2=2z1

z3=3z2+z1

z4=4z3+2z2+z1

E=4z4+2z2

现在我们定义:

Ezi : 目标函数 E 对变量

zi
的偏微分,
+Edzi : 目标函数 E 对变量

zi
的全微分。比如,

+Ez4=Ez4=4

+Ez3=Ez3++Ez4z4z3=16

+Ez2=Ez2++Ez4z4z2++Ez3z3z2=58

+Ez1=Ez1++Ez4z4z1++Ez3z3z1++Ez2z2z1=136

综上,我们有如下的链式法则[1]

+Ezi=Ezi+j>iT+EzjzjziEq.1

traditional recurrent neural network

下图是一个基础的循环神经网络示意图
循环神经网络
Fig. 1: 循环神经网络示意图

其中x_t, h_t, y_t 分别代表 t 时刻网络的输入向量隐藏层向量输出向量w_ih, w_ho均为 权重矩阵,具体的计算公式如下:

xct=[xt,ht1]

ht=ϕ(zht)=tanh(wihxct+bih)

yt=σ(zot)=softmax(whoht+bho)

成本函数采用信息熵形式

C=t=1Tk(1y^(t)k)log(y(t)k)=t=1Tc(yt)




k表示输出层节点个数,

y^
表示真实的目标输出。

我们的目标是计算

+Cwih






+Cwho



即在给定

x1,x2,...xT
作为输入序列,

y^1,y^2,...,y^T
作为目标输出序列的前提下,计算成本函数

C
对权重矩阵



wih,who

的全微分 (这里我们暂时忽略

bih,bho
)。为此,我们先计算

+Czht


+Czot
, 其中

zht


zot
分别是图中绿色模块和黄色模块的输入。

根据 Fig. 1, 我们看出绿色模块之间有如下的依赖关系
differciate_h
那么 zhi 仅仅依赖于 zhi1 ,根据链式方程 Eq. 1:

+Czht=Czht+t>tT+Czhtzhtzht=Czht++Czht+1zht+1zht



并且,


+CzhT=CzhT=CzoTwhoϕ˙(zhT)

因为 Fig. 1 中黄色模块之间的相互依赖关系是通过绿色模块产生的,它们之间并没有直接的依赖关系,所以有

+Czot==Czotc˙(yt)σ˙(zot)



由上面的三个公式,可进而依次求出

t=T1,T2,...,2,1
时刻时的

+Czht
值。

最终有:

+Cwho=t=1T+Czotzotwho=t=1T+Czotht




+Cwih=t=1T+Czhtzhtwih=t=1T+Czhtxct



[1] Backpropagation through time: what it does and how to do it
(web)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152284.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++通过TinyXML类库读写XML文件

    C++通过TinyXML类库读写XML文件TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。

    2022年4月30日
    32
  • 前端游戏巨制! CSS居然可以做3D游戏了

    前端游戏巨制! CSS居然可以做3D游戏了前言偶然接触到CSS的3D属性,就萌生了一种做3D游戏的想法.了解过css3D属性的同学应该都了解过perspective、perspective-origin、transform-st…

    2022年5月7日
    53
  • LD_DEBUG使用「建议收藏」

    LD_DEBUG使用「建议收藏」LD_DEBUG1.LD_DEBUG可以用来查看程序搜索库的路径,使用方法如下:LD_DEBUG=libs./your_programLD_DEBUG=help查看命令使用方法2.执行find/usr-namelibevent-1.4.so.2得知libevnet=1.4.so.2已经安装,但是不在默认共享库的查找路径下.库路径在该目录下:/usr/local/lib/

    2022年10月10日
    0
  • Helm从入门到实践

    Helm从入门到实践

    2021年6月1日
    92
  • Windows XP虚拟机安装全过程(VMware)「建议收藏」

    Windows XP虚拟机安装全过程(VMware)「建议收藏」​1.准备工作VMware没有装上的,可以参考一下之前装win2000的前半部分:博客链接然后电脑要安装一个迅雷,下载链接:迅雷下载链接;最后,就是大名鼎鼎的网站NextItellyou(原msdn我告诉你)的账号啦,链接:网站链接所有这些准备工作都做好之后,就可以开始下一步了~2.下载WindowsXP镜像(非百度网盘)打开NextItellyou官方网站,然后点击WindowsXP;然后点黄色箭头指向的“复制”;然后打开迅雷,它应该就会自动跳出下

    2022年8月16日
    4
  • 我的世界java手机_我的世界java手机版

    我的世界java手机_我的世界java手机版我的世界java手机版是一款非常好玩的模拟经营游戏,游戏非常的自由,你几乎可以在游戏中干任何事,你可以自己建造一个世界,或是制作一个像素版的动漫人物,你还可以探索这个世界,寻找资源,你还可以和好友一起在这里进行对抗,你还在等什么,赶快来体验吧!我的世界java手机版游戏特色没有华丽的画面,没有什么游戏特效但是它最大的优势就是在于它的游戏性玩家在一个完全开放的世界,可以完全按照自己的想法建造我的世界…

    2022年7月8日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号