什么是RNN(循环神经网络)
循环神经网络(Recurrent Neural Network),在识别图像时,输入的每张图片都是孤立的,认出这张图片是苹果,并不会对认出下一张图片是梨造成影响。
 
 
但对语言来说,顺序是十分重要的,“我吃苹果”和“苹果吃我”,词语顺序的改变表达了完全不同的意义。顺序也提供了一定的信息,比如“吃”后面大概率是代表食物的名词。
 
 
为了捕捉数据的这种关联,人们找到了RNN,一个高度重视序列信息的网络。
 
 
序列就是数据的前后关系,RNN的基础结构仍然是神经网络,只不过它多了一个小盒子,用来记录数据输入时网络的状态,在下一次输入数据时,网络必须要考虑小盒子中保存的信息,随着数据的一次次输入,存储信息也在不断更新,盒子中的信息被称为隐状态。
和开始举出的例子一样,RNN最常见的应用领域就是自然语言处理。
-  机器翻译是寻找相同的意义序列,在不同语言中的表达。 
-  诗歌生成是基于一个主题,按照一定的规则输出有逻辑的词语序列。改变两端的信息类型,输入图片输出句子,就是看图说话。 
-  语音同样可以看作声音信号按时间顺序组成的序列,语音识别和语音生成同样在RNN的能力范围内。 
-  股票价格也可以被看作一个受时间影响的序列,很多量化交易模型的建立,就是基于这样的认知。 
不过,RNN仍有不可忽视的缺陷,数据输入的越早,在隐状态中占据的影响就越小,也就是说如果一个句子很长,RNN就会忘记开始时说了什么。
于是就有了RNN的改良版,LSTM-长短时记忆模型。










![React笔记[tsx]-解决Property ‘frames‘ does not exist on type ‘Readonly<{}>‘](https://img-blog.csdnimg.cn/1a2c27c7225c4b7ebbffae0d56ab2705.png)







