重磅谷歌开源 TensorFlow 图说生成模型,可真正理解图像
Posted 新智元
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重磅谷歌开源 TensorFlow 图说生成模型,可真正理解图像相关的知识,希望对你有一定的参考价值。
1新智元编译1
来源:Google Research Blog,Github
译者:闻菲
【新智元导读】谷歌今天宣布开源图说生成系统 Show and Tell 最新版在 TensorFlow 上的模型。该系统采用编码器-解码器神经网络架构,分类准确率达 93.9%,在遇到全新的场景时能够生成准确的新图说。谷歌表示,这说明该系统能够真正理解图像。在新智元后台回复“0923”下载相关论文。
2014 年,谷歌大脑团队的研究员训练了一个机器学习系统,自动生成能够准确描述图像的图说。这一系统的发展使其在 MS COCO 2015 图说生成竞赛中夺得第一。
现在,我们将这一图说生成系统的最新版开源,作为 TensorFlow 的一个模型。这次发布的版本对系统计算机视觉组件的一些重大技术提升,训练速度更快、生成的图说也更加准确、丰富。
2014 年的系统使用当时最好的图像模型——Inception V1 图像分类模型对图像编码器进行初始化,在 ImageNet 2012 图像分类任务基准中,Top 5 准确率为 89.6%。2015 年,使用升级后的 Inception V2,系统准确率提升为 91.8%,还为图说生成系统的 BLEU-4 指标增加了 2 分。BLEU-4 指标常用于衡量机器翻译生成的句子的质量,对自动生成图说而言是一项重要的因素。
更新模型 今天我们发布的图像编码器使用 Inception V3 模型,代码在 ImageNet 分类任务上的准确率达到 93.9%。用更好的模型对图像编码器进行始化,能使图说生成系统更好地识别图像中的物体,从而生成更丰富和准确的图说。这次更换模型也让 BLEU-4 指标增加了 2 分。
微调 计算机视觉组件的另一大提升来自图像模型的微调。微调就是训练经过初始化的图像编码器对图像中的物体进行分类,目标是让图说生成系统使用图像编码器的编码,描述图像中的物体。在微调阶段,我们会使用人类生成的图说,对系统的视觉和语言组件同时进行训练。这将使系统能够转移图像中那些专门用于生成描述性图说的信息,这部分信息在物体分类时不一定会用到。具体说,经过微调以后,系统在描述物体颜色时会更加准确。需要注意的是,只有在系统的语言组件学会生成图说以后才能进行微调。否则,随机初始化的语言组件含有的噪音,会给系统的计算机视觉组件带来不可逆的损伤。
左:更好的图像模型让图说生成系统能够生成更加丰富准确的描述。右:对图像模型进行微调以后,系统会更有可能描述图像中物体的颜色。
速度 之前我们的图说生成系统是在 DistBelief 软件框架下实现。现在,TensorFlow 版本能够以更快的速度达到同样高的精度:使用英伟达 K20 GPU 在 TensorFlow 上预训练时间,每次仅为 0.7 秒(DistBelief 为 3 秒),总的训练时间只需要之前的四分之一。
看到这样的图说生成系统,自然而然会想到一个问题:系统在遇到此前没有见过的情景和互动时,能否生成全新的描述?关于这个问题的答案,我们使用海量由人类手工添加的图说作为训练样本,因此系统在遇到相似的场景时,常常会重复使用之前的描述。
系统在遇到相似的场景时,会重复使用之前人类为相似场景添加的描述
那么,系统真的认识图像中的物体并且明白它们之间的互动吗?还是说系统只会重复使用训练时接收的数据?下面要说的就很令人兴奋了:模型在遇到全新的场景时,确实能够发展出生成准确的新图说的能力,这表明系统对图像中的物体和场景具有更深层的理解。不仅如此,系统还学会了使用听上去很自然的英语将这一理解表达出来,而且,这都是在没有接受额外语言训练的情况下完成的。
模型遇到与训练样本相似的场景时,系统生成了全新的图说
Show and Tell 模型采用编码器-解码器神经网络架构。首先将一幅图像“编码”成固定长度的向量表征,然后将这一表征“解码”为自然语言描述。
图像编码器是一个深度卷积神经网络(CNN)。CNN 常被用于图像处理任务,在物体识别和检测中保有目前最高水平。Show and Tell 采用在 ILSVRC-2012-CLS 图像分类数据集上预训练过的 Inception V3 图像识别模型。
解码器是一个长短时记忆(LSTM)网络。LSTM 网络常用于对序列建模,比如语言建模和机器学习。在 Show and Tell 中,LSTM 网络被训练为一个与图像编码相关的语言模型,必须在图像编码器之后训练。
图说中的单词用一个嵌入式模型表征。经过训练,词汇表中的每个单词都与固定长度的向量表征相关联。Show and Tell 的神经网络架构如下。
上图中,{s0, s1, ..., sN-1} 代表图说中的单词,{wes0, wes1, ..., wesN-1} 是对应的嵌入式向量。LSTM 的输出 {p1, p2, ..., pN} 是模型为句子中下一个单词生成的概率分布。{log p1(s1), log p2(s2), ..., log pN(sN)} 代表每一步正确单词的可能性函数。这些值的总和负数就是模型的最小化目标。
我们希望共享 TensorFlow 的这个模型将有助于推进图说生成方面的研究和应用,同时也让有兴趣的人能够学习、练习。系统现在使用的是 Inception V3 图像分类模型,你还可以选择使用谷歌前不久发布的 Inception-ResNet-v2 模型,看看结果会不会更好。
想了解更多细节,可以参见 Oriol Vinyals 等人写的论文 “Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge”。
摘要
自动描述图像内容是人工智能的一个根本问题。在本文中,我们展示了一个基于深度循环架构的生成模型,结合了计算机视觉和机器翻译领域的最新进展,能够生成描述图像的自然语言。我们训练这一模型使其生成目标描述的可能性最大化。在几个不同数据集上的实验展示了模型的准确率和单纯从图像描述中学会的语言的流利程度。经过定量和定性分析,我们验证了模型的准确率相当高。最后,由于近来对图说生成任务的关注骤增,2015 年人们使用最新发布的 COCO 数据集举办了一项竞赛。我们描述并分析了我们对基准的各种改进,展示了我们在竞赛中的表现结果,最后附上 TensorFlow 的开源实现。
在新智元后台回复“0923”下载相关论文。
编译来源:
https://research.googleblog.com/2016/09/show-and-tell-image-captioning-open.html
https://github.com/tensorflow/models/tree/master/im2txt
以上是关于重磅谷歌开源 TensorFlow 图说生成模型,可真正理解图像的主要内容,如果未能解决你的问题,请参考以下文章
重磅 | 谷歌召开首届TensorFlow开发者大会,正式发布TensorFlow 1.0
谷歌昨夜放深度学习大招!三款硬件产品TensorFlow六大重磅升级
重磅!深度学习网络模型大全来了(基于TensorFlow和PyTorch的开源复现)
谷歌开源推荐系统库(TensorFlow Recommenders)