第一次整理内容有些凌乱
Recurrent Neural Networks (RNN) 循环神经网络主要用于自然语言处理及序列标注问题
记忆:某一时间节点,获取输入向量x<t>信息,通过隐含层(包含多种多种block)激活函数激活后,将信息传递给后续节点
输入信息x与输出信息y长度均大于1,例如,命名体识别任务、机器翻译任务等
输入信息长度为1,输出信息长度大于1
输入信息长度为大于1,输出信息长度为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—输出激活函数
公式
本图为Rnn某个cell内的数据流向
梯度爆炸问题 解决方案gradient-clipping
梯度消失问题-y<t>的输出仅受位置较近的信息影响,不擅长捕捉远程依赖关系
传播方向单向问题 解决方案BRN