来自谷歌大脑工程师的RNN系列教程 | RNN的基本介绍

  • 时间:
  • 浏览:0
  • 来源:5分快乐8_5分快乐8平台_5分快乐8网投平台

上周,亲戚或多或少人分享了一篇来自硅谷工程师的TensorFlow教程,有读者反馈希望了解更多关于RNN的相关内容。就是我,在接下来的几周中,科技行者为亲戚或多或少人准备了一套RNN系列的入门教程,供亲戚或多或少人参考。

上周,亲戚或多或少人分享了一篇来自硅谷工程师的TensorFlow教程《来自硅谷工程师的Google TensorFlow教程:很久现在现在开始英文训练你的第有八个 RNN吧》,有读者反馈希望了解更多关于RNN的相关内容。就是我,在接下来的几周中,科技行者为亲戚或多或少人准备了一套RNN系列的入门教程,供亲戚或多或少人参考。

该教程细分为以下偏离 :

1.循环神经网络(RNN)的基本介绍(本偏离 ) 2.利用Python和Theano实现RNN 3.理解时间进化反传算法(BPTT)的算法和梯度消失问题 4.建立基于门控循环单元(GRU)不可能 长短时记忆(LSTM)的RNN模型

如此今天,亲戚或多或少人将先对RNN做有八个 基本介绍。

