循环神经网络

Posted 科研民工的日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环神经网络相关的知识,希望对你有一定的参考价值。

1 语言模型

一般我们会计算文本序列的概率。例如一个4个词的文本序列概率。


为了计算语言模型,我们需要计算词的概率,以及一个词在给定前几个词的情况下的条件概率,即语言模型参数。设训练数据集为一个大型文本语料库,如维基百科的所有条目。词的概率可以通过该词在训练数据集中的相对词频来计算。例如, 可以计算w1在训练数据集中的词频与总词数之比。 也可以直接计算:w1和w2两词相邻的概率与w1概率的比值。


为了简化计算,提出了n元语法,也就是通过马尔科夫假设:一个词的出现只与前面n个词相关,也就是n阶马尔科夫链。如果n=1,那么

。如果基于n-1阶马尔科夫链,就是n元语法:


N元语法是基于n-1阶马尔可夫链的概率语言模型,其中nn权衡了计算复杂度和模型准确性。

2.1不含隐藏状态的神经网络

假设有一个含单隐藏层的多层感知机。给定样本数为n、输入个数为d的小批量数据样本 ,设隐藏层激活函数为 ,那么隐藏层的输出

其中h为隐藏单元个数,输出层的输出为:

q为输出层个数。
2.2 含隐藏状态的神经网络

我们现在考虑数据存在时间相关性的情况。假设 是序列中时间步t的小批量输入, 是该时间步的隐藏变量。与多层感知机不同的是,这里我们保存上一时间步的隐藏变量 ,并引入一个新的权重参数 ,该参数描述当前时间步如何使用上一时间步的隐藏变量。时间步t的隐藏变量计算由当前时间步的输入和上一时间步的隐藏变量共同决定:

与多层感知机相比,这里我们添加了一项,这里的隐藏变量能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。因此,该隐藏变量也称为隐藏状态。由于隐藏状态在当前时间步的定义使用了上一时间步的隐藏状态,上式的计算是循环的。使用循环计算的网络即循环神经网络(recurrent neural network)。


在时间步t,输出层的输出与多层感知机的计算类似:

在不同的时间步t,循环神经网络使用参数依然是隐藏层权重 和偏差 以及输出层的权重 和偏差 ,不会增加参数数量。下图展示了循环神经网络在3个相邻时间步的计算逻辑。X与H合并组成全连接层进入下一个时间步t。隐藏状态中 的计算等价于 连结后的矩阵乘以 连结后的矩阵


2.3应用:基于字符循环神经网络的语言模型
基于字符级的循环神经网络的语言模型

以上是关于循环神经网络的主要内容,如果未能解决你的问题,请参考以下文章

浅谈LSTM循环神经网络

循环神经网络(RNN)简介

循环神经网络

循环神经网络导读

循环神经网络(RNN)的应用

几种常见的循环神经网络结构RNN、LSTM、GRU