【文本识别】RNN和和LSTMs介绍

循环神经网络(Recurrent Neural Networks)

循环神经网络:图中A是一组神经网络(可以理解为一个网络的自循环),它的工作是不停的接收xt并且输出ht .从图中可以看出A允许将信息不停的在内部循环,这样使得它可以保证每一步的计算都保存以前的信息。

长依赖存在的问题

1)信息较近时:相关信息与需要该信息的位置距离较近时,RNNs能够学习利用以前的信息来对当前任务进行相应的操作。

2)信息较远时:有用信息与需要进行处理信息的地方之间的距离较远,这样容易导致RNNs不能学习到有用的信息,最终推导的任务可能失败。

 

LSTM 网络

Long Short Term Memory networks(以下简称LSTMs),是一种特殊的RNN网络,该网络设计出来是为了解决长依赖问题。

 

1、标准RNN网络:所有循环神经网络都具有神经网络的重复模块链的形式。在标准的RNN中,该重复模块将具有非常简单的结构,例如单个tanh层。标准的RNN网络如下图所示

2、LSTMs也具有这种链式结构,但是它的重复单元不同于标准RNN网络里的单元只有一个网络层,它的内部有四个网络层。LSTMs的结构如下图所示。

下面是图中各个符号的含义,符号包括下面几种:

        图中黄色类似于CNN里的激活函数操作,粉色圆圈表示点操作,单箭头表示数据流向,箭头合并表示向量的合并(concat)操作,箭头分叉表示向量的拷贝操作。

 

LSTMs的核心思想

        LSTMs的核心是细胞状态,用贯穿细胞的水平线表示。细胞状态像传送带一样。它贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个RNNs。细胞状态如下图所示:

 

门结构:LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息。门能够有选择性的决定让哪些信息通过。其实门的结构很简单,就是一个sigmoid层和一个点乘操作的组合。如下图所示

        因为sigmoid层的输出是0-1的值,这代表有多少信息能够流过sigmoid层。0表示都不能通过,1表示都能通过。值越大表示通过的信息越多。

 

深入理解LSTM结构:

       LSTM由三个门来控制细胞状态,这三个门分别称为忘记门输入门输出门

1、忘记门:主要是对上一个节点传进来的输入进行选择性忘记。简单来说就是会 “忘记不重要的,记住重要的”。这部分操作是通过一个称为忘记门的sigmoid单元来处理的。它通过查看ht-1和xt信息来输出一个0-1之间的向量,该向量里面的0-1值表示细胞状态Ct-1中的哪些信息保留或丢弃多少。0表示不保留,1表示都保留。忘记门如下图所示(忘记门的输出值与Ct-1相乘,得到Ct-1中需要保留的信息)。

 

2、输入门:是将这个阶段的输入有选择性地进行“记忆”。主要是会对输入xt进行选择记忆。哪些重要则着重记录下来,哪些不重要,则少记一些。

1)这一步又分为两个步骤,首先,利用ht-1和xt通过一个称为输入门的操作来决定更新哪些信息。

2)然后利用ht-1和xt通过一个tanh层得到新的候选细胞信息,这些信息可能会被更新到当前节点的细胞信息中(由输入门决定)。这两步描述如下图所示。

 

更新当前细胞状态信息:将旧的细胞信息Ct-1,更新为新的细胞信息Ct。更新的规则就是通过忘记门选择忘记一部分的旧细胞信息,通过输入门选择添加当前细胞输入信息的一部分,再把两个相加得到当前细胞信息Ct。更新操作如下图所示(即先遗忘掉旧的Ct-1中部分信息,再选择当前输入中部分信息,最后把二者想加得到当前细胞的输出信息Ct):

 

3、输出门:决定将哪些信息作为当前状态的输出。更新完细胞状态后,先利用ht-1和xt通过输出门(sigmoid)决定输出哪些细胞状态信息,然后将细胞状态经过tanh层得到一个-1~1之间值的向量,最后将该向量与输出门得到的值相乘就计算出了该RNN单元最终的输出ht .该步骤如下图所示

最后画了个图对LSTMs内部结构作了详细的介绍:

 

致谢:文章参考:https://www.jianshu.com/p/95d5c461924c

猜你喜欢

转载自blog.csdn.net/chen1234520nnn/article/details/105516006
今日推荐