image caption1

参考:https://www.leiphone.com/news/201609/fDVE1X40LTmu3omR.html。

Google的show and tell:InceptionNet+LSTM

1、LSTM :一种带门的RNN(recurrent nerual network),可以将一种不定长的序列转换为另一种不定长的序列。可以将源语言编码为一个固定长度含丰富语义的向量,然后作为解码网络的隐藏状态去生成目标语言。

但是,简单的将图像信号直接作为输入是无法达到很好的效果,原因是原始的图像信号并不是一个紧致的表示,含有太多噪声。所以,需要引入CNN,在CNN的高层神经元输出可以表示图像的紧致的高层语义信息。

所以,Image Caption的基本思想就是利用了DCNN生成图像的高层抽象语义向量,将其作为语言生成模型LSTM的输入,进行sequence to sequence的转换。

2、此方法的巧妙之处在于将视觉和自然语言处理领域中最先进的两类网络连在一起,各自负责其擅长的部分,同时进行端到端的训练学习:

Image caption的神经网络学习可以用数学公式概括为:

image caption1_第1张图片

其中,I表示图片,S表示生成的句子,θ为网络需要学习的参数,这个公式的含义是:学习最佳的网络参数θ,最大化在给定图片下其生成正确描述的概率。同时由于语言句子的长度不定长,所以一般将其概率用链式法则写成:

image caption1_第2张图片

其中N表示句子的长度,S_i为句子的每一个词。更具体的网络形式为下图:

image caption1_第3张图片

在上图中,少了一个图像嵌入矩阵,为了输入匹配,图像特征V还要乘以一个W_i,从而在维度上等于We*S。同样在图中的P1-Pn的位置少了一个输出变换矩阵Wo,要将中间变量转换成目标文字。

在网络训练的过程中,目标函数可以写为以下损失函数:

image caption1_第4张图片

目标是更新LSTM、CNN和词嵌入模型的参数,使得每一个正确的词出现的概率最大,也就是让损失函数越小。

最简单的词嵌入模型是one-hot-encoding的方法,也可以使用更复杂的方法,使得词嵌入模型和CNN、LSTM一起训练,训练出来的词嵌入模型表示更鲁邦。

在最早的版本中,CNN模型使用在ImageNet上预训练好的分类模型,在image caption训练过程中其参数是不做更新的。在最新的方法中,在训练过程中更新CNN的最高层权重可以产生更好的效果,不过这些参数的更新需要在LSTM更新稳定后才能进行,不然,LSTM的噪声会对CNN模型造成不可逆的影响。

视觉模型和语言生成模型进行端到端的联合训练有助于互相提升效果。

 

以下内容参考自:https://blog.csdn.net/m0_37731749/article/details/80520144。2015-2018综述文章。

1、何为CRF?

2、李飞飞的Neral talk利用了VGG+RNN。李飞飞还做了一个工作就是利用片段图像生成局部区域的描述。这个工作主要是结合RCNN,将RCNN的最后要输出的分类改成输出对object的丰富语义描述。

 

以上两种网络都是使用了encoder-decoder框架。

数据集有Flicker8k;Flicker30k.

 

3、GLSTM和att-LSTM

前者解决了图像仅在开始时传入LSTM的问题,让图像特征能参与到每一个单词的生成。

后者则解决了仅传入全局特征的问题。att-LSTM通过图像多标签分类来提取出图像中可能存在的属性。

4、show attention and tell

增加了attention机制。【何为attention机制】解决了3中的两个问题。【具体学习LSTM的理论,c,h都代表什么】

不同于以往采用全连接层作为图像特征,这次是直接使用卷积层conv5_3作为特征。特征图的大小通常为7*7*512(VGG),每个时刻传入LSTM的则是上一时刻的状态c,h以及加权过后的卷积层特征。attention在这里的作用就是加权用的。

加入attention更加符合人眼的直观感受,图中的object可以对应到生成描述中的名词了。但是,(1)每个词都会对应一个图像区域,有些介词和动词并不能对应实体,但论文强行对应图像中的某些区域有些不合常理。(2)attention是基于卷积7*7的加权,这对应到图中略显得有些模糊,而且不能准确定位图中对应得区域。

5、knowing when to look

主要解决了上述的第一个问题,提出了一种自适应性的attention机制,使得模型可以自己决定生成单词的时候是根据先验知识(模板)还是根据图像中的区域。

image caption1_第5张图片

这篇论文的详细介绍:https://blog.csdn.net/sinat_26253653/article/details/79416234。

6、SCA-CNN:

前面的工作都是在RNN上做文章,然而CNN也是不可忽略的一个重点。

 

利用卷积层的不同通道做attention,同时还利用了spatial attention机制。

image caption1_第6张图片

卷积层不同的通道代表的信息不一样,比如,cake经过卷积之后,并不是所有卷积通道中都有响应,而是在特定的通道中出现了,提取这些特定的通道,然后利用spatial attention来处理得到的最后的特征图。选取通道决定看什么,spatial attention则是决定看哪里。

 

7、neural baby talk 和 bottom-up and top-down

利用了object detection技术,首先提取出图像中的可能的物体,再进行描述生成。

 

 

总结与思考:

1、两部分构成:CNN+RNN

2、提升准确度的手段可以在CNN上做文章,也可在RNN上做文章【attention机制;不同通道来attention】

3、之前在第一个参考博客中看到的词嵌入模型用在了哪里?

4、在上述的7中,提到了运用目标检测技术,那么,之前的方法没用么?需要读论文来确定一下。、

5、attention机制?CRF?LSTM具体理论?数据集有哪些?(可以通过论文来看)评价准则有哪些?

6、当前的该领域达到了什么性能,存在什么问题?

7、关注introduction和conclusion&discussion部分。

8、state of art算法。

9、这个领域做到比较好的团队和个人有哪些。

 

你可能感兴趣的:(image,caption)