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