关键词:递归神经网络,lexicon-free,soft-attention,untied
引言
使用递归CNNs,采用RNN隐式学习字符级语言模型,避免了使用N-grams,使用软注意力机制来利用图像特征
首先这篇文章搞清楚了RNN包含了Recursive neural network(递归神经网络) 和 Recurrent neural network(循环神经网络)
下面简单介绍一下两个模型的区别
循环神经网络:
实现了通过将长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理(比如处理一句话时,可以将其看作为词组成的序列,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出。如此,我们就能处理任意长度的句子了
![](https://i-blog.csdnimg.cn/blog_migrate/7d3d3179acd0f720f623c2741b20d1e6.png)
然而,在一些句子上,这样子处理会出现语义歧义,比如:两个外语学院的学生
![](https://i-blog.csdnimg.cn/blog_migrate/6a6dde3db6e134f2c420735e2fbd0511.png)
"两个外语学院的/学生" 还是 "两个/外语学院的学生",前者注重两个外语学院,后者注重两个学生
为了让模型区分出两个不同的意思,模型必须按照树/图结构去处理,而不是序列
递归神经网络:
以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量距离更近
![](https://i-blog.csdnimg.cn/blog_migrate/90af24ead571012c2c2dcf9daec246f9.png)
特点:输入可以是两个或者多个节点,输出父节点;父节点的维度和每一个子节点的维度是相同的;递归神经网络的权重W和偏置项b在所有的节点都是共享的
![](https://i-blog.csdnimg.cn/blog_migrate/d76e38b42d5b013438da8ac754fcef7e.png)
缺点:用循环神经网络处理句子,可以直接把句子作为输入。然而用递归神经网络处理句子,就必须把每个句子标注为语法解析树的形式,需要花费很多人力去标注
介绍
photo OCR的用处,自动导航系统的路标识别,盲人辅助技术(如产品标签阅读),手机上对文本的识别和翻译,对网络上大量图像和视频进行搜索/索引
有约束文本识别的特点:过程中有一个固定的词典或字典,单词长度是已知的,当candidate ground-truth在测试阶段已知时表现很好,但是无法推广到字典列表中根本不存在的词
提出上一篇讲到的DEEP STRUCTURED OUTPUT LEARNING FOR UNCONSTRAINED TEXT RECOGNITION,一个CNN建模对每个位置的字符编码建模字符序列,另一个对N-gram语言统计,再采用CRF图来结合,其缺点是两个CNN开销和N-gram CNN的大量输出节点(10k output unit for N=4)
R²AM
- (1)具有权重共享的递归CNNs更加有效的提取图像特征
- (2)RNNs字符级语言模型的隐式学习,不需要字典中手工定义N-gram
- (3)读取字符序列时,采用软注意力机制确定图像特征的选择
方法
![](https://i-blog.csdnimg.cn/blog_migrate/5489fe74c7bf54fba9cd5c590c7d159d.png)
1. Recursive convolutional layers
预测过程中通过对整个输入图像上使用多个卷积层来捕捉上下文关系,在相同参数控制模型容量的同时增加了模型的深度,特征响应提升
![](https://i-blog.csdnimg.cn/blog_migrate/81f11d2706e9024c078540a69aadf7bb.png)
h(i,j,k,(t)):输出通道k的向量
wk(h,h):输出通道k的向量前馈权值
h(i,j,(t-1)):向量前馈
bk:输出通道k的偏差
2. Untying in recursive convolutional layers
上述公式的缺点就是约束所有权值wk(h,h)共享相同的内部值,“tied together”,这就要求特征映射的维度相同(w,h,c),例如VGGNet通道数增多的同时{64,128,256,512},卷积层广度{224,112,56,28}减少
采用"untied",区分inter-layer feed-forward weight(w-untied) 和 intra-layer recursive weights(w-tied)
![](https://i-blog.csdnimg.cn/blog_migrate/c22130669ad8fb914a594ed18b389e5c.png)
以w-untied来调整任意递归卷积层的通道数
![](https://i-blog.csdnimg.cn/blog_migrate/4905dc392fd8ffafccfa489e10f07f44.png)
如图的递归迭代过程,在t=0时,采用untie第一个前馈权值,t>=1时,采用tie其余权重,并且蓝色框中满足权重共享
3. RNNs for character-level language modeling
RNN来建模字符统计更加友好
![](https://i-blog.csdnimg.cn/blog_migrate/a0953f344f5acb8fb6dceb7164983fbd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/35b56a66833f3e52162953e0e8677cdf.png)
文中比较以下的搭配模式
![](https://i-blog.csdnimg.cn/blog_migrate/b9cc43b8199ea3948d23e5129d764dc2.png)
Base CNN:训练多损失函数,每个损失函数关注于一个字符的位置作为预测
Base CNN + RNN1c:image caption work,只有第一步图像特征I被送到RNN中,其中在t-1时刻的预测字符yt-1会在t时刻再次送入RNN
Base CNN + RNN1u:RNN在每一个时间步上都会接收到图像特征I,因此字符预测始终以image feature和precious hidden state作为条件
Base CNN + RNN2u:和1u一样的,但是多了一层RNN
Base CNN + RNN2f:第一层注重字符级语言建模,第二层注重语言统计和图像特征结合
Base CNN+RNNAtten:
第一层RNN输出St和图像特征I计算能量向量τ,其中φ和ψ可以是多层感知机或者简单的投影矩阵,将I和St映射到同一个空间
![](https://i-blog.csdnimg.cn/blog_migrate/4cd52bc055dcb9503d89b251144df3a1.png)
τ的所有分布d处计算完毕后,计算加权图像特征值,得到语境向量Ct,其中o是Hadamard卷积,α(td)可以看作为在给定图像特征I中位置d的相关重要性,然后将Ct送入第二层RNN中
![](https://i-blog.csdnimg.cn/blog_migrate/e26a2729de9e858e6e5d36ffed816d8b.png)