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

循环神经网络

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

循环神经网络模型

假设 X t ∈ R n × d \boldsymbol{X_{t} \in \mathbb{R}^{n \times d}} XtRn×d是时间步 t t t的小批量输入, H t ∈ R n × h \boldsymbol{H_{t} \in \mathbb{R}^{n \times h}} HtRn×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}}) Ht=Φ(XtWxh+Ht1Whh+bh)

其中 W x h ∈ R d × h \boldsymbol{W_{xh} \in \mathbb{R}^{d \times h}} WxhRd×h W h h ∈ R h × h \boldsymbol{W_{hh} \in \mathbb{R}^{h \times h}} WhhRh×h b h ∈ R 1 × h \boldsymbol{b_{h} \in \mathbb{R}^{1 \times h}} bhR1×h Φ \Phi Φ函数是非线性激活函数。由于引入了 H t − 1 W h h \boldsymbol{H_{t-1}}\boldsymbol{W_{hh}} Ht1Whh H t \boldsymbol{H_{t}} Ht能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。循环神经网络的展开式示意图如下所示:
动手学深度学习——循环神经网络_第2张图片
在时间步,输出层的输出为:
O t = H t W h q + b q \boldsymbol{O_{t}}=\boldsymbol{H_{t}}\boldsymbol{W_{hq}}+\boldsymbol{b_{q}} Ot=HtWhq+bq

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

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

你可能感兴趣的:(书籍阅读,神经网络,深度学习)