在或多或少教程里,亲戚或多或少人不可能 建立有八个 基于RNN的语言模型。语言模型的应用有双重目的:第一,可以根据话语在现实中出現的不可能 性和概率对任意话语进行评分。这给了亲戚或多或少人语法和语义上的度量,在机器翻译系统中,同类模型非常常见。第二,有八个 语言模型可以生成新文本。同类,Andrej Karpathy的这篇博文(http://karpathy.github.io/2015/05/21/rnn-effectiveness/)就展示了RNN模型的作用和有效性,它可以训练莎士比亚的诗集,从而生成同类莎士比亚诗集的文本。

在很久现在现在开始英文本次教程前,前要您对神经网络(NNs)的基本概念有了一定的了解。神经网络是是或多或少应用同类于大脑神经突触联接的形态学 进行信息处理的数学模型。

-1-

何为RNN

RNN的本质概念是利用时序信息,在传统神经网络中,假设所有的输入(以及输出)都所一群人独立。就是我,对于就是任务而言,这非常局限。举个例子,假如有一天你想根据一句没说完话语,预测下有八个 单词,最好的最好的办法就是我联系上下文的信息。而RNN(循环神经网络)难能可贵是“循环”,是不可能 它们对序列的每个元素执行相同的任务,而每次的结果都独立于很久的计算。

另或多或少思考RNN的最好的办法是,它拥有“记忆”模块,可以获取不可能 计算过的信息。理论上讲,RNN可以利用任意长度的序列信息,但上上可以利用有限的前几步的信息。

下面便是有八个 典型的RNN模型:

 

上图显示的是RNN模型完整展开时的清况 。“展开”指的是用网络描述出所有序列。

同类,不可能 序列中的话语有八个单词,如此,横向展开网络后将有五层神经网络,一层对应有八个 单词。

下面解释一下其中的计算公式:

前要注意的有几点:

  • 因此你将隐藏清况 作为神经网络的记忆单元。记录了前面步骤的信息。在时刻t时的输出结果仅仅计算了时间t时的记忆信息。但如前面说的,实际操作中会或多或少冗杂,不可能 上可以从很久的下午英语 中捕捉到过多信息。
  • 传统DNN(深层神经网络)模型一般在不同层采用不同参数权重,与之不同,RNN在各层的参数是一样的(如上述的U、V、W等)。这原应着或多或少模型对于每一步的作用是一致的,就是我输入不同。从前的最好的办法大幅降低了前要学习的参数总数,减少了就是计算量。
  • 在里面的图片中显示,不同的时间节点会产生不同的形态学 输出。就是我,不同任务中,有或多或少输出则是多余的。同类,在感情的话语分析里,亲戚或多或少人只关心或多或少话语最终表达的情绪,而前要每有八个 单词表达的情绪。同样的,也前要前要得在每有八个 时间点前要输入。

-2-

RNN
有何用处?

在众多自然语言处理的任务中,RNN不可能 取得了巨大成功。这里,前要指出的是RNN中最常用的类型是长短时记忆(LSTMs)模型,相比较于原始的RNN,LSTM可以存储更长的时序信息。就是我,本教程中LSTM在本质上和亲戚或多或少人所要开发的RNN是一致的,只不过LSTM计算隐藏清况 的最好的办法有所不同。在下有八个 教程中,亲戚或多或少人不可能 更完整地讲解LSTM。

接下来,亲戚或多或少人主要介绍一下在自然语言处理中应用RNN的例子:

2.1 语言建模和文本生成 通过训练RNN模型,亲戚或多或少人可以基于给出的有八个 单词序列,预测下有八个 单词。这对于语言建模和文本生成而言是非常有价值的。

一齐,语言模型可以用于评估有八个 话语出現的不可能 性,这对机器翻译而言也是非常重要的(不可能 高概率的话语通常是正确的)。

可以预测下有八个 单词出現的概率,那是不可能 亲戚或多或少人所得到的衍生模型可以根据输出的不可能 性来生成新文本。而根据亲戚或多或少人的训练数据,模型还可以得到所有类型的文本。在语言建模中,亲戚或多或少人的输入属于典型的单词序列(同类利用one-hot载体进行编码),而在训练该神经网络时,亲戚或多或少人希望t时刻的输出是精确的,就是我,亲戚或多或少人会设定。

下面是关于语言建模和文本生成的研究论文:

Recurrent neural network based language model

《基于循环神经网络的语言模型》

Extensions of Recurrent neural network based language model

《基于循环神经网络拓展的语言模型》

Generating Text with Recurrent Neural Networks

《利用循环神经网络生成文本》

2.2 机器翻译

机器翻译同类于语言建模,亲戚或多或少人首先输入源语(同类德语),前要输出是目标语(同类英语)。关键区别是,在机器翻译中,翻译的第有八个 字不可能 会前要所有已输入话语的信息,就是上可以看后完整输入很久可以输出。

 

▲ 上图是用于机器翻译的RNN模型

图片来源:http://cs224d.stanford.edu/lectures/CS224d-Lecture8.pdf

下面是关于机器翻译的研究论文:

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

《利用循环神经网络进行语言和翻译的建模》

2.3 语音识别

根据从声音中得到的一系列声波信号,并以此作为输入,可以预测出一系列语音片段及其不可能 性。

下面是关于语音识别的研究论文:

Towards End-to-End Speech Recognition with Recurrent Neural Networks

《利用循环神经网络进行端对端的语音识别》

2.4 生成图片的文字描述 和CNN(卷积神经网络)一样,RNN也被应用于生成描述未被标签的图片模型。就是我,两者结合的模型组合甚至可以最好的办法图片形态学 排列生成文字,以及图片中形态学 的对应位置。如下图:

 

▲用于生成图像描述的深层视觉 - 语义示例

来源:http://cs.stanford.edu/people/karpathy/deepimagesent/

2.5 训练RNN模型

训练RNN模型与训练传统的神经网络同类。亲戚或多或少人同样采用反向传播算法,但前要不同。不可能 在RNN中,横向展开的每一层前要共享权重的,每有八个 输出的梯度(gradient)不仅仅依赖于当下或多或少时间点,还依赖于过去的时间点。举个例子,我应该 计算时间点t=4的梯度,亲戚或多或少人前要反向传播八个时间点,并把梯度相加。或多或少算法就叫做BPTT(Backpropagation Through Time)。现在只前要知道,BPTT算法或多或少是有局限性的,它上可以长期记忆,前要引起梯度消失和梯度爆炸问题,LSTM就是我用来处理或多或少问题的。

2.6 RNN模型的拓展 多年以来,为了克服传统循环神经网络(vanilla RNN)的弱点,研究人员不可能 开发出更多统计型的循环神经网络。很久的偏离 ,亲戚或多或少人将更细致地对此进行讲解,就是我,假如有一天这偏离 概要能够大致了解一下模型分类。下面是或多或少典型的模型:

双向循环神经网络(Bidirectional RNN的理念是,时间t时的输出不仅仅取决于过去的记忆,也同样取决于里面指在的事情。同类,某一序列中,我应该 预测有八个 单词,会联系前文和后文。双向循环神经网络便是如此简单。仅仅是两套循环神经网络前后交叠在一齐而已。输出的计算结果便基于这两套循环神经网络的隐藏清况 。如下图:

深层(双向)(Deep (Bidirectional) RNN循环神经网络同类于双向循环神经网络,只不过是每个时长内前要多层。实际上,或多或少点原应着它有更强的学习能力(就是我相应地,也前要血块训练数据)。

LSTM网络:近来,LSTM非常流行。本质上,LSTM与RNN的基础架构并无不同,就是我,LSTM在计算隐藏清况 前要采用不同的函数。LSTM中的记忆被称为“细胞”,而可以把哪些“细胞”视作黑匣子,记忆很久清况 为的输入和当前为x_t的输入。本质上,哪些“细胞”将决定将保留或剔除相关记忆,“细胞”可以整合很久的清况 、当前的记忆和输入。而结果证明,对于长期的记忆来说,哪些单元的类型非常高效。

-3-

总结

希望通过第一篇教程,你不可能 对RNN的定义和作用有了有八个 基本的了解。下周,亲戚或多或少人将介绍如何利用Python和Theano建立起第有八个 基于RNN的语言模型

相关研究论文获取最好的办法:关注科技行者公众号(itechwalker),并打开对话界面,回复关键字“RNN论文”,即可获得下载地址。

| 来源:WILDML;作者:Denny Britz;编译:科技行者