动手学深度学习——循环神经网络

循环神经网络

循环神经网络(RNN)主要用于预测任务:基于当前和历史输入序列,预测序列的下一个字符。循环神经网络相对于普通神经网络而言,最大的特点在于颖仓变量 H H 的引进,用 H t H_{t} 表示 H H 在时间步 t t 的值,该变量记录了到当前字符为止的序列信息。历史信息的使用使得预测更为精确。循环神经网络的示意图:
在这里插入图片描述

循环神经网络模型

假设 X t R n × d \boldsymbol{X_{t} \in \mathbb{R}^{n \times d}} 是时间步 t t 的小批量输入, H t R n × h \boldsymbol{H_{t} \in \mathbb{R}^{n \times h}} 是该时间步的隐藏变量,则:
H t = Φ ( X t W x h + H t 1 W h h + b h ) \boldsymbol{H_{t}}=\Phi(\boldsymbol{X_{t}}\boldsymbol{W_{xh}}+\boldsymbol{H_{t-1}}\boldsymbol{W_{hh}}+\boldsymbol{b_{h}})

其中 W x h R d × h \boldsymbol{W_{xh} \in \mathbb{R}^{d \times h}} W h h R h × h \boldsymbol{W_{hh} \in \mathbb{R}^{h \times h}} b h R 1 × h \boldsymbol{b_{h} \in \mathbb{R}^{1 \times h}} Φ \Phi 函数是非线性激活函数。由于引入了 H t 1 W h h \boldsymbol{H_{t-1}}\boldsymbol{W_{hh}} H t \boldsymbol{H_{t}} 能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。循环神经网络的展开式示意图如下所示:
在这里插入图片描述
在时间步,输出层的输出为:
O t = H t W h q + b q \boldsymbol{O_{t}}=\boldsymbol{H_{t}}\boldsymbol{W_{hq}}+\boldsymbol{b_{q}}

其中 W h q R d × h \boldsymbol{W_{hq} \in \mathbb{R}^{d \times h}} b q R 1 × q \boldsymbol{b_{q} \in \mathbb{R}^{1 \times q}}

注:上述来源于伯禹学习平台的《动手学深度学习》的学习笔记

发布了19 篇原创文章 · 获赞 17 · 访问量 1464

猜你喜欢

转载自blog.csdn.net/weixin_43839651/article/details/104318614
今日推荐