Advertisement

一天搞懂深度学习—学习笔记3(RNN)

阅读量:

Recurrent Neural Network(RNN) (Neural Network with Memory)

1.一些基本的理解

开场首先来个填词题目,I would like to arrive at (Taipei) on (November 2nd). 我们人来填的话,很简单就能想到第一个空是地点,第二个是时间。那么对于计算机,它该如何处理这样的内容呢。

首先第一个要解决的是表示形式。
在语言中,最基本的是字,然后由字可以组成词语,词语可以连成句子,那么问题就变得简单了,只要我们能表示一个词语,并让计算机识别这个词语,那么就可以表示这样一个句子。不过在自然语言中,一个字表达的意思往往不够清楚,因此主要选择对词语进行建模,然后连词成句,当然也可以对字进行建模,不过数量上应该少很多。

怎样对词语建模呢
如果了解work2vec的工作原理,那这个问题就很简单了。work2vec将句子先拆分成词语,首先建立词语库,对每一个词语初始化100、200甚至更高维度的词向量,注意到,这里的词向量是需要先初始化的,然后在不断的训练中得到最优词向量。
(有一种编码方式叫做独热编码one-hot encoding, 具体内容查看下面网址,个人觉得这个讲的比其它的好 http://www.wyblog.cn/2016/10/31/数据预处理-one-hot编码/)

2.我们来看看RNN

A recurrent neural network and the unfolding in time of the computation involved in its forward computation. Source: Nature

The diagram above demonstrates how an RNN is unfolded (or unfolded) into a comprehensive network structure. The process of unrolling involves constructing a complete neural network that processes an entire sequence at once. One example is when dealing with sentences, where each word corresponds to its own layer in this expanded architecture.

In this context:

  • The input at time step t is denoted by xt. One-hot vectors are often used to represent words in sequences.
  • The hidden state st captures information about the sequence processed up to time step t. It's computed based on previous states and current inputs.
  • At each time step t, st = f(Uxt + Wst-1). Here, f represents a non-linear activation function such as tanh or ReLU. The initial state s-1 (required for computing s0) is typically initialized to all zeros.
  • ot represents the output generated at step t. For instance, predicting the next word in a sentence yields an output vector representing probabilities over vocabulary.

Each xt goes through linear transformation followed by activation function f before contributing to subsequent hidden states and outputs.

This sequential processing enables capturing temporal dependencies within data sequences effectively.

上文直译过来就是说:RNN网络是一种具有时序特性的神经网络模型,在文本处理任务中,若所需的信息数量是以每个RNN神经单元的输出特征向量维度为计算基准,则该网络将展开相应多层结构来模拟生成过程。从介绍部分可以看出:各隐藏层均初始化其权重参数为全零向量,并且每层都会产生相应的输出特征向量;此外各层输出经Softmax函数处理后得到的概率分布结果也被系统地加以利用。

3.RNN作用

在自然语言处理领域中应用广泛的是RNN,在这种情况下由于语言处理过程中必须了解语义背景信息而必须了解语义背景信息因此上图中的RNN模型能够识别前文的信息此外我们可以构建双向循环且多层叠置的RNN架构具体设计则取决于实际需求而LSTM(长短期记忆网络)因其优异性能已成为最流行的 recurrent 网络之一我们接下来将深入探讨这一重要技术。

4.LSTM 深入解析深度学习的核心机制(即广泛借鉴他人的研究成果和方法)

这里写图片描述
这里写图片描述

观察到LSTM引入了Forget Gate后似乎非常简单。通过对比两组图片可以更直观地理解其工作原理。

这里写图片描述
这里写图片描述

LSTM的核心是位于顶端的单个细胞单元,在模型架构中这一结构能够跨越所有时间步长的隐藏层,并且仅会通过缩放作用进行增减操作。这种设计使得LSTM网络能够在处理时序数据时保持信息不失真地传递下去。

在当前时间步长中,首先要删除那些无关联的信息元素,在此之后再加入新的信息元素。具体而言,在图示展示中这些操作是从左至右依次进行的:主线上带有缩放作用(x号)的部分负责删除无用信息,而带有加法操作(+号)的部分则用于注入新的特征内容。

这里写图片描述
这里写图片描述

同样利用ht-1和x作为输入的第一步是引入一个sigmoid门机制来决定需要更新哪些信息;随后采用另一个tanh机制来计算出具体应更新哪些信息及其对应的数值;将这些计算结果融入Ct-1中以获取当前状态Ct

这里写图片描述

通过我们的研究,我们获得了Ct值,并将其作为cell线的输出结果使用;然而,在当前模型中还存在两个关键部分需要进一步处理:一个是隐藏层的输出信息,另一个是当前时刻的时间编码。

首先将Ct的状态通过tanh函数将其转换为适合于隐藏层与当前时刻输出的形式(范围在-1至1之间)。接着依据ht-1与x的消息内容来决定哪些输出单元应当被激活。例如当x输入了一个新的性别标识符如'man'时 我们就需要将这一身份信息传递给下一时刻。在这种情况下 如果下一刻的输入需求涉及动词形态推测 那么基于我们所传递过去的'man'这一信息 就能够确定此时应当采用第三人称单数形式进行输出。

最后:话说这些图做的都炒鸡好,感谢!

参考材料
1.http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
2.http://www.jianshu.com/p/9dc9f41f0b29
3.http://blog.sina.com.cn/s/blog_8e5ce7190102wsna.html

全部评论 (0)

还没有任何评论哟~