循环神经网络(RNN)
课程链接:https://datawhalechina.github.io/unusual-deep-learning/#/06.RNN
计算图
概念
计算图是一种描述计算结构的图,其元素包含节点和边。其中节点是一种值,这个值可以是标量也可以是矢量以及标量,边是对这个值进行的某种操作,即是一个函数。
计算图
计算图求偏导
RNN
概念
RNN 是一种人工神经网络,其是一个遵循时间序列的有向图。核心思想是:样本间存在顺序关系,每个样本和有物理联系的之前的样本存在这关联。将神经网络在时序上展开,即可找到样本之间的序列相关性
RNN结构
RNN结构
其中:Xt,St,Ot 分别表示的是 t 时刻的输入、记忆和输出,U,V,W是RNN连接权重,bs,bo是RNN的偏置,σ,φ是激活函数。其中σ 通常会选择tanh 或者 sigmoid 函数,φ通常选用softmax函数。 softmax 函数:用于计算分类问题的概率。本质上是将任意实数向量压缩(映射)成另一个K维实数向量,其中向量中的每个元素取值都介于(0,1)之间。
RNN案例
- 词性标注
- 例子:
- 我/n,爱/v购物/n,
- 词嵌入: NLP中一组语言建模和特征学习技术的统称,其中来自词汇表的单词或短语被映射到实数的向量。比如
- 过程:将神经元的输出存储在内存中,然后将此值作为下一次循环的输入值,如此每次都会更新内存中存储的此值,如图:
- RNN的一般结构(Elman Network)
长短时记忆网络
来源
在RNN中,会出现梯度消失问题,无法长时间依赖
解决办法
- 使用ReLU函数和门控RNN
- LSTM 结构
- LSTM 依靠贯穿隐藏层的细胞状态实现隐藏单元之间的信息传递,只有少量的线性操作
- LSTM引入“门”机制,对细胞状态信息进行添加、删除,并以此实现长时记忆
- “门”机制由一个Sigmoid 激活函数层和一个向量点乘操作组成。Sigmoid层的输出控制了信息传递的比例
- 遗忘门
- LSTM通过遗忘门(forget gate)实现对细胞状态信息遗忘程度的控制,输出当前状态的遗忘权重,取决于h[t-1]和x[t]
- 输入门
- LSTM通过输入门(input gate)实现对细胞状态输入接收程度的控制,输出当前输入信息的接受权重。取决于h[t-1]和x[t]
- 输出门
1.LSTM通过输出门(output gate)实现对细胞状态输出认可程度的控制,输出当前输出信息的认可权重,取决于h[t-1]和x[t] - 状态更新
- “门”机制对细胞状态信息进行添加或删除,以此实现长程记忆。
其他RNN
- Gated Recurrent Unit(FRU)
- 是LSTM 的变种,它的细胞状态与隐状态合并,在计算当前时刻新信息的方法和LSTM有 所不同;GRU只包含重置门和更新门
- Peephole LSTM
- 让门层也接受细胞状态的输入,同时考虑隐层信息的输入。
- Bi-directional RNN(双向RNN)
- Bi-directional RNN(双向RNN)假设当前t的输出不仅仅和之前的序列有关,并且还与之后的序列有关
RNN主要应用
- 语言模型:根据已有单词预测下一个单词
- 问答系统
- 自动作曲
- 机器翻译:语言之间的翻译
- 图像描述:将图像描述成语言
|