分析测试百科网

搜索

喜欢作者

微信支付微信支付
×

什么是循环神经网络(RNN)?如何使用它们?(一)

2020.10.26
头像

王辉

致力于为分析测试行业奉献终身

  什么是循环神经网络(RNN),如何使用它们?本文所讨论的就是关于循环神经网络的基础内容,RNN 是变得日益流行的深度学习模型。本文不打算深入讲解其晦涩的数学原理,而是旨在让读者获得关于RNN 的抽象理解。

  一般的循环神经网络信息

  循环神经网络出现于20世纪 80年代,最近由于网络设计的推进和图形处理单元上计算能力的提升,循环神经网络变得越来越流行。这种网络尤其是对序列数据非常有用,因为每个神经元或者单元能用它的内部存储来保存之前输入的相关信息。在语言的案例中,“I had washed my house”这句话的意思与“I had my house washed”大不相同。这就能让网络获取对该表达更深的理解。

  注意到这点很重要,因为当阅读一个句子甚至是一个人时,你就是要从它之前的单词中提出每个词的语境。

什么是循环神经网络(RNN) 如何使用它们?

一个卷起的循环神经网络

  一个循环神经网络里有很多个环,这些环能允许带着信息通过神经元,同时在输入中读取它们。

什么是循环神经网络(RNN) 如何使用它们?

  一个展开的循环神经网络

  在这些图表中, xt是某些输入,A 是这个循环神经网络的一部分,而 ht 是输出。基本上,你能输入句子中的词或者甚至是像 xt 这样的字符串中的字符,然后通过该循环神经网络它会得出一个 ht。

  目标是用 ht 作为输出,并将它与你的测试数据(通常是原始数据的一个小子集)比较。然后你会得出你的误差率。比较完之后,有了误差率,你就能使用一种叫随时间反向传播(BPTT)的技术。BPTT 返回检查这个网络,并基于误差率调整权重。这样也调整了这个网络,并让它学习去做得更好。

  理论上说,循环神经网络能从句子开头处理语境,它允许对一个句子末尾的词进行更精确的预测。在实践中,对于 vanilla RNN 来说,这并不是真正需要的。这就是为什么 RNN 在出现之后淡出研究圈一段时间直到使用神经网络中的长短期记忆(LSTM)单元取得了一些不错的结果后又重新火起来的主要原因。加上 LATM 后的网络就像是加了一个记忆单元,能记住输入的最初内容的语境。

什么是循环神经网络(RNN) 如何使用它们?

  这些少量记忆单元能让 RNN 更加精确,而且是这种模型流行的最新原因。这些记忆单元允许跨输入以便记住上下文语境。这些单元中,LSTM 与 门控循环单元(GRU)是当下使用比较广泛的两个,后者的计算效率更高,因为它们占用的计算机内存比较少。


互联网
文章推荐