今天的学习资料是这篇文章,写的非常详细,有理论有代码,本文是补充一些小细节,可以二者结合看效果更好:
https://zybuluo.com/hanbingtao/note/541458
在文末有关于 RNN 的文章汇总,之前写的大多是概览式的模型结构,公式,和一些应用,今天主要放在训练算法的推导。
本文结构:
- 模型
- 训练算法
- 基于 RNN 的语言模型例子
- 代码实现
1. 模型
- 和全连接网络的区别
- 更细致到向量级的连接图
- 为什么循环神经网络可以往前看任意多个输入值
循环神经网络种类繁多,今天只看最基本的循环神经网络,这个基础攻克下来,理解拓展形式也不是问题。
首先看它和全连接网络的区别:
下图是一个全连接网络:
它的隐藏层的值只取决于输入的 x

而 RNN 的隐藏层的值 s 不仅仅取决于当前这次的输入 x,还取决于上一次隐藏层的值 s:
这个过程画成简图是这个样子:

其中,t 是时刻, x 是输入层, s 是隐藏层, o 是输出层,矩阵 W 就是隐藏层上一次的值作为这一次的输入的权重。
上面的简图还不能够说明细节,来看一下更细致到向量级的连接图:

Elman and Jordan networks are also known as “simple recurrent networks” (SRN).
其中各变量含义:

输出层是一个全连接层,它的每个节点都和隐藏层的每个节点相连,
隐藏层是循环层。

本文详细介绍了循环神经网络的基础模型、训练算法BPTT的推导,以及基于RNN的语言模型例子,包括词向量表示、softmax输出层,并提供了代码实现的指引。
最低0.47元/天 解锁文章
1251

被折叠的 条评论
为什么被折叠?



