RNN、LSTM、GRU、seq2seq简单理解

附上参考链接:

首先,我们需要理解一下RNN的大体概念。

简单来说,RNN(Recurrent Neural Networks循环神经网络)是一种神奇的神经网络。

显然神经网络的作用,直观上可以说是一个输入,经过了网络(可能有多个隐层),形成一个输出。但普通的神经网络隐层的节点之间是没有连接的,而RNN循环神经网络(或者叫做递归神经网络)的主要特点则是隐层节点之间的连接。

举个例子来说,通常当我们讲一句话的时候,当前的字词都是和附近的字词存在一定的联系的。而对于普通的神经网络算法而言,是无法做到这一点的。RNN则使得前后文的联系成为可能。

了解到RNN大概是个什么东西,接着让我们来看看RNN、LSTM、GRU、seq2seq这几个概念之间的区别与联系。(推荐可以简单看一下参考链接里的第一篇文章

简单总结如下:**

  • RNN是循环神经网络。
  • LSTM是对RNN的一种优化(为了解决梯度爆炸或者梯度消失的问题)。
  • GRU是对LSTM的一种优化(使得神经网络结构更为简单)
  • 虽然说是优化,但在不同情况下,不同算法的效果各有优劣。
    说白了,不是在所有情况下,优化后的算法就是更有效的。
  • 通过RNN我们可以轻易构造出各种循环神经网络算法变种,得到“1 vs N”、“N vs 1”、“N vs N”或者“N vs M”等情况的算法。 其中“N vs M”就是我们所说的seq2seq。
  • 具体点说,实际上我们遇到的许多问题,输入与输出的序列都是不等长的,比如机器翻译“我爱中国”是四个字,而英文“I love China”则是三。
分享到