原理
RNN可以记住数据的先后顺序,处理序列数据。之所以能记住,是因为在每个t完成后,其产生的结果会在下一个t开始时,与X一起输送给RNN运算,相当于输入中包含了之前所有t的学习结果,前几步已经预测出来的结果参与接下来的运算。
理解RNN关键就是记住上一步结果会作为下一步输入进行计算。
![d930bae80fe49d549dd56478f37092a4.png](https://i-blog.csdnimg.cn/blog_migrate/dcc78c402e9bcddf07a05f863f53c9fb.jpeg)
x0->H0
h0+x1->h1
普通的RNN里面的+其实就是一个tanh层
![3d254304aff929164af106b6671103d2.png](https://i-blog.csdnimg.cn/blog_migrate/abb73e4cbf160f3cd13915a63fb45555.jpeg)
lstm是基于rnn的变种,思路没变,内部计算层多加了一些东西而已
![20c2ccaa9db6251cad3377277c8f3130.png](https://i-blog.csdnimg.cn/blog_migrate/31c6b2788903a7e7198e71754e361f81.jpeg)
拆解整个的计算流程:
RNN可以记住数据的先后顺序,处理序列数据。之所以能记住,是因为在每个t完成后,其产生的结果会在下一个t开始时,与X一起输送给RNN运算,相当于输入中包含了之前所有t的学习结果,前几步已经预测出来的结果参与接下来的运算。
理解RNN关键就是记住上一步结果会作为下一步输入进行计算。
x0->H0
h0+x1->h1
普通的RNN里面的+其实就是一个tanh层
lstm是基于rnn的变种,思路没变,内部计算层多加了一些东西而已
拆解整个的计算流程: