您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 规章制度 > LSTM学习介绍-各种门的介绍
长短记忆型递归神经网络LSTM一种特殊的递归神经网络,能够学习长期依赖关系,记住信息很长一段时间几乎是它们固有的行为,而不是努力去学习,所有的递归神经网络都具有一连串重复神经网络模块的形式。在标准的RNNs中,这种重复模块有一种非常简单的结构,比如单个tanh层。LSTMs同样也有这种链状的结构,但是重复模块有着不同的结构。它有四层神经网络层以特殊的方式相互作用,而不是单个神经网络层。在上面的图中,每条线表示一个完整向量,从一个节点的输出到其他节点的输入。粉红色圆圈代表逐点操作,比如向量加法,而黄色框框表示的是已学习的神经网络层。线条合并表示串联,线条分叉表示内容复制并输入到不同地方。LSTMs核心理念:LSTMs的关键点是单元状态,就是穿过图中的水平线。LSTM有能力向单元状态中移除或添加信息,通过结构来仔细管理称为门限。门限是有选择地让信息通过。它们由一个sigmoid神经网络层和逐点乘法运算组成。sigmoid层输出0到1之间的数字,描述了每个成分应该通过门限的程度。0表示“不让任何成分通过”,而1表示“让所有成分通过!”。LSTM有三种这样的门限,来保护和控制单元状态。一步一步剖析LSTMLSTM中第一步是决定哪些信息需要从单元状态中抛弃。这项决策是由一个称为“遗忘门限层”的sigmoid层决定的。它接收和,然后为单元状态中的每个数字计算一个0到1之间的数字。1表示“完全保留”,而0则表示“完全抛弃”。E.g:我们来回顾一下那个语言模型的例子,试图根据前面所有的词语来预测下一个词。在这种问题中,单元状态可能包含当前主语的性别,所以可以使用正确的代词。当碰到一个新的主语时,我们希望它能够忘记旧主语的性别。接下来我们需要决定在单元状态中需要存储哪些新信息。这分为两个部分。首先,一个叫做“输入门限层”的sigmoid层决定哪些值需要更新。接下来,一个tanh层创建一个向量,包含新候选值,这些值可以添加到这个状态中。下一步我们将会结合这两者来创建一个状态更新。在语言模型的例子中,我们希望在单元状态中添加新主语的性别,来替换我们忘记的旧主语性别。现在来更新旧单元状态了,输入到新单元状态。之前的步骤已经决定了需要做哪些事情,我们只需要实现这些事情就行了。我们在旧状态上乘以,忘记之前决定需要忘记的。然后我们加上,这就是新的候选值,它的规模取决于我们决定每个状态值需要更新多少。在语言模型的例子中,这里就是我们实际丢弃旧主语性别信息,根据之前步骤添加新信息的地方。最后,我们需要决定需要输出什么。这个输出将会建立在单元状态的基础上,但是个过滤版本。首先,我们运行一个sigmoid层来决定单元状态中哪些部分需要输出。然后我们将单元状态输入到tanh函数(将值转换成-1到1之间)中,然后乘以输出的sigmoid门限值,所以我们只输出了我们想要输出的那部分。对于语言模型例子来说,因为它只看到了一个主语,它可能想输出与动词相关的信息,为接下来出现的词做准备。比如,它可能输出主语是单数还是复数,那么我们知道接下来修饰动词的应该成对。长短期记忆变体一种流行的LSTM变种,由Gers和Schmidhuber(2000)提出,加入了“窥视孔连接”(peepholeconnections)。这意味着门限层也将单元状态作为输入。上图中,所有的门限中都加入了窥视孔,但是许多论文都只使用部分窥视孔。另一个变种就是使用耦合遗忘和输入门限。我们不单独决定遗忘哪些、添加哪些新信息,而是一起做出决定。在输入的时候才进行遗忘。在遗忘某些旧信息时才将新值添加到状态中。稍微有戏剧性的LSTM变种是门限递归单元或GRU,由Cho等人(2014)提出。它将遗忘和输入门限结合输入到单个“更新门限”中。同样还将单元状态和隐藏状态合并,并做出一些其他变化。所得模型比标准LSTM模型要简单,这种做法越来越流行。提出的深度门限RNNs(DepthGatedRNNs)。当然还有其他解决长短期依赖关系问题的方法,比如Koutnik等人(2014)提出的ClockworkRNNs
本文标题:LSTM学习介绍-各种门的介绍
链接地址:https://www.777doc.com/doc-6498782 .html