RNN(Recurrent Neural Networks) 循环神经网络
目的:考虑连续数据的前后关联影响。
方法:将前(和/或 后)方的数据作为一个权重加入到原有推断中。
作用:预测分析,语义分析,连续数列的分析
改进:
双向RNN:前后都作为权重加入到神经元的推导
LSTM:输入门,输出门,遗忘门,解决长期依赖的问题
GRN:更新门,重置门,与LSTM相同,节省计算量
seq2seq:解决不等长序列的问题
一、RNN
普通的神经网络中的神经元分布为:
思路为:每一个点的数值乘以相关权重,求和,通过激活函数得到下一层的每个点。
问题为:每个数据为独立变量,不存在相互关联。而对于连续数据来说,前一个点与后一个点之间存在关联。为解决这个问题,让神经网络发掘出前后点之间的关联,提出循环神经网络。
1. RNN原理
前一个节点的信息传递给下一个节点作为输入,其运算公式为:
ht = tanh(W*xt+U*ht-1+b)
其中xt为t时刻的输入,ht为t时刻的输出,W为该节点的权重,tanh为激活函数
当我们想知道ht时,ht其实包含了x0~xt的所有数值信息
2. RNN缺点