一、Recurrent Neural Networks

  当我们思考一件事情的时候,
我们不会将所有以前的东西都全部丢弃,然后用空白的大脑进行思考,人类的思想拥有持久性。考虑这样一个问题,当我们与他人交谈时,我们想要预知这个人接下来会说什么,通常需要了解他上一句说了什么,然后根据以往的交流经验,我们才能预测出他的下一句。例如“今天下雨了,我”你可能会猜到他会说“又没带伞”或者“不想出门了”。传统的神经网络并不能做到这一点,而循环神经网络(RNN)可以解决序列数据前后有关联的问题。

  循环神经网络的主要用途是处理和预测序列数据,在网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出,其典型的结构如下图,
可以看出循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层的输入还包括上一隐藏层的输出。



  上图这种循环神经网络结构的一个缺点就是只使用了序列中之前的信息来做预测,而没有使用之后的信息。因为如果给定了这个句子,“Teddy Roosevelt
was a great President.”,为了判断
Teddy是否是人名的一部分,仅仅知道句中前两个词是完全不够的,还需要知道句中后部分的信息,这也是十分有用的,因为句子也可能是这样的,“Teddy bears
are on sale!”。因此如果只给定前三个单词,是不可能确切地知道 Teddy
是否是人名的一部分,第一个例子是人名,第二个例子就不是,所以你不可能只看前三个单词就能分辨出其中的区别。因此提出了BRNN来解决这个问题,BLSTM就是BRNN的典型代表。

二、LSTM(长短期记忆网络)

 “某地开设大量工厂,空气污染十分严重……天空都变成了灰色”,如果我们的模型要试着预测
这句话的最后一个词“灰色”时,仅仅根据短期依赖无法完成,因为如果不看上文“空气污染十分严重”我们是无法知道天空是“蓝色”还是“灰色”。因此,当前预测位置和相关信息之间的文本间隔就可能变的很大,当这个间隔变得很大时,简单的循环神经网络就会丧失学习到如此远的信息的能力。LSTM就是用来解决这样的问题。

 
LSTM网络是一个拥有三个“门”的特殊网络结构,依次为“遗忘门”、“输入门”、“输出门”。下图为LSTM的网络结构和公式,其中c为记忆细胞状态,x为输入,a为各层输出。




  下面来分别解释一下这三个门,理解这三个门的作用也是理解LSTM的关键。

1、遗忘门:

     作用于:记忆细胞状态

     作用效果:选择性遗忘记忆细胞中的信息

     例子:“She is busy today……I am”当预测“am”的时候我们要选择性的忘记之前的主语“She”,否则将出现语法错误。

2、输入门:

     作用于:记忆细胞状态

     作用效果:将新的信息选择性的记录到新的细胞状态中

     例子:上面那个句子我们会根据“I”将这个主语信息更新到细胞状态中,所以最后会预测出“am”。


3、输出门:

     作用于:输入和隐层输出

     作用效果:使得最后输出即包括细胞状态又包括输入,将其结果更新到下一个下一个隐层。


 通过这三个门,LSTM能更加有效的决定哪些信息被遗忘,哪些信息被保留,通过LSTM的前向传播图我们可以看到一个细胞状态可以很容易传到很远距离影响输出,所以LSTM可以解决远距离的信息的学习。




  

三、BLSTM

 
接触到BLSTM是在阅读CTPN论文的过程中,由于不理解CTPN的网络结构,回过头研究了一下BLSTM和R-CNN才对CTPN的结构有所理解。下面就以CTPN为背景我谈一下自己对BLSTM的理解,如有不对的地方还请批评指正。



 
我们首先来看CTPN的网络结构,如上图所示,使用3*3*C(准确的说应该是3*3*C*256,如果不理解的话可以看吴恩达的深度学习课程第四课第三周的3.4卷积的滑动窗口实现)的空间窗口在VGG16的最后一个卷积层conv5上密集的滑动,在每一个滑动窗的位置我们有k个anchor可以用来同时产生k个区域提议。每行的序列窗口通过双向LSTM(BLSTM)循环连接,其中每个窗口的卷积特征(3×3×C)被用作256维的BLSTM(包括两个128维的LSTM)的输入。RNN层连接到512维的全连接层,接着是输出层,因为有k个anchor,最后有2k个分数(文本、非文本),和2k个位置信息(CTPN固定了水平位置,只预测垂直位置)。

  为何要使用BLSTM?

 
CTPN的网络结构与Faster-RCNN类似,只是其中加入了BLSTM层。CNN学习的是感受野内的空间信息;而且伴随网络的深入,CNN学到的特征越来越抽象。对于文本序列检测,显然需要CNN学到的抽象空间特征;另外文本所具备的sequence
feature(序列特征)也有助于文本检测。对于水平的文本行,其中的每一个文本段之间都是有联系的,因此作者采用了CNN+RNN的一种网络结构,使得检测结果更加鲁棒。



以上为BLSTM的网络结构,这个网络构成了一个无环图,可以看出输出是同时考虑了前后的因素得到的,因此更具有鲁棒性。




友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信