深度学习——循环神经网络RNN(一)_反向传播算法

RNN网络结构

Elman神经网络是最早的循环神经网络,由Elman于1990年提出,又称为SRN(Simple Recurrent Network, 简单循环网络)。RNN考虑了时序信息,当前时刻的输出不仅和当前时刻的输入有关,还和前面所有时刻的输入有关。

RNN的结构图(引用[2]中的图)如下:

  • xt 表示t时刻的输入向量;

  • ht 表示t时刻的隐藏层向量:
    隐层计算公式为

    ht=f(Whhht1+Wxhxt+bh)(1)

    f是隐层的激活函数。 h0 一般初始化为0。
    我们可以认为 ht 包含了当前时刻及以前的所有记忆。虽然理论上这句话没问题,但是在实际中,由于梯度消失/爆炸问题的存在, ht 只包含了有限步的信息,并不能捕获太久之前的信息。这被称为长时依赖问题。

  • yt 表示t时刻的输出向量:
    输出 yt 的计算公式为

    yt=g(Whyht+by)(2)

    g一般为softmax函数。

在训练RNN时,一个输入序列看做一个实例,其误差由各时刻误差之和组成:

J=t=1TJt(3)

梯度计算

RNN的梯度计算比多层前馈神经网络要复杂一些,其反向传播算法有个特有的名字:随时间反向传播算法(Backpropagation Through Time,BPTT)[Werbos, 1990]。

这里会介绍两种计算RNN梯度的方法,并且仅以 Whh 的梯度为例进行说明。

暴力求解

这里写图片描述

我们暂且把t步的 Whh 写成 Whht ,于是:

JWhh=t=1TJWhht=t=1T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值