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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WinSCP连接被拒绝「建议收藏」

    WinSCP连接被拒绝「建议收藏」之前用WinSCP连接华为云服务器传输文件的时候没有出现过问题,但是现在连接实验室电脑的时候报“网络错误,连接被拒绝”。上网查了一下,发现是实验室服务器没有安装openssh-server,参考博文进行安装:Ubuntu安装sshd服务_我是大魔王2的博客-CSDN博客_ubuntu安装sshd具体安装步骤:1.安装openssh-serversudoapt-getinstallopenssh-server2.检查sshd是否启动一般安装成功后就会启动sshd服务,可以通过.

    2025年12月15日
    2
  • 日志大全_打印机日志

    日志大全_打印机日志日志信息每个用例都会生成一个对应的log日志,位置:<ProjectRootDir>/logs/TestCaseID.run.log.如果你想看到request和response、提取

    2022年7月30日
    7
  • tle代码

    tle代码include iostream include string include cstring usingnamespa typedeflongl intn k 1 p 0 maxn strings intmain cin gt gt n cin gt amp cstring string iostream

    2025年6月23日
    1
  • Java面向对象三大特征的理解

    Java面向对象三大特征的理解面向对象三大特征的理解初始理解封装继承多态初始理解其实这些知识很早就有接触,而且一些概念也牢记于心了。自己叙述面向对象的特征会是这样的:面向对象的三大特征是封装、继承和多态。封装是对代码的封装以实现迪内聚高耦合的设计,使代码更安全且具有良好的扩展性。继承是父类产生子类的过程,子类可以使用父类的非私有的属性和方法。多态是一个对象在不同时刻可以表现出不同状态的现象。外加Animal和Cat的例子。这一段时间敲了不少的Java代码,在敲代码的过程中想了无数次的面向对象这几个概念,对他们有了更深的了解,在这

    2022年7月15日
    12
  • Android制作字符串表格String.xml转EXCEL工具

    Android制作字符串表格String.xml转EXCEL工具publicstaticListgetAllExternalSdcardPath(){ListPathList=newArrayList();StringfirstPath=Environment.getExternalStorageDirectory().getPath();Log.d(TAG,”getAllExter

    2022年8月22日
    8
  • Stimulsoft Reports.Web.JS 2022.2.5

    Stimulsoft Reports.Web.JS 2022.2.5Stimulsoft2022.2.5Publishedon13May2022Reports.WebReports.NetReports.WpfReports.JSReports.PHPReports.JavaReports.BlazorReports.AngularDashboards.WEBDashboards.WINDashboards.JSDashboards.PHPBIDesignerBICloudBIServerN..

    2022年7月26日
    8

发表回复

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

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