循环神经网络:循环神经网络

本节将介绍循环神经⽹络。它并⾮刚性地记忆所有固定⻓度的序列,而是通过隐藏状态来储存之前时间步的信息。⾸先我们回忆⼀下前⾯介绍过的多层感知机,然后描述如何添加隐藏状态来将它变成循环神经⽹络。

一、不含隐藏状态的神经网络

先考虑一个单层的多层感知机:
在这里插入图片描述
复习一遍隐藏层的输出、输出层的输出。
隐藏层的输出:
H = ϕ ( X W x h + b h ) H=\phi (XW_{xh}+b_h) H=ϕ(XWxh+bh)

其中, W x h W_{xh} Wxh表示输入层 x x x和隐藏层 h h h之间的权重参数, b h b_h bh为隐藏层h的偏差参数。
输出层的输出:
O = H W h q + b q O=HW_{hq} + b_q O=HWhq+bq

其中 q q q表示输出个数(例如分类问题的类别数)

可以看到,隐藏层 H H H的输出只由输入 x x x得到。

二、含隐藏状态的循环神经网络

首先说明:隐藏状态是一个变量——隐藏变量的别称。

前面章节说到,语言模型的一段文本,可以看做一段时间序列。这段文本中的每个词为 w t w_t wt,其中 t t t称为时间步。(相当于在原有的最基本的神经网络基础上增加了一个维度——时间维度)。下面我们就考虑这种数据存在时间相关性的情况。

假设 X t ∈ R n × d X_t \in R^{n × d} XtRn×d是序列中时间步 t t t的小批量输入, H t ∈ R n × h H_t \in R^{n × h} HtRn×h是该时间步的隐藏层变量( t t t表示时间步。 n n n表示小批量样本数。 d d d表示输入个数,及特征个数)。由于加入了时间的维度,所以每个时间步都会有一个 H H H H 1 , H 2 , H 3 , . . . , H t − 1 , H t , H t + 1 . . . , H T H_1,H_2,H_3,...,H_{t-1},H_t,H_{t+1}...,H_T H1,H2,H3,...,Ht1,Ht,Ht+1...,HT

循环神经网络的做法与多层感知机的不同之处在于:隐藏层 H t H_t Ht的输出由当前时间步的输入 X t X_t Xt和上一时间步的隐藏层变量 H t − 1 H_{t-1} Ht1得到。具体公式如下:
H t = ϕ ( X t W x h + H t − 1 W h h + b h ) H_t=\phi (X_tW_{xh} + H_{t-1}W_{hh}+b_h) Ht=ϕ(XtWxh+Ht1Whh+bh)

与多层感知机的不同,除了输入输出增加了代表当前时间步的下标 t t t之外,还增加了一项 H t − 1 W h h H_{t-1}W_{hh} Ht1Whh。(通俗地理解,就是:文本可以看成我们平时说的话。而我们平时说话都是有逻辑的,每个字前前后后都是相关联的,反映到这个公式上,就是隐藏变量在不同时间步上的相关性。)

该公式的图示如下:
在这里插入图片描述

三、其他说明

  1. 上述隐藏变量的计算公式表明:当前的隐藏变量捕捉了截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样
  2. 所有的时间步都使用相同的模型参数
  3. X t W x h + H t − 1 W h h X_tW_{xh} + H_{t-1}W_{hh} XtWxh+Ht1Whh等价于 X t X_t Xt H t − t H_{t-t} Htt连接后(concat)的矩阵乘以 W x h W_{xh} Wxh W h h W_{hh} Whh连接后的矩阵
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值