RNN简介
来源:互联网 发布:可以画画的软件 编辑:程序博客网 时间:2024/06/05 04:33
RNN简介
最近由于工作需要,看了一些RNN (Recurrent Neural Networks )的相关资料,对RNN多少有了一些了解。发现一个绝佳的RNN入门tutorial,顺手记录下来。
以下内容大部分译自:http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
1、什么是RNN?
在如今高速发展的互联网时代,我们的生活工作中其实有很多RNN的影子,比如:语音助手、机器翻译等等,那么什么是RNN呢?
RNN能够运用序列数据信息。在传统的神经网络中,所有的输入(或输出)之间是独立的 (即本层内部没有连接)。也就是说,输入与输入之间没有任何关联,这种假设对于序列数据显然不合理,比如:给定一个句子的前几个词,预测接下来最可能出现的词 (句子前后不同的词之间有密切的关联)。RNN能够处理这种类型的任务。
典型的RNN结构如下:
基本RNN结构和按时间展开的结构(图片来源)
在上图中,
理论上,隐藏状态
2. RNN的应用
RNN目前已有了很多成功的应用,主要是LSTM(long-short term memory)模型的广泛使用。LSTM比基本的RNN模型能更好的解决长期依赖的问题(即需要很久之前的信息)。与基本RNN相比,LSTM只是在记忆单元的计算上做了些改进,本质没有太大区别 (后续做较详细的介绍)。
(1) 语言建模和文本生成
给定一系列文字(比如编码为ont-hot vector),我们期望预测出可能出现的每个词的概率。语言模型可以估计每个句子的概率,概率大的最可能是正确的。
相关研究论文:
Recurrent neural network based language model
Extensions of Recurrent neural network based language model
Generating Text with Recurrent Neural Networks
(2) 机器翻译
与语言模型相似,机器翻译的输入是某种语言的一系列词,我们希望用另一种语言去表示这些词。主要差别在于,只用在输入完毕后,机器翻译才开始输出,从而保证翻译的准确性。
机器翻译RNN (图片来源)
相关研究论文:
A Recursive Recurrent Neural Network for Statistical Machine Translation
Sequence to Sequence Learning with Neural Networks
Joint Language and Translation Modeling with Recurrent Neural Networks
(3) 语音识别
给定一系列音频,预测语句及其概率值。
相关研究论文:
Towards End-to-End Speech Recognition with Recurrent Neural Networks
(4) 生成图像描述
RNN结合CNN,可以对没有任何标注的图片内容进行描述,并且达到很好的效果。
生成图像描述 (图片来源)
3. RNN的变种
(1) Bidirectional RNN
很多时候,时刻
Bidirectional RNN (图片来源)
(2) Deep (Bidirectional) RNN
与 Bidirectional RNN 类似,只是每个时刻
Deep (Bidirectional) RNN (图片来源)
(3) LSTM
LSTM与基本RNN类似,只是记忆单元的计算方式不同。LSTM中的记忆单元又称 cells,由先前cell 状态和当前输入作为输入,进一步决定保留哪些记忆。
好了,RNN的基本介绍就到这里,后续会继续跟进。
- RNN简介
- RNN简介
- RNN简介
- RNN 简介
- 递归神经网络(RNN)简介
- 递归神经网络(RNN)简介
- RNN 之LSTM简介
- 循环神经网络RNN简介
- 递归神经网络(RNN)简介
- RNN, LSTM简介
- RNN(recurrent neural networks)简介
- 循环神经网络教程第一部分-RNN简介
- 递归(循环)神经网络(RNN)简介
- RNN
- rnn
- RNN
- RNN
- RNN
- 关于查询的作业题
- Flask进阶(一)——请求上下文和应用上下文完全解答(上)
- Medium:Find Bottom Left Tree Value
- 实现分页代码
- Java连接数据库步骤
- RNN简介
- 标签命名
- 关于使用bootstrap中modal和ajaxupload.js图片问题
- Arduino基础学习-tone函数
- C++11 新标准(二)
- Java学习之集合
- sqlhelper
- Mosquitto--简要教程
- js代码中 何时加入引号,何时不加