我是靠谱客的博主 单身大叔,最近开发中收集的这篇文章主要介绍RNN简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.RNN的应用

         RNN主要有两个应用,一是评测一个句子出现的可能性,二是文本自动生成。

2.什么是RNN?

         RNN之所以叫RNN是因为它循环处理相同的任务,就是预测句子接下来的单词是什么。RNN认为在这循环的任务中,各个步骤之间不是独立,于是它循环记录前面所有文本的信息(也叫记忆),作为预测当前词的一个输入。

   

在RNN中,每个词作为一层,对其进行预测。


F函数一般是tanh或者ReLU

是在t时刻词典中所有词出现的概率,也就是||=|vocabulary|

并且所有层共享U和W

 

3.RNN用来做什么?

         RNNs在NLP中得到了巨大的成功,LSTM是被广泛使用的RNN。LSTM与典型的RNN基本框架一致,只是使用了不同的方式来计算隐藏状态。

         3.1语言模型和文本生成

                  语言模型中,输入时经过编码的词向量序列,输出是一系列预测的词。在训练模型的时候,令 ,也就是让输出等于下一时刻真实的输入,因为在文本生成中,这一时刻的输出对应的是下一时刻的输入。

         3.2机器翻译

                  机器翻译与语言模型的不同是,机器翻译必须等待所有输入结束后才输出,因为这个时候才能得到翻译句子的所有信息。

        

         3.3语音识别。

                  输入一系列的声波信息,然后预测一段语音。

         3.4生成图像描述

                  RNNs和 CNN一起,可以用来为未标记的图像生成描述。

4. 训练RNNs

         训练RNN和训练传统的神经网络一样,都是使用反向传播算法,但是又有些不同,这里所有步骤都共享同一个参数,每一个步骤的回归输出不仅仅依赖于当前时刻,还依赖前面时刻的步骤,这就叫BPTT算法(时间反向传播)。

5. RNN拓展

         5.1双向RNN

                  双向RNN的基本思路基于当前状态下的输出不仅与前面序列有关,还与后面的序列有关。比如要预测序列的一个词,不仅要看左边的词,还要看右边的词。

          

         5.2 深度(双向)RNN

深度(双向)RNN和双向RNN一样,只不过是每一步的隐藏层更多,这使得我们可以获得一个更加好的效果。

                 

         5.3 LSTM

                  LSTM与传统RNN相比,使用了不同方式了计算隐藏状态,它的输入是前一状态的隐藏状态和当前状态的输入,并通过一个输入门和忘记门来对输入进行优化。

 

LSTM和GRU都是计算隐藏态的黑盒。

 

6. LSTM

        

        

            


               

 

7.GRU

              

           

 

推荐网址:    http://deeplearning.net/tutorial/lstm.html

   https://www.zybuluo.com/hanxiaoyang/note/438990

   http://blog.csdn.net/a635661820/article/details/45390671

   http://www.cnblogs.com/ZJUT-jiangnan/p/5222939.html

 

最后

以上就是单身大叔为你收集整理的RNN简介的全部内容,希望文章能够帮你解决RNN简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部