RNN学习笔记(一)--初识RNN
第一次整理内容有些凌乱
1.概述
1.1用途
Recurrent Neural Networks (RNN) 循环神经网络主要用于自然语言处理及序列标注问题
1.2特点
记忆:某一时间节点,获取输入向量x<t>信息,通过隐含层(包含多种多种block)**函数**后,将信息传递给后续节点
2.主要解决问题
2.1 many-to-many
输入信息x与输出信息y长度均大于1,例如,命名体识别任务、机器翻译任务等
2.2 one-to-many
输入信息长度为1,输出信息长度大于1
2.3 many-to-one
输入信息长度为大于1,输出信息长度为1
3 前向传播过程 forward propagation
3.1内部公式
RNN cell 内部结构数上图所示,以many-to-many中的输入输出信息一一对应的rnn模型为例;每一个节点包含两个输入信息
输入信息
a<t-1>—上一节点的**值(主要的记忆功能),通常a<0>设为0向量
x<t>—本节点的输入信息
参数
包含五个待估计参数(均为整个序列的共享参数,每一次向下一节点传播均使用这四个参数)
Waa—**值之间的参数,将上一节点**值a<t-1>的信息,传入本节点**值a<t>
Wax—输入信息与**值之间的参数,将本节点输入信息x<t>的信息,传入本节点**值a<t>
ba—**值偏置
Wya—**值与输出结果之间的参数
by—输出结果偏置
**函数
tanh— Rnn常用**函数公式如下
softmax—输出**函数
公式
3.2数据流向
本图为Rnn某个cell内的数据流向
4 反向传播过程
5问题
梯度爆炸问题 解决方案gradient-clipping
梯度消失问题-y<t>的输出仅受位置较近的信息影响,不擅长捕捉远程依赖关系
传播方向单向问题 解决方案BRN