这是本人第一次把一篇论文完完全全从了解到推导,而不再是走马观花,特此记下这篇理论上并不难,但是故事编的很好很有学习意义的论文。
本文分三个部分,第一个部分为论文报告内容,第二部分为在报告中自己的一些不足和对论文信息的扩展,最后文末为分享,提供论文链接,以及一些自己在看论文时,无意中发现的一些好文章。
一、论文报告
1.Introduction
1.1 Image Caption背景信息:
1、Image Caption问题描述:可以定义为二元组(I,S)的形式, 其中I表示图,S为目标单词序列,其中S={,,…},其中为来自于数据集提取的单词。训练的目标是使最大似然p(S|I)取得最大值,即让生成的语句和目标语句更加匹配,也可以表达为用尽可能准确的用语句去描述图像。在Image Caption中,大多数方法依靠统计学方法,在图像和字幕表述之间建立概率的配对模型,比如MLE。
2、在机器翻译中,有几种标准的图像标注的评价指标:BLEU、METEOR、ROUGE和CIDEr,合称“BCMR”,而COCO上就用的是这四个指标来衡量算法优劣。
3、用以上指标评价Image Caption,在质量上与手动标注的还有一定差距。
当前image caption 存在的四个主要问题:
1、指标的提升
2、暴露误差的累积。
这个是指预测的时候,前面预测的结果是错的,后面的错得越来越离谱。
3、损失函数和评级指标没有直接挂钩。
4、只适用于配对的图像和文本。
本文主要介绍了,作者团队对于指标优化与减少误差累积的贡献。
1.2 SPICE介绍
1、由P. Anderson, B. Fernando, M. Johnson, and S. Gould,在Spice:Semantic propositional image caption evaluation 提出。
2、SPICE是对参考句子进行解析,然后在此基础上,生成一些抽象的场景图表示(scene graph representation),再将生成句与抽象出的图进行比较,而不是直接把生成句和参考句在语法上进行比较。这样用SPICE指标来标注,在语意相关性上表现优于BCMR指标评价下的标注,更容易被人类接受。
1.3 SPICE的难点
1、SPICE是不可微分目标。
背景:从一篇用PG来优化不可微分目标的论文(MIXER方法)中来的灵感。但是这篇论文只对BLEU-4进行了优化,而且BLEU-4用于评价图像标注,在相关性表现的并不理想。此外,MIXER方法鲁棒性不佳,需要小心调参,用在CIDEr和SPICE上效果也极差。
方法:本文使用了基于Monte Carlo rollouts的PG(PolicyGradient)优化来改良MIXER,可以得到一个更好的价值函数,同时也可以避免MLE对参数和模型本身的干扰。
2、基于SPICE指标的翻译,会产生大量冗余和重复的信息。
原因:SPICE忽视了语法要求。
为此,作者团队给出了两条判断什么是好的Image caption的准则:(1)被人认为的好的图像描述在指标评价时应该取得高分(即表达的语意完整);(2)取得高分的图像描述也应该被人认为是不错的(即图像描述的语法准确)。
方法:由于SPICE只能满足第一条,作者团队提出了一种把SPICE和CIDEr结 合在一起的组合指标SPIDEr 。
2.Related Work
2.1 Model
作者团队使用的是The Encoder-Decoder中的“Show and Tell”模型。
2.2 Metrics and objective functions
基于MLE的方法,容易让模型过拟合,进而差生大量的误差累积。
思路:用强化学习中的PG:
(1)将候选句的分数视为类似于强化学习中设置的奖励信号。
(2)RNN解码器的作用类似于一个随机策略,生成下一个单词对应于选择一个动作。
即:词组()——行动;
指标(R函数)——奖励回报;
序列(,意思是从1->t的子序列)——状态;
其次,序列的集合成为路径;
2.3 MIXER
MIXER的不足:
由于将部分序列中的动作(单词)所得奖励看作是整个序列的奖励,这一假设有问题。因此,采用MLE与Reinforce混合训练的方法来弥补,对前M个字词采用MLE,之后再用Reinforce训练。
但是MIXER鲁棒性不行,参数的输入和调整对其影响很大。
提出了基于强化学习的图像标注方法,该方法使用SPIDEr作为奖励函数,并使用了基于Monte Carlo rollouts的PG(PolicyGradient)优化。
3.Method
3.1PG对奖励函数的优化
每个行动的价值是由图中3个rollout sequences的平均值求得,是采取部分抽样的方法。
实心箭头表示正在评估的操作顺序。
绿色和红色的标记分别是序列开始和序列结束的标记。
蓝色序列是从部分序列采样的rollout sequences 。
3.2 Algorithm
分成两部分:第一部分为找baseline,第二部分基于baseline进行PG优化,而且PG中的R函数可以为任意函数,甚至是a black box。
这是总的价值函数,由每条路径上,各个单词的回报构成。
这是目标函数,要找到(BCMR)的最大值点。
对价值函数求导,实质就是对含参数的概率进行求导。
由于路径上不可能等全部词组都能出现,因此采用样本抽取来估计每次时序上的回报奖励。
最后基于baseline再建立一个B函数,就可以实现对价值函数的梯度下降。
3.3 CNN-RNN的模型
原理:把图形编码成固定长度的向量,本实验用的512维,并且数值初始为随机赋值。
编码器CNN是在ImageNet上预训练的一个Inception-v3网络,RNN解码器是一个单层LSTM,状态大小为512个单元,随机初始化。每幅图像都被inception-v3编码为密度为2048的特征向量,然后通过线性层投影到512维,并用作RNN解码器的初始状态。
绿色和黄色的标记分别是bos(序列开始)和eos(序列结束)标记。在测试时,前一时间步骤 的输出用作输入 ,而不是
3.4 Experiments
实验介绍:
在COCO数据集上(有82081个训练图和40137个验证图像),在验证图像中选择1665个作为验证数据,剩余的均作为训练数据。
实验预处理:
(1)将训练集中,出现少于4次的单词用UNK代替。
(2)训练时,保持最大长度。
(3)生成的序列被分成30个符号。
采用Show-Tell Model。
奖励函数的设置(基于经验):
-BCMR组合指标:
0.5BLEU-1+ 0.5BLEU-2 + 1.0BLEU-3 + 1.0BLEU-4 + 1.0CIDEr+ 5.0METEOR + 2.0ROUGE.
-SPIDEr组合:
0.5SPICE+0.5*CIDEr
4.Results
4.1机器评价
PG优化的普适性说明:
1、PG-BCMR优于MLE,也优于PG-SPIDEr。
2、PG-BLEU-4和PG-CIDEr都有一定提高,以MLE为参照。
3、PG-BLEU-4中有两项有显著提高。
4、PG优化结果好于其他组织提交结果。
4.2人工评价:
通过上图对比,
1、PG-SPICE容易产生许多重复句子,不注重语法。
2、PG-SPIDEr的表达更具合理性,相较于PG-BCMR而言。并且两者都优于MLE。
上图为人类对三个方法得到的结果,进行的评价图,
样本是来自COCO中492幅图
要求:只对图片描述进行好/不好的评价。
参照组:人类对样本的评价,有87%的样本中给的描述语句不错,13%描述的不行。
左侧是算法对样本进行的描述,然后人类认为描述的好的比例。
小结:
全部的算法描述都未达到87%的对照水准。
使用PG优化方法明显好于常规的MLE。
PG-SPIEDr的流畅性和语意上相较于PG-BCMR,更令人满意。
4.3 PG方法与MIXER的比较
为了让PG说法更具说服力,作者团队做了与MIXER这个老方法的对比。
MIXER-BCMR-A:在BCMR指标下,MIXER基于Adam(这一自适应学习率)的优化算法。
解释:
1、MIXER收敛更慢,训练过程中十分不稳定。
2、参数和Adam方法对MIXER-BCMR有一定帮助。
3、对于MIXER一开始(500k迭代内)会使用MLE,因此泛化性较低,曲线有下降的趋势。500k迭代之后,使用MLE与Reinforce,曲线开始有所提升,之后600k,全部使用Reinforce训练,MIXER-BCMR-A逐渐赶上PG-BCMR。
二、总结与拓展
1.指标介绍
BLEU、Meteor、ROUGE、CIDEr 和 SPICE。前两个是评测机器翻译的,第三个是评测自动摘要的,最后两个评价 caption 的。
1.1 BLEU(BiLingual Evaluation Understudy)
BLEU是事实上的机器翻译评测标准,基于准确率(precision)的评测。翻译的评测是以句子为单位,即n-gram,n 常取1到4。
1)首先计算其在 c 中出现的次数 Count(n-gram) ;然后统计其在各参考句子中分别出现的次数的最大值,将该值与 Count(n-gram) 的较小者记作该 n-gram 的匹配次数 Countclip(n-gram) 。之后,再把每个 n-gram 的计算结果累加起来,得到句子的结果。precision可以用如下方式计算:
给一个惩罚因子:由于评价的是precision,所以会倾向于短句子,如果模型只翻译最有把握的片段,那么就可以得到高分。也就是防止模型的偏面。
最终计算公式:
式中 {Candidates} 代表需要评测的多句译文的集合。当n取1时,∑n-gram∈cCount(n-gram) 就是句子 c 的长度。
优点: BLEU的优点是它考虑的粒度是 n-gram 而不是词,考虑了更长的匹配信息。
缺点:是不管什么样的 n-gram 被匹配上了,都会被同等对待。
1.2 ROUGE
是出于召回率来计算,所以是自动摘要任务的评价标准。
1.3 Meteor
是来评测机器翻译的,对模型给出的译文与参考译文进行词对齐,计算词汇完全匹配、词干匹配和同义词匹配等各种情况的准确率、召回率和F值。
首先计算 unigram 情况下的准确率 P 和召回率 R(计算方式与BLEU、ROUGE类似),得到调和均值(F值):
Meteor的特别之处在于,它不希望生成很“碎”的译文:比如参考译文是“A B C D”,模型给出的译文是“B A D C”,虽然每个 unigram 都对应上了,但是会受到很严重的惩罚。惩罚因子的计算方式为:
式中的 #chunks 表示匹配上的语块个数,如果模型生成的译文很碎的话,语块个数会非常多;#unigrams_matched 表示匹配上的 unigram 个数。所以最终的评分为:
1.4 CIDEr(Consensus-based image description evaluation)
这个指标将每个句子都看作“文档”,将其表示成 tf-idf 向量的形式,然后计算参考caption与模型生成的caption的余弦相似度,作为打分。换句话讲,就是向量空间模型。考虑一张图片 Ii∈I( I 是全部测试集图片的集合)。
对于一个 n-gram ωk 和参考caption sij ,tf-idf 计算方式为:
式中的 Ω 是全部 n-gram 构成的词表。可以看出 idf 的分母部分代表的是 ωk 出现于参考caption的图片个数。
CIDEr的值可以用余弦相似度的平均值来计算:
摘自:https://www.cnblogs.com/Determined22/p/6910277.html
1.5 SPICE
n-gram重叠敏感:N-gram重叠对于两个句子来说既不必要也不适用于表达相同的意思。
比如:
(a) A young girl standing on top of a tennis court.
(b) A girae standing on top of a green eld.
两者得分相近,但是其实语意完全不同。因为有许多相似词。
但是,
© A shiny metal pot lled with some diced veggies.
(d) The pan on the stove has chopped vegetables in it.
两者说的语意是同一个事情,但是得分却又非常大的变化。因为表现出较低的N-gram相似性,它们没有共同的词。
通过将候选描述和参考描述转换为基于图形的语意表示(称为场景图),来评估描述的好坏。场景图显式地对图像标题中的对象、属性和关系进行编码,在这个过程中抽象出自然语言的大部分词汇和句法特性。
在第一阶段,标题中的单词之间的句法依赖性是通过对大型数据集进行预先培训的 a dependency parser 建立的。使用通用依赖关系生成的依赖关系语法树的示例如图1顶部所示。在第二阶段,我们使用基于规则的系统从依赖树映射到场景图。给定候选场景图和参考场景图,我们的指标计算在场景图中表示语义命题的逻辑元组(如图1右侧)的结合上被拒绝的F分数。我们将这种方法称为SPICE,用于语义命题图像标题评估。
具体做法解释:
根据九个简单的语言规则对生成的树结构进行解析,以提取由场景图组成的元素化对象、关系和属性。
对解析器的处理:首先,我们删除复数名词转换,根据其数值modier的值复制图的各个节点。相反,数字修改器被编码为对象属性。第二,我们添加了一个额外的语言规则,确保名词总是作为对象出现在场景图中,即使没有关联关系也可以识别,因为我们的语义命题f-分数计算很容易处理断开的图节点。
摘自论文:https://arxiv.org/pdf/1607.08822.pdf
2. 本次报告的不足与感悟
2.1 报告要用英文,并且尽量的精简。
2.2 对于一些论文或重要事情中细小的指标要锱铢必较,对一些类似bellman-ford看似不重要的方法要去积累,比如SPICE也是。 才能尽早发现美,才能编出好故事。
2.3 少在ppt中出现文字,多用图片与数据。多注意论文中的生名次/专业名词,一定要搞清楚,它在文中的原由。还有一个原因,能放到ppt作报告的部分,在别人眼中一定是可以拿出来做说清楚的,所以切忌不懂乱用。
2.4 在报告和论述中多用专业术语,省时省力。当然这需要大量的积累。
3.论文写作目的
要讲清楚这个关键中的关键。分以下几点:
1) 在introduction中,作者想表达哪些思想(用了什么引文、做了哪些铺垫)
2)创新性和贡献在哪里(多为几个论点)
3) 细节上把握:
(1)method,尤其是各参数(最好编程跑一跑,论据充分么)
(2)实验怎么设计的,设计的是否合理,是否能论证第二点?或者说论证了什么。
最后能发散并给出自己的想法和提问题最好。
三、分享
1.论文链接
https://arxiv.org/pdf/1612.00370.pdf
2. 好文分享
1、关于教育,耶鲁大学的理念:
https://mp.weixin.qq.com/s?__biz=MzA4NzQ5MTA2NA==&mid=2653634656&idx=1&sn=7820603b5128e768b811cad1b83840fd&chksm=8be748…
对教育的几点看法还是很值得思考的,后面的关于幸福的追求,就有点过于理论了。
2、关于论文写作的和学术生涯的几点建议:
https://mp.weixin.qq.com/s/0am8pftN2XYKBQAE3KX1VA
不管是学术生涯还是生活都非常值得一看的文章。
厉害的人不是随便简简单单的努力就会成为的,必然会有那么一些在长远上能让他不断成长的方式,而这些方式不仅是学术生涯,生活中都十分有价值。
本人新浪博客对该文做的读书笔记分享:http://blog.sina.com.cn/s/blog_19b5d18f20102yfly.html