RNN

f(x)=12x2+xy+12y2

人们的每次思考并不都是从零开始的。比如说你在阅读这篇文章时,你基于对前面的文字的理解来理解你目前阅读到的文字,而不是每读到一个文字时,都抛弃掉前面的思考,从头开始。你的记忆是有持久性的。

传统的神经网络并不能如此,这似乎是一个主要的缺点。例如,假设你在看一场电影,你想对电影里的每一个场景进行分类。传统的神经网络不能够基于前面的已分类场景来推断接下来的场景分类。

循环神经网络(Recurrent Neural Networks)解决了这个问题。这种神经网络带有环,可以将信息持久化。

循环神经网络是单元(unit)中具有有向环的一类神经网络。
A recurrent neural network (RNN) is a class of artificial neural network where connections between units form a directed cycle. This allows it to exhibit dynamic temporal behavior.

RNN, LSTM简介

长期依赖的问题

RNN的一个核心思想是将以前的信息连接到当前的任务中来,例如,通过前面的视频帧来帮助理解当前帧。如果RNN真的能够这样做的话,那么它们将会极其有用。但是事实真是如此吗?未必。

有时候我们需要更多的上下文信息。比如,我们想预测句子“I grew up in France… I speak fluent French”中的最后一个单词。最近的信息告诉我们,最后一个单词可能是某种语言的名字,然而如果我们想确定到底是哪种语言的话,我们需要France这个位置更远的上下文信息。实际上,相关信息和需要该信息的位置之间的距离可能非常的远。

不幸的是,随着距离的增大,RNN对于如何将这样的信息连接起来无能为力

理论上说,RNN是有能力来处理这种长期依赖(Long Term Dependencies)的。人们可以通过精心调参来构建模型处理一个这种玩具问题(Toy Problem)。不过,在实际问题中,RNN并没有能力来学习这些。Hochreiter (1991) German更深入地讲了这个问题,Bengio, et al. (1994)发现了RNN的一些非常基础的问题。

幸运的是,LSTM并没有上述问题!

LSTM

原生的RNN会遇到一个很大的问题,叫做 The vanishing gradient problem for RNNs,也就是后面时间的节点对于前面时间的节点感知力下降,也就是忘事儿,这也是NN在很长一段时间内不得志的原因,网络一深就没法训练了,深度学习那一套东西暂且不表,RNN解决这个问题用到的就叫LSTM,简单来说就是你不是忘事儿吗?我给你拿个小本子把事记上,好记性不如烂笔头嘛,所以LSTM引入一个核心元素就是Cell。

LSTM,全称为长短期记忆网络(Long Short Term Memory networks),是一种特殊的RNN,能够学习到长期依赖关系。LSTM由Hochreiter & Schmidhuber (1997)提出,许多研究者进行了一系列的工作对其改进并使之发扬光大。LSTM在许多问题上效果非常好,现在被广泛使用。下图为RNN的网络结构。

RNN, LSTM简介

不同于单一神经网络层,这里是有四个单元,以一种非常特殊的方式进行交互。
RNN, LSTM简介

相关文章:

  • 2021-11-26
  • 2021-06-13
  • 2021-06-16
  • 2021-12-29
  • 2021-11-08
  • 2021-09-06
猜你喜欢
  • 2021-06-19
  • 2022-12-23
  • 2021-04-26
  • 2021-05-22
  • 2021-04-12
  • 2021-08-20
相关资源
相似解决方案