zoukankan      html  css  js  c++  java
  • 递归神经网络

    递归神经网络(RNN)是两类人工神经网络的总称,分别是时间递归神经网络和结构递归神经网络。(ps:也有很多文献称之为递归神经网络循环神经网络)。

      RNN在基础研究领域和工程领域都取得了很多突破性进展。在自然语言处理领域,采用神经网络模型来改进传统的N元统计模型。还应用于机器翻译领域、语音识别和个性化推荐领域等。

      RNN处理的对象是一种时间序列数据,它将数据信息流以一种循环的方式进行传递处理。具备两个特点:

      1. 持续性:在时间序列信息中,前后数据见不是相互独立,而是相互依赖的,当前阶段的输出结果受到过去的决策影响,同理,当前节点的输出也会影响到后面的决策。

      2. 记忆性:RNN可以保留序列的“记忆”信息。例如:在序列式的个性化推荐场景中,为了在当前时刻给用户行为记录为“记忆”,类似于人的大脑机制,这些记忆将有助于对信息进行筛选。

      BPTT,(BackPropagation Through Time)时间反向传播,是训练RNN网络模型的标准算法。它的流程与反向传播算法很相似。与BP算法一样,利用BPTT求解递归神经网络之所以会导致梯度消失,主要是由于激活函数的导数所引发的梯度下降叠加。在RNN网络中,梯度消失导致的后果是模型无法保证前面较远时间的记忆,因此,在实际得到应用中效果不甚理想。-----后面介绍两种改进的RNN模型,它们有效克服了梯度消失的缺点,对于捕获长时间的记忆信息效果非常显著。

    -----长短时记忆网络(long Short Term Memory, LSTM)是时间递归神经网络的一种变种形态,目前已经被广泛应用于机器翻译、语音识别等自然语言处理领域。LSTM对隐藏层的设计做了相应的改进以有效地保留长时间的记忆信息,有效地克服了梯度消失问题。特别地,LSTM隐藏层的核心设计,是一种叫记忆体的信息流,它负责把记忆信息从序列的初始位置传递到序列的末端,并通过4个相互交互的“门”单元,来控制着在每一时间步t对记忆信息值的修改。

          1. 忘记门:其作用是控制着要从前面的记忆中丢弃多少信息。

          2. 输入门:它决定了当前时刻的输入信息,有多少信息将被添加到记忆信息流中,与忘记门的计算公式几乎一致,输入门同样通过一个激活函数来实现。

          3. 候选门:它用来计算当前的输入与过去的记忆所具有的信息总量。

          4. 输出门:它控制着有多少记忆信息将被用于下一阶段的更新中。

      总结:将数据通过在时间维度的展开,使得信息能够在时间维度上进行传递和积累,数据之间的联系表现为在时间维度上的前后依赖关系。

    -----结构递归神经网络:是将数据在空间维度上展开,并以一种树结构的形式展示,数据之间的联系表现为整体与局部之间的空间组合关系。被广泛用于句子的分块和语法处理中。在自然语言文本中,语法的规则是一种递归的结构,一个句子可以由名词短语和动词短语构成,而名词短语又可以继续分解为其他的短语子结构。一个亟待解决的问题是,需要选择一个评价标准,并按照这个标准,构建出句子的最优语法递归树。采用beam search的方法构造出最优语法树,思想是对于当前的所有可能候选对,选择分数最高的候选对进行合并。

    补充阅读:

      语言模型是一个概率模型,利用该模型可以对任意给定的一个句子序列数据,得到该序列的合理性概率估计。在语音识别、机器翻译中扮演着非常重要的角色。语言模型的形式化定义为

     设S表示一个句子序列,它由单词序列构成,n表示句子的长度,则语言模型的任务是构建成这样的概率模型。由条件概率公式,可以得到计算语言模型最简单的概率统计算法如公式12.32:

    式子12.34对应的语言模型为N元统计模型,该模型为构建语言模型提供了一种有效的解决方案,但N元统计模型也存在着几个缺点:第一,空间复杂度高;第二,稀疏性,语言模型是针对共同出现的次数,很多词对没有出现过,造成很多零概率。稀疏性也会导致数据结构的置信度不高,解决方法是使用平滑技术:拉普拉斯平滑、古德-图灵平滑、线性插值平滑、卡茨平滑。

    基于LSTM构建语言模型:将句子拆分为单词的组合,句子中的每一个单词,按其出现的先后顺序作为输入层中每一时间步的输入数据,整个过程不需要关心输入数据是否在语料中出现。

    利用递归神经网络构建语言模型,最核心的设计是中间的隐藏层,上图中设置了LSTM隐藏单元,通过前向操作,将句子中单词之间的联系信息,以记忆信息流的形态不断向后传递,影响每一个新输入数据的处理和每一阶段的输出。

  • 相关阅读:
    普通文件的上传(表单上传和ajax文件异步上传)
    React Ant Design+Node.js Express+Mysql实现后端分页(带富文本编辑器)
    Express中增删改查相关的中间件
    React中使用富文本编辑器react-draft-wysiwyg
    Express中aixos请求的(批量)删除用POST方法,其它请求的(批量)删除可以用DELETE方法
    React中将字符串转义成html语句
    Vue中如何设置代理跨域请求数据
    React中如何设置代理跨域请求数据
    axios发送post请求,服务端无法正常获取参数(比如:node服务器无法通过req.body获取参数)解决方案
    LeetCode-162.寻找峰值
  • 原文地址:https://www.cnblogs.com/CynthiaWendy/p/11045822.html
Copyright © 2011-2022 走看看