如何教计算机看懂一张图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

的向量表示,然后“decoder” RNN将向量表示作为隐层初始值,产生目标语言 的句子。那么一个直观的想法是,能否复用上面的框架,考虑到CNN在图片特 征提取方面的成功应用,将encoder RNN替换成CNN,先利用CNN将图片转换 到一个向量表示,再利用RNN将其转换到sentence。可以通过图片分类提前训 练好CNN模型,将CNN最后一个隐藏层作为encoder RNN的输入,从而产生句 子描述。如下图所示。
用日常英语标记的超过 1400 万张图像,跨越 21,800 个类别。而且这个集 合了全球智慧和力量的数据库是免费的。这也就意味着,全球所有致力 于图像识别的公司,都可以免费对自己的算法进行反复测试。 数据集应用于一年一度举办的The ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 比赛 2016年李飞飞教授也从学术界转移到了工业界,正式加入谷歌,任 Google Cloud Machine Learning(谷歌云机器学习)负责人。
给定一张图片,利用selective search方法来产生2000个候选窗口。 然后利用CNN进行对每一个候选窗口提取特征(取全连接层的倒数第一层),特征 长度为4096。 最后用SVM分类器对这些特征进行分类(每一个目标类别一个SVM分类器), SVM的分类器的参数个数为:4096*N,其中N为目标的类别个数,所以比较容 易扩展目标类别数。
一个人骑在一匹马上,他的狗坐在马前面
图像描述
即通过深度学习,直接根据image产生sentence。 Pipeline方法和End-to-end方法。
Pipeline方法
先学习到image中visual object对应的word(参照图像识别image detection
方法),再加上language model,就可以生成sentence。这种方法各个模 块可以独立调试,相对来说,更灵活一点。
通过一个RNN来对输入句子进行encode。 把源句子中的词一个一个顺序输入,RNN对输入的词进行如下操作:
每一个当前状态的输出是基于之前所有词的输入,因此将最后一个时刻隐 藏层的表达当做整个句子的向量表示。Leabharlann Baidu
Decode
我们将源句子的向量表示和目标句子中第i时刻的词的词向量一起作为
RNN网络的输入,如下面公式所示,s表示源句子的向量表示(source sentence),V(f_i)表示的第i个词的词向量,通过隐藏层计算后,再通过 一个softmax函数生成一个K维的向量(这个K表示词典的长度),向量中 每一维的值表示基于前面的词以及源句子后,出现下一个词的概率。
谷歌NIC(Neural Image Caption)模型
相较于百度的m-RNN模型,NIC模型的主要不同点在于: 首先,在语言模型部分将RNN替换为了实践证明在NLP方面效果更好的LSTM。 其次,在图像模型部分使用了效果更好的卷积神经网络模型来做图像特征数据的提取。 最后,改变了图像特征数据的输入方式,从m-RNN的每个时间点都输入变成了只在初始时输入1
InputLayer就是输入图片层,每个输入图片都将被缩放
到固定尺寸,分rgb三个颜色维度输入。 Layer1~ Layer5是卷积层。在Layer1,卷积滤波后,还接 有ReLUs操作和max-pooling操作。 Layer6~ Layer8是全连接层,相当于在五层卷积层的基 础上再加上一个三层的全连接神经网络分类器。 Layer8的神经元个数相当于训练目标的图片类别数。
ImageNet大规模视觉识别挑战赛
VisualGenome 挑战赛
深度学习在图像语义分析的应用
图像分类(image classification) 目标检测(object detection) 图像理解
图像分类(image classification)
图片分类是一个最基本的图片语义分析方法。
最后我们可以将这个网络完整表示为如下所 示
m-RNN(multimodal Recurrent Neural Network) 模型
2014年10月,百度研究院的Junhua Mao和Wei Xu等人在arXiv上发布论文
《Explain Images with Multimodal Recurrent Neural Networks》,提出 了multimodal Recurrent Neural Network(即m-RNN)模型,创造性地 将深度卷积神经网络CNN和深度循环神经网络RNN结合起来,用于解决 图像标注和图像和语句检索等问题。
汇报人:黄江 专业:信息计算技术 2016年12月22日
李飞飞2015年在TED的演讲——“我们如何教计算机理解图像” TED演讲的主旨是:Ideas worth spreading. 【T】Technology 技术【E】Entertainment 娱乐【D】Design 设计。
李飞飞教授曾为斯坦福大学人工智能实验室和视觉
基于深度学习的图片分类
由Hinton和他的学生Alex Krizhevsky在ILSVRC(Imagenet Large Scale Visual Recognition Competition) 2012中提出。 整个网络结构包括五层卷积层和三层全连接层,网络的最 前端是输入图片的原始像素点,最后端是图片的分类结果。 一个完整的卷积层可能包括一层convolution,一层 Rectified Linear Units,一层max-pooling,一层 normalization。
机器翻译
将输入句子(source sentence)和目标句子(target sentence)表示在同一 个向量空间,当输入一个句子时,将其encode成一个向量,这个向量包 含了句子的语义信息,然后将这个向量decode,得到目标句子。 Encode 我们可以通过文本深度表示模型word2vec将句子中 每个词表示成一个K维的向量形式,这里每个词向量 是表示了词的语义信息的,然后进行几次纵向的卷 积操作,最后可以得到一个1*K维的向量,这个向量 就被当成是这个句子的向量表达。
如右图所示,它分为三步:
(1)利用上一节提到的思路detect words;
(2)基于language model(RNN or LSTM)产生句子; (3)利用相关性模型对句子打分排序。
End-to-end方法
通过一个模型直接将image转换到sentence。 在机器翻译中,“encoder” RNN读取源语言的句子,将其变换到一个固定长度
图像理解
类比一下我们人如何去“理解”一幅图像 理解一副图像时也是要先认识到图像中有哪一些目标及图像的背景,然
后在脑海中尝试用语言来勾勒出图像传达出来的意思,这里面需要大量 的先验知识,包括我们作为人来说,学习到的语言知识,计算机无非就 是按照我们理解图像的方式来理解图像,在拥有了大量的数据、知识后 肯定能比我们做的更快。
次。我们从实践经验上证实如果在每一个时间点都输入图像数据,将会导致较差的结果。网络可 能会放大图像数据中的噪音,并且更容易过拟合。
NeuralTalk: 一个开源的从图片生成文本描 述的工具
NeuralTalk是一个Python的从图像生成自然语言描述的工具。它实现了
Google (Vinyals等,卷积神经网络CNN + 长短期记忆LSTM) 和斯坦福 (Karpathy and Fei-Fei, CNN + 递归神经网络RNN)的算法。NeuralTalk 自带了一个训练好的动物模型。 项目主页:http://www.open-open.com/lib/view/home/1417931333542
实验结果
结论和展望
生成一幅图像的文本描述是一件很有意义的事情。我们知道人们传递信
息一般有三种方式,文本、语音、图像,这三种信息的传递方式各有各 的特点。如果能构建一个桥梁将它们联系起来,将会更好的传递信息, 给人们带来更多的便利以及想象空间。文本和语音的关联上人们做了很 多的研究,但是图像和文本之间人们似乎一直没有很有效的将其连接起 来。我上面说的这些都是非常好的努力,它帮助计算机更好的去理解图 像,并且在图像—文本相关联的一些任务(比如检索、问答等)上可以 带来非常大的帮助。
对于文本和图片的语义分析,可以看到:最近几年,在某些任务上,基
于深度学习的方法逐渐超过了传统方法的效果。但目前为止,对于深度 学习的发掘才刚刚开始,比较惊艳的神经网络方法,也只有有限几种, 譬如CNN,RNN,RBM等。 未来其他的研究热点: Video。Learn about 3D structure from motion。研究将视频也转换到自 然语言。
传统的图片分类,首先需要先手工提取图片特征, 譬如SIFT,再经由VQ coding和Spatial pooling, 最后送入传统的分类模型(例如SVM等)。 传统方法里,人工特征提取是一个巨大的消耗性工作。 而随着深度学习的进展,不再需要人工特征,通过深度 学习自动提取特征成为一种可能。接下来主要讲述卷积 神经网络在图片分类上的使用。
其结构特点可以归纳如下: 模型的输入是图像和与图像对应的标注语句(比如在下图中,这个语句就可
能是a man at a giant tree in the jungle)。其输出是对于下一个单词的可能 性的分布; 模型在每个时间帧都有6层:分别是输入层、2个单词嵌入层,循环层,多模 型层和最后的Softmax层; 循环层的维度是256维,在其中进行的是对t时刻的单词表达向量和t-1时刻的 循环层激活数据的变换和计算
目标检测
目标检测(object detection)相比于图片分类,提取到信息将更加丰富。 目前最先进的detection方法应该是Region-based CNN(简称R-CNN),是 由Jeff Donahue和Ross Girshick提出的。R-CNN的具体方法是,将 detection分为寻找object和识别object两个过程。 在第一步寻找object,可以利用很多region detection算法,譬如selective search,CPMC,objectness等,利用很多底层特征,譬如图像中的色块, 图像中的边界信息。 第二步识别object,就可以利用“CNN+SVM”来做分类识别。
多模型层连接着模型的语言部分和图像部分。图像部分就是上图中绿色
虚线包围的部分,其本质是利用深度卷积神经网络来提取图像的特征。 在该文中,使用的是AlexNet的第七层的激活数据作为特征数据输入到多 模型层,如此就得到了图像特征向量。而语言部分就是包含了单词嵌入 层和循环层。 模型的语句生成:模型从一个特殊的开始符号“##START##”或者任意 个参考单词开始,然后模型开始计算下一个单词的概率分布。然后取概 率最大的一个单词作为选取的单词,同时再把这个单词作为输入,预测 下一个单词,循环往复,直到生成结束符号##END##。
2016年李飞飞开启了VisualGenome(视觉基因组)计划,要把语义和图
像结合起来。 在VisualGenome 的官方网站上,把它定义为: VisualGenome 是一个数据集,知识库,不断努力把结构化的图像概念和 语言连接起来。 VisualGenome 的图像要比ImageNet的图像标签更为丰富,包括名字、 图片的不同细节,以及在对象和动作信息之间的关系。
实验室主任,多年来致力于解决人工智能的棘手问 题——包括图像识别,学习能力和语言处理等功能。 她和她的团队在2007年通过网络众包技术,建立起 了一个含有1500万张照片的数据库ImageNet,将深 度学习应用到图像相关领域的这个潮流中起到了非 常重要的作用。
今天,ImageNet数据集已经成为全球最大的图像识别数据库,包含了使
相关文档
最新文档