2016-11-25 17:08:40 oMengLiShuiXiang1234 阅读数 41633
  • TensorFlow实战进阶:手把手教你做图像识别应用

    TensorFlow实战教程,图像识别应用示例教程,该课程特邀请AI100 阿里2017 云栖大会 API Solution大赛一等奖团队的联合创始人智亮先生,他将给大家介绍当前图像识别领域中先进的深度学习模型,并从源码级给大家讲解TensorFlow实现工业级图像识别应用的详细过程。具体内容包括:TensorFlow基础和模型选择,TensorFlow训练和验证模型,调参、模型上线和部署。

    8805 人正在学习 去看看 AI100讲师

主要做了基于深度学习的图像识别与检测的研究,下面是一些整理内容

1、深度学习的优势


(1)从统计,计算的角度看,DL特别适合处理大数据

       a、用较为复杂的模型降低模型偏差

       b、用大数据提升统计估计的准确度

       c、用可扩展的梯度下降算法求解大规模优化问题

这个大数据是除了数量上的大,还有更重要的是维度的大,很多算法本身是无法处理高纬度数据的,例如Kernel学习机相关的算法, 虽然理论上是先将数据向高维空间映射,然后在高维空间进行线性的求解,实际上在处理的时候还是回到原空间处理。传统的BP算法针对高维的数据也是效果不佳。

 

CNN等为什么对图像领域更加有效,因为其不但关注了全局特征,更是利用了图像识别领域非常重要的局部特征,应该是将局部特征抽取的算法融入到了神经网络中。图像本身的局部数据存在关联性,而这种局部关联性的特征是其他算法无法提取的。深度学习很重要的是对全局和局部特征的综合把握


(2)深度学习不是一个黑箱系统。它像概率模型一样,提供一套丰富的、基于联接主义的建模语言。利用这套语言系统,我们可以表达数据内在的丰富关系和结构。比如用卷积处理图像中的二维空间结构,用递归神经网络(Recurrent Neural Network)处理自然语言等数据中的时序结构


(3)深度学习几乎是唯一的端到端的学习系统

它直接作用于原始数据,自动逐层进行特征学习,整个过程直接优化目标函数。


2、深度学习在图像识别中的发展趋势


(1)模型层次不断加深

       2012Alex 获得ImageNet 冠军,其所用的AlexNet5个卷积层 3个pool层 和2个全连接层

       2014年获得ImageNet的GoogleNet,使用了59个卷积层,16个pool层和2个全连接层。

       2016年微软的ResNet深度残差网络,用了152层的架构


(2)模型结构日趋复杂

       传统的卷积神经网络都是简单的 conv-pool-FC

       后来NIN 用mlpconv 代替传统的 conv层(mlp 实际上是卷积加传统的多层感知器 )。这样做一方面降低过拟合程度提高模型的推广能力,另一方面为大规模并行训练提供非常有利的条件


(3)海量的标注数据和适当的数据扰动

       DL需要大量的数据,现有的图像数据不能满足需求,结合图像数据的特点,通过平移、水平翻转、旋转、缩放等数据扰动方式可以产生更多的有效数据,普遍提高识别模型的推广能力。


3、如何应用深度学习


(1)  将ImageNet上训练得到的模型作为起点,利用目标训练集和反向传播对其进行继续训练,将模型适应到特定的应用

(2)  如果目标训练集不够大,可以将底层的网络参数固定,沿用ImageNet上的训练集结果,只对上层进行更新。

(3)  直接采用ImageNet上训练得到的模型,把最高的隐含层的输出作为特征表达,代替常用的手工设计的特征。

 

4、卷积神经网络


(1)什么是卷积神经网络

     

 卷积神经网络是一种为了处理二维输入数据而特殊设计的多层人工神经网络。网络中的每层都由多个二维平面组成,而每个平面由多个独立的神经元组成。相邻两层的神经元之间互相连接。

A、       卷积特征提取(局部连接,权值共享

从图像中随机选取一小块局域作为训练样本,从该样本中学习到一些特征,然后将这些特征作为滤波器,与原始整个图像作卷积运算,从而得到原始图像中任意位置上的不同特征的激活值(见动图)


B、       池化

通过将卷积层提取的特征输入至分类器中进行训练,可以实现输出最终的分类结果。理论上可以直接输出,然而这将需要非常大的计算开销,特别是对于大尺寸高分辨率图像

由于图像具有一种“静态性”的属性,在图像的一个局部区域得到的特征极有可能在另一个局部区域同样适用。因此,对图像的一个局部区域中不同位置的特征进行聚合统计操作,这种操作统称为池化


(2)卷积神经网络的发展


A、 1990年,LeCun等在研究手写体数字识别问题时,首先提出来使用梯度反向传播算法训练的卷积神经网络模型,并在MNIST手写数字数据集上表现出了好的性能。

B、 2012年ImageNet比赛中 AlexKrizhevsky等提出的AlexNet首次将深度学习应用到大规模图像分类,并获得了冠军。

AlexNet用了5层卷积层和3层全连接层,最后用softmax进行分类。

改进点:

a、       采用dropout训练策略,在训练过程中将输入层和中间层的一些神经元随机置零。这模拟了噪声对输入数据的各种干扰使一些神经元对一些视觉模式产生漏检的情况。使得训练过程收敛过慢,但得到的网络模型更加鲁棒。

b、       采用ReLU(修正线性单元)作为激励函数,降低了计算的复杂度

c、        通过对训练样本镜像映射和加入随机平移扰动,产生了更多的训练样本,减少了过拟合

C、 2013 ImageNet的获胜队伍Clarifai 提出了卷积神经网络的可视化方法,运用反卷积网络对AlexNet的每个卷积层进行可视化,以此来分析每一层所学习到的特征从而加深了对于卷积神经网络为什么能在图像分类上取得好的效果的理解,并据此改进了该模型。


D、 2014 ImageNet Google团队


网络有22 层,受到赫布学习规则的启发,同时基于多尺度处理的方法对卷积神经网络作出改进。该文基于Network in Network思想提出了Inception模块。Inception 模块的结构如图所示,它的主要思想是想办法找出图像的最优局部稀疏结构,并将其近似地用稠密组件替代。这样做一方面可以实现有效的降维,从而能够在计算资源同等的情况下增加网络的宽度与深度;另一方面也可以减少需要训练的参数,从而减轻过拟合问题,提高模型的推广能力。


E、 2015年微软亚洲研究院所提出的152层的深度残差网络以绝对的优势获得图像检测、图像分类和图像定位3个项目的冠军

 

5、物体检测

(1)物体分类与检测的难点与挑战

物体分类与检测是视觉研究中的基本问题,也是一个非常具有挑战性的问题.物体分类与检测的难点与挑战在本文中分为3个层次:实例层次、类别

层次和语义层次,如图所示

 

 

 

a)       实例层次

针对单个物体实例而言,通常由于图像采集过程中光照条件、拍摄视角、距离的不同、物体自身的非刚体形变以及其他物体的部分遮挡,使得物体实例的表观特征产生很大的变化,给视觉识别算法带来了极大的困难

b)       类别层次

困难与挑战通常来自3个方面,

类内差大,也即属于同一类的物体表观特征差别比较大,其原因有前面提到的各种实例层次的变化,但这里更强调的是类内不同实例的差别,例如图(a)所示

类间模糊性,即不同类的物体实例具有一定的相似性,如图(b)背景的干扰在实际场景下,物体不可能出现在一个非常干净的背景下,往往相反,背景可能是非常复杂的、对我们感兴趣的物体存在干扰的,这使得识别问题的难度大大增加

c)        语义层次.

困难和挑战与图像的视觉语义相关,这个层次的困难往往非常难处理,特别是对现在的计算机视觉理论水平而言,一个典型的问题称为多重稳定性.如图(C)左边既可以看成是两个面对面的人,也可以看成是一个燃烧的蜡烛;右边则同时可以解释为兔子或者小鸭.同样的图像,不同的解释,这既与人的观察视角、关注点等物理条件有关,也与人的性格、经历等有关,而这恰恰是视觉识别系统难以处理的部分



(2)物体检测的发展(详细算法介绍见后续)

       较有影响力的工作包括:

A、       RCNN (2013)

B、       Fast RCNN

C、       Faster RCNN

D、      R-FCN

E、       YOLO

F、       SSD


 

参考文献


【1】  基于深度学习的图像识别进展:百度的若干实践 (2015 百度公司)

【2】  图像识别中的深度学习 (2015 香港中文大学 王晓刚)

【3】  图像无图分类与检测算法综述 (2014 中国科学院自动化研究所模式识别国家重点实验室智能感知与计算研究中心)

【4】  深度卷积神经网络在计算机视觉中的应用研究综述 (2016 上海交通大学)

【5】  Rich feature hierarchies foraccurate object detection and semantic segmentation (2014)

【6】  Fast R-CNN (2015)

【7】  Faster R-CNN :Towards Real-Time Object Detection with Region Proposal Networks (2016)

【8】  Detection(网址上面描述各种检测算法)

2018-07-09 14:31:49 qq_34759239 阅读数 2780
  • TensorFlow实战进阶:手把手教你做图像识别应用

    TensorFlow实战教程,图像识别应用示例教程,该课程特邀请AI100 阿里2017 云栖大会 API Solution大赛一等奖团队的联合创始人智亮先生,他将给大家介绍当前图像识别领域中先进的深度学习模型,并从源码级给大家讲解TensorFlow实现工业级图像识别应用的详细过程。具体内容包括:TensorFlow基础和模型选择,TensorFlow训练和验证模型,调参、模型上线和部署。

    8805 人正在学习 去看看 AI100讲师

目前,深度学习在图像、语音、自然语言处理都取得了重大突破。深度学习(卷积神经网络)最初是为解决图像识别问题而提出的。目前深度学习在图像识别中的应用主要集中于图像分类、目标检测、图像分割等领域。

图像分类

图片分类的任务是对于一个给定的图片,预测其类别标签。

深度学习在图像分类上的应用可追溯到最初银行支票上的手写数字自动识别,现在的人工智能三巨头之一Yan LeCun在1994年提出了LeNet,使用卷积来提取空间特征,进行手写字符的识别与分类,准确率达到了98%,并在美国的银行中投入了使用,被用于读取北美约10%的支票,LeNet将卷积、池化和非线性激活函数相结合,奠定了现代卷积神经网络的基础。

之后随着每年ImageNet比赛的成功举办,深度学习在图像分类中的精度逐渐提升。2012年Hinton的学生Alex Krizhevsky提出了AlexNet,并获得当年Imagenet比赛冠军,AlexNet可以算是LeNet的一种更深更宽的版本,证明了卷积神经网络在复杂模型下的有效性,算是神经网络在低谷期的第一次发声,确立了深度学习,或者说卷积神经网络在计算机视觉中的统治地位。

2014年,牛津大学计算机视觉组和Google DeepMind公司一起研发了深度卷积神经网络VGGNet,并取得了当年Imagenet比赛定位项目第一名和分类项目第二名。该网络主要是泛化性能很好,容易迁移到其他的图像识别项目上,可以下载VGGNet训练好的参数进行很好的初始化权重操作,现在很多卷积神经网络都是以该网络为基础,比如FCN,UNet,SegNet等。vgg版本很多,常用的是VGG16,VGG19网络。

2015年,ResNet(残差神经网络)由微软研究院的何凯明等4名华人提出,成功训练了152层超级深的卷积神经网络,效果非常突出,而且容易结合到其他网络结构中。在五个主要任务轨迹中都获得了第一名的成绩(ImageNet分类任务,ImageNet检测任务,ImageNet定位任务,COCO检测任务,COCO分割任务)。

2015年 Szegedy等人提出了 GoogLeNet,在卷积神经网 络中搭建多个 inception模块,以增加卷积神经网络的深度和宽度。由于 inception模块中卷积核的尺寸较小,GoogLeNet的训练参数大约 50万个,只有 AlexNet参数数量的 1/12,但是在 ImageNet数 据集上图像识别的准确度提高了 10%左右。

2016,2017年的ImageNet比赛,来自中国的团队大放异彩,商汤科技,公安部三所,HikVision(海康威视),NUIST(南京信息工程大学)都拿到过各个项目的冠军,网络结构多采用多个网络做集合。

目标检测

目标检测是指从一幅场景(图片)中找出目标,并用矩形框确定目标的位置。多应用于人脸识别、自动驾驶、遥感影像识别等领域。

目前基于深度学习的目标检测算法大致分为两类:

  • 基于区域建议的目标检测与识别算法,如R-CNN, Fast-R-CNN, Faster-R-CNN
  • 基于回归的目标检测与识别算法,如YOLO, SSD

2014年,Girshick(RGB大神)等人提出了 R-CNN模型。该模型利用 selective search方法从待检测图像中提取若干个候选区;然 后将候选区转换为统一的大小,使用卷积神经网络对其进行特征提取;最后运用多个 SVM对特征进行分类,完成多目标检测。 由于选择了较好的候选区以及使用了AlexNet判定候选区所 属的类别,识别效果非常好,极大地提高了 PascalVOC数据集上的检测效果。

2015年,Girshick为了提高 R-CNN模型的检测速度,提出了 fast-R-CNN模型。该模型仍然利用selective search方法从待检测图像中提取若干个候选区。相比于 R-CNN模型对每个候选区都提取特征,fast-R-CNN只对待检测 图像提取特征;然后将候选区对应的特征图通过空间金字塔池 化层映射为固定长度的特征向量;最后特征经过全连接的神 经网络进行分类,并且预测边界框的坐标,对候选区进行修正,大幅提升了目标检测的速度。

2015年,继R-CNN,fast-R-CNN之后,目标检测界的领军人物Ross Girshick团队(包括华人科学家任少卿,何凯明大神,孙剑)又推出faster-R-CNN模型,该模型由用于提取候选区的卷积神经网络(RPN)和用于目标检测的卷积神经网络 fast-R-CNN构成。RPN对待检测图像中的每个位置都预测是否存在目标,并给出可能性最大的候选区。Fast-R-CNN 判别所有候选区的类别并预测目标的边界框,对候选区进行修正。由于RPN和fast-R-CNN共享了卷积神经网络特征提取的部分,只需提取一次待检测图像的特征,加快了目标检测的速度。

2015年,Joseph Redmon等人(Ross Girshick挂名)提出 YOLO模型,即you only look once,用来实现实时目标检测的一种神经网络,将一个物体检测作为一个回归问题求解,输出图像只需经过一次inference,便可直接获取到图像中物体位置,物体对应的类别及其置信度。由于YOLO没有显示求解region proposal,而是将该过程直接融合在网络中,所以避免了很多麻烦。

2015年Wei Liu等人提出了SSD,结合了YOLO中的回归思想和Faster-RCNN中的Anchor机制,使用全图各个位置的多尺度区域特征进行回归,既保持了YOLO速度快的特性,也保证了窗口预测的跟Faster-RCNN一样比较精准。SSD的核心是在特征图上采用卷积核来预测一系列Default Bounding Boxes的类别、坐标偏移。为了提高检测准确率,SSD在不同尺度的特征图上进行预测。

语义分割

语义分割也就是像素级别的分类,让计算机根据图像的语义来进行分割,确定边缘位置。目前应用有自动驾驶、医疗影像识别、遥感影像识别等领域。

传统的语义分割主要依赖使用人工提取特征和概率图模型,2015年Jonathan Long等提出了全卷积网络(FCN),将深度学习引入了语义分割领域,FCN这篇论文(Fully Convolutional Networks for Semantic Segmentation)的发表,成为了语义分割的一个重要转折点。FCN主要使用了卷积化(Convolutional)、上采样(Upsample)、跳跃结构(Skip Layer)三种技术。

2015年Vijay Badrinarayanan等人提出SegNet,主要贡献:将最大池化指数转移至解码器中,改善了分割分辨率。SegNet 没有复制 FCN中的编码器特征,而是复制了最大池化索引,这使得 SegNet 比 FCN 更节省内存。

2016年Liang-Chieh Chen等提出了DeepLab网络,DeepLabv1:结合深度卷积神经网络,使用空洞卷积(atrous convolution)进行语义分割。DeepLabv2:基于 DeepLabv1 的优化,使用空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)对物体进行有效的分割。DeepLabv3:采用多比例的带孔卷积级联或并行来捕获多尺度背景,基于图像特征优化 ASPP。DeepLabv3+ :对 DeepLabv3 的扩展,包括一个简单而高效的改善分割结果的解码器模块目前,DeepLabv3+版本已经开源。

2016年Hengshuang Zhao等提出了PSPNet网络,提出的金字塔池化模块( pyramid pooling module)能够聚合不同区域的上下文信息,从而提高获取全局信息的能力。

2017年何凯明等人提出了Mask R-CNN,在原有Faster R-CNN的基础上添加了一个分支网络把目标像素分割出来,对每个实例生成一个高质量的分割掩码。该论文(Mask R-CNN)获得了ICCV 2017的best paper,作为大神级人物,这也是他第三次斩获顶会最佳论文,另外,他参与的另一篇论文:Focal Loss for Dense Object Detection,也被大会评为最佳学生论文。

2016-10-24 12:34:34 youyuyixiu 阅读数 10747
  • TensorFlow实战进阶:手把手教你做图像识别应用

    TensorFlow实战教程,图像识别应用示例教程,该课程特邀请AI100 阿里2017 云栖大会 API Solution大赛一等奖团队的联合创始人智亮先生,他将给大家介绍当前图像识别领域中先进的深度学习模型,并从源码级给大家讲解TensorFlow实现工业级图像识别应用的详细过程。具体内容包括:TensorFlow基础和模型选择,TensorFlow训练和验证模型,调参、模型上线和部署。

    8805 人正在学习 去看看 AI100讲师

作者:丰晓霞
学校:太原理工大学
时间:2015
类型:硕士学位论文


思想
深度学习和支持向量机结合–>构建图像识别的模型
利用卷积限制性玻尔兹曼机–>构建深度网络、改进训练过程

摘要
本文研究的主要工作包括:
(1)认真分析了图像识别的方法及存在的问题,对现有的图像识别算法进行了对比研究,详细叙述了深度学习的发展和进展,对比了深度学习结构相比浅层结构的优势所在,总结了深度学习的常用方法,详细介绍了限制性玻尔兹曼机和卷积限制性玻尔兹曼机的原理和训练过程。
(2)将深度学习和支持向量机相结合,将多个限制性玻尔兹曼机与支持向量机连接构建多层分类模型,用深度学习的方法提取样本特征,然后用支持向量机方法进行分类,并将其应用到图像识别任务中。通过实验验证,在样本较少的情况下,与支持向量机和深度信念网络进行比较效果良好,并且通过不同样本数、层数、节点数与正确率的比较,讨论了隐含层节点数与支持向量数的关系,并且讨论了相关参数对结果的影响。
(3)对由卷积限制性玻尔兹曼机构成的卷积深度信念网络的训练过程进行改进,通过交替进行无监督和有监督学习来训练网络,最后将该网络用于图像识别中,通过实验验证了可行性和有效性,讨论了卷积核大小对结果的影响。

关键词
深度学习,图像识别,限制性玻尔兹曼机,卷积限制性玻尔兹曼机,支持向量机

创新点
(1)将深度学习和支持向量机相结合,构建了用于图像分类的模型,详述了训练过程,通过实验,在样本较少的情况下,与支持向量机和深度信念网络进行比较,效果均优于二者,并对不同样本数、层数、节点数与正确率进行了比较,讨论了隐含层节点数与支持向量数的关系,另外,讨论了相关参数对结果的影响。
(2)对用卷积限制性玻尔兹曼机构建深度网络训练过程进行改进,通过交替进行无监督和有监督学习来训练网络的方法,将该网络用于图像识别任务中,取得了良好的效果。

问题
(1)深度学习的理论研究还不够充分,深度学习的有效性还缺乏严格的证明,如对比散度算法,并没有获得充分的研究,其收敛性等问题并不明确。
(2)在数据量比较大的情况下,深度学习算法虽然有准确率的优势,但相比传统算法速度比较慢。如何提高算法的效率,需要编程人员较高的编程水平,并且模型的质量受限于编程人员的经验。
(3)如何降低相关参数调整的难度,降低深度学习算法的难度,也是亟需解决的问题。

改进思路
(1)从深度学习方法同其他方法相结合的思路完善网络,从而提高准确率或者训练速度。
(2)进一步优化相关参数的选取方法,训练方法以及适用范围。
(3)预先通过其他较优的特征提取方法来提取特征,以及使用特征的融合技术,再用深度学习方法来进行识别。

2019-11-21 15:27:21 yoggieCDA 阅读数 23
  • TensorFlow实战进阶:手把手教你做图像识别应用

    TensorFlow实战教程,图像识别应用示例教程,该课程特邀请AI100 阿里2017 云栖大会 API Solution大赛一等奖团队的联合创始人智亮先生,他将给大家介绍当前图像识别领域中先进的深度学习模型,并从源码级给大家讲解TensorFlow实现工业级图像识别应用的详细过程。具体内容包括:TensorFlow基础和模型选择,TensorFlow训练和验证模型,调参、模型上线和部署。

    8805 人正在学习 去看看 AI100讲师

作者 | 周伟能 
来源 | 小叮当讲SAS和Python

Python在机器学习(人工智能,AI)方面有着很大的优势。谈到人工智能,一般也会谈到其实现的语言Python。前面有几讲也是关于机器学习在图像识别中的应用。今天再来讲一个关于运用google的深度学习框架tensorflow和keras进行训练深度神经网络,并对未知图像进行预测。

导入python模块

导入图像数据

合并列表数据

将图片数据转化为数组

显示一张图片

训练神经网络

我们可以看到测试集的准确率达到99.67%

预测一个图像

预测为汽车的概率为100%。(括号内为真实标签)

预测为美女的概率为100%。(括号内为真实标签)

测试集中前15个图像预测完全正确。Nice!

最后我们来识别单张图片。

结果预测为汽车。Nice!

最后来预测一下外部随便下载的汽车或美女图片

预测为汽车,不错!

小编这里有10张图片,前5张为汽车图片,后五张为美女图片。

下面进行批量预测:

结果也是完全正确。

看到这里,感觉神经网络是不是很神奇,要想让神经网络预测得准确,我们就必须给予大量的数据进行训练模型,优化模型,以至于达到准确识别图像的目的,图像识别作为人工智能的一部分,现在已经慢慢走向成熟,虽然机器也有出错的时候,但是进过不断优化,错误率将会越来越小,相信机器智能或者人工智能时代能够创造出更多智能而美好的东西。为社会,为人类的自由做出更大的贡献。

2017-01-15 17:02:06 lindamtd 阅读数 3841
  • TensorFlow实战进阶:手把手教你做图像识别应用

    TensorFlow实战教程,图像识别应用示例教程,该课程特邀请AI100 阿里2017 云栖大会 API Solution大赛一等奖团队的联合创始人智亮先生,他将给大家介绍当前图像识别领域中先进的深度学习模型,并从源码级给大家讲解TensorFlow实现工业级图像识别应用的详细过程。具体内容包括:TensorFlow基础和模型选择,TensorFlow训练和验证模型,调参、模型上线和部署。

    8805 人正在学习 去看看 AI100讲师

来源:《中国计算机学会通讯》 2015年第4期《专题》

作者:都大龙 余轶南 罗 恒 等

概述:深度学习和图像识别

近年来在人工智能领域最受关注的,非深度学习莫属。自2006年吉奥夫雷·辛顿(Geoffery Hinton)等在《科学》(Science)杂志发表那篇著名的论文[1]开始,深度学习的热潮从学术界席卷到了工业界。2012年6月,《纽约时报》披露“谷歌大脑(Google Brain)”项目,由著名的斯坦福大学机器学习教授吴恩达(Andrew Ng)和大规模计算机系统世界顶级专家杰夫·迪恩(Jeff Dean)共同主导,用1.6万个CPU核的并行计算平台训练深度神经网络(Deep Neural Networks, DNN)的机器学习模型,在语音和图像识别等领域获得巨大成功。

国内方面,2013年1月,百度成立深度学习研究院,公司CEO李彦宏担任院长。短短两年时间,深度学习技术被应用到百度的凤巢广告系统、网页搜索、语音搜索、图像识别等领域,涵盖几十项产品。今天,用户在百度平台上的几乎每个服务请求,都被深度学习系统所处理。

人工智能的特征之一是学习的能力,即系统的性能是否会随着经验数据的积累而不断提升。所以,大数据时代的到来给人工智能的发展提供前所未有的机遇。在这个时代背景下,深度学习在包括图像识别等方面所取得的突破性进展并非偶然。

在百度的实践中,我们认识到深度学习主要在以下三个方面具有巨大优势:

1.从统计和计算的角度看,深度学习特别适合处理大数据。在很多问题上,深度学习是目前我们能找到的最好方法。它集中体现了当前机器学习算法的三个大趋势:用较为复杂的模型降低模型偏差(model bias),用大数据提升统计估计的准确度,用可扩展(scalable)的梯度下降算法求解大规模优化问题。

2.深度学习不是一个黑箱系统。它像概率模型一样,提供一套丰富的、基于联接主义的建模语言(建模框架)。利用这套语言系统,我们可以表达数据内在的丰富关系和结构,比如用卷积处理图像中的二维空间结构,用递归神经网络(Recurrent Neural Network, RNN)处理自然语言等数据中的时序结构。

3.深度学习几乎是唯一的端到端机器学习系统。它直接作用于原始数据,自动逐层进行特征学习,整个过程直接优化某个目标函数。而传统机器学习往往被分解为几个不连贯的数据预处理步骤,比如人工抽取特征,这些步骤并非一致地优化某个整体的目标函数。

让计算机识别和理解图像,是人工智能最重要的目标之一。尤其是在移动互联网时代,智能手机上的摄像头将人们日常看到的世界捕捉下来,图像和视频数据暴增,造就了图像大数据时代。计算机视觉的主要内容就是图像识别:一方面,这个技术使得计算机像人类视觉系统一样,具有“看懂”世界的能力,从而能自主适应环境、改造环境;另一方面,依靠识别图像内容,可以帮助我们更好地了解人,比如,通过用户产生的拍照内容了解用户的行为和喜好,或者通过识别用户手势理解用户的意图。借助图像识别让互联网服务更好地理解世界、洞察用户,也是百度深度学习研究院重点投入的技术研发方向之一。

有意思的是,深度学习研究的初衷主要就是应用于图像识别。迄今为止,尽管深度学习已经被应用到语音、图像、文字等方面,但深度学习领域发表的论文中大约70%是关于图像识别的。从2012年的ImageNet[2]竞赛开始,深度学习在图像识别领域发挥出巨大威力,在通用图像分类、图像检测、光学字符识别(Optical Character Recognition, OCR)、人脸识别等领域,最好的系统都是基于深度学习的。前面所述深度学习的三大优势,在最近图像识别的进展中体现得淋漓精致:模型结构越来越复杂,训练数据规模也不断增加;各种关于数据结构的先验知识被体现到新的模型结构中;端到端学习让我们越来越摒弃基于人工规则的中间步骤。

百度深度学习研究院在基于深度学习的图像识别课题上开展了大量工作,并取得丰硕成果。在将基于深度学习的图像识别应用于图像搜索、网页搜索、百度魔图、涂书笔记、作业帮、百度街景等互联网产品以及百度眼镜(BaiduEye)、自动驾驶等创新性研究项目方面,也积累了丰富经验。下面与大家分享若干个技术实践。

基于深度学习的图像分类和物体检测算法

图像分类(image classification)和物体检测(object detection)是图像识别的两个核心问题。前者主要对图像整体的语义内容进行类别判定,后者则定位图像中特定物体出现的区域并判定其类别。与图像分类相比,物体检测更加关注图像的局部区域和特定的物体类别集合,被视为更加复杂的图像识别问题。两项技术在信息检索、广告投放、用户分析、商品推荐等互联网应用中大有用武之地。

传统图像分类算法中具有代表性的是杨(Yang)等人[3]在2009年提出的采用稀疏编码(sparse coding)表征图像、通过大规模数据训练支持向量机(support vector machine)进行图像分类的方法。这类方法在2010年和2011年的ImageNet[1]图像分类竞赛中取得了最好成绩,其主要缺陷在于稀疏编码和分类模型是在不同目标函数的监督下分开训练得到的,两者无法有效地联合训练。变革发生于2012年,辛顿等人[4]采用卷积神经网络(Convolutional Neural Network, CNN)将ImageNet图像Top5分类识别错误率从之前的25%降低到15%。随后,以卷积神经网络为代表的各种深度学习算法被广泛应用于传统的图像识别中,不断刷新纪录。截至2014年,ImageNet图像Top5分类的识别错误率已经降低到6.73%[5]。斯坦福大学的安德烈·卡帕西(Andrej Karpathy)等人[6]对比了卷积神经网络和人在ImageNet数据库上的性能,发现目前最好的卷积神经网络模型距离人的识别率仅一步之遥(见图1)。而目前在较小的CIFAR-10数据库上,卷积神经网络的性能已经超过了人[7]

在物体检测方面,如图2所示,目前主流的算法大都采用扫描窗或是候选窗方法[8],选取图像中许多大小位置不同的子区域进行分类(某种物体或是背景),最终得到感兴趣的物体出现的位置区域。扫描窗方法能够在相邻窗口之间共享特征,可以快速地扫描较大面积的图像;候选窗方法能够高效地在图像候选区域内进行识别,更为灵活地处理物体长宽比的变化,从而获得较高的交并比覆盖率。扫描窗和候选窗都是将物体检测问题归结为图像分类问题予以解决,因此,卷积神经网络同样可以在物体检测中大放异彩。在ImageNet 2014[2]的物体检测竞赛中,百度研发的物体检测算法在采用优化的候选框产生算法基础上,加上一个10层卷积神经网络模型,结合图像的上下文信息,平均精度达到40.3%。

近几年,深度学习在图像识别中的发展主要有以下几个趋势:

1.模型层次不断加深。2012年,艾利克斯(Alex)获得当年ImageNet竞赛冠军时用的网络使用了5个卷积层(另外包括3个pool层和2个norm层)。而到2014年,获得冠军的GoogleNet[5]使用了59个卷积层(另外包括16个pool层和2个norm层)。第二名的VGG[9]也使用19个卷积层,并获得较好的性能。模型深度的重要性不言而喻。

2.模型结构日趋复杂。传统的卷积神经网络模型多使用简单的conv-pool-norm结构进行堆砌,GoogleNet[5]的结果表明,并行多分辨率的inception结构能够融合图像在不同尺度上的有效信息,而NIN(network-in-network)[10]结构则通过低秩分解对较大参数规模的卷积层进行参数压缩,大大减小模型参数规模。这样做,一方面能够降低过拟合程度,提高模型的推广能力,另一方面则为大规模并行训练提供非常有利的条件。

3.海量的标注数据和适当的数据扰动。ImageNet 2012分类竞赛的训练数据包含120万左右的标注样本,而ImageNet全库目前已经收集将近2.2万个类别共约1420万图像。但仅有这些数据仍不足以避免参数规模庞大的深度学习模型的过训练现象。结合图像数据的特点,包括平移、水平翻转、旋转、缩放等数据扰动方式被用于产生更多有效的训练数据,能够普遍提高识别模型的推广能力。

值得一提的是,百度利用并行分布式深度学习平台(PArallel Distributed Deep LEarning, PADDLE),收集建立起规模更大、更符合个人电脑和移动互联网特点的图像数据仓库,这些数据结合深度学习算法产出的各种图像分类和物体检测模型,已经广泛服务于许多与图像有关的百度产品线。以互联网色情图片过滤为例,我们的训练数据囊括了1.2亿幅色情图像,分类精度达99.4%。

基于端到端的序列学习:对传统光学字符识别框架的改造

光学字符识别的概念早在20世纪20年代便被提出,一直是模式识别领域研究中极具代表性的重要课题。近些年,随着移动互联网的发展,光学字符识别技术的应用场景也从传统的办公领域(例如邮政编码、书籍扫描和文档传真)逐渐渗入日常生活,产生出许多以手机拍照光学字符识别作为入口的文字信息录入及查询类应用。

经典的光学字符识别系统的流程和技术框架如图3所示,从输入图像到输出最终的文字识别结果,历经版面分析、行分割、字分割、单字识别、语言模型解码和后处理。涉及的技术分为基于经验制定的规则和基于统计学习的模型[11]两大类。前者包括系统预处理阶段(版面分析、行分割、字分割)的二值化、连通域分析、投影分析等,以及后处理阶段的规则噪声过滤器;后者包括基于类方向梯度直方图(Histogram of Oriented Gradient, HOG)特征的单字识别引擎[12]和基于N-gram的语言模型,用于单字识别和语言模型解码阶段。在以印刷体文档扫描识别为代表的光学字符识别传统应用场景中,版面结构的规则性较强,字形、字体的一致性较高,而文字同背景的区分性又较好。在数据简单、条件可控的情况下,经典的光学字符识别技术架构通过细致的人工规则制定和适量的模型参数学习,便可以达到比较理想的识别精度。但在广泛的自然场景中,文字呈现出的图像信息复杂度显著增大(版面缺失、艺术字手写体常见、文字周边背景复杂),而拍摄图像的条件又得不到很好的控制(拍摄角度、距离导致的形变,摄像头品质性能存在巨大差异,光照和阴影变化复杂),经典的光学字符识别技术架构难以满足实际应用的需求。究其原因,是这一技术架构的处理流程繁琐冗长导致错误不断传递,以及过分倚重人工规则却轻视大规模数据训练所致。

针对复杂场景的特点和经典技术框架的不足,我们对光学字符识别的系统流程和技术框架进行了大幅改造(见图4)。在系统流程方面,引入文字检测概念,和行分割合并成新的预处理模块,任务是检测图像中包含文字的区域并生成相应文字行;将字分割和单字识别合并成新的整行识别模块;基于N-gram的语言模型解码模块予以保留,但将主要依赖人工规则的版面分析和后处理模块从系统中删除。6个步骤减少到3个步骤,降低了传递误差造成的不良影响。作为预处理步骤,新引入的文字行检测模块需要在复杂的自然图像中准确地提取长短不一的文字行区域。我们摒弃传统的二值化和连通域等基于规则的方法,采用基于学习的Boosting、卷积神经网络结合图模型(graphic model)的思路解决这一问题,并在权威的公开评测中大幅超越之前最好的文字检测方法。此外,由于整行文字识别是一个序列学习(sequence learning)问题,我们有针对性地研发出基于双向长短期记忆神经网络(Bidirectional Long Short-term Memory, BLSTM)[13]的递归神经网络序列模型学习算法,结合卷积神经网络模型提取出的图像特征,不考虑每个字符出现的具体位置,只关注整个图像序列对应的文字内容,使得单字分割和单字识别问题融为一体,最终实现深度学习理论追求的理想——端到端训练。这样做能够充分利用文字序列上下文关联进行消歧,避免传统方法中字符分割造成的不可逆转的错误。如图5所示,这一序列学习模型极其擅长识别字分割比较困难的文字序列,甚至包括潦草的手写电话号码。此外,这一序列学习模型还使得训练数据的标注难度大为降低,便于收集更大规模的训练数据。不同语言(即便字词、句子的长短结构迥异)光学字符识别问题也可以纳入同一个技术框架内统一解决,大幅降低系统维护成本。

目前,百度已经将光学字符识别技术应用于许多用户产品中。比如,百度“涂书笔记”能够帮助用户在读书过程中只须拍照即可轻松记录和分享书中内容,百度“作业帮”让用户拍照题目即可搜索题目解答。精准可靠的光学字符识别技术在这些应用中扮演重要角色,体现出自然图像中文字识别的特殊价值。

并行分布式深度学习平台

深度学习近年在语音识别、图像识别、机器翻译等领域取得的突破性进展,引发工业界尤其是互联网行业的广泛兴趣,谷歌、百度、脸谱纷纷成立专门的深度学习技术研究部门。深度学习技术应用于互联网产品,可大大增强用户体验,进一步吸引更多用户,以及由此产生更多的反馈,让我们能够大量收集数据,高效地使用这些数据使得我们有机会训练高度复杂的模型来处理更具挑战的人工智能任务。为了实现这种产品、用户、数据的正反馈,应用深度学习需要解决三个不同维度的挑战。首先,底层计算维度。相对于每时每刻都在飞速增长的数据,计算机单机的计算能力远远无法满足需要,超大规模的并行计算势在必行。其次,算法模型开发维度。随着越来越广泛的关注、大量研究机构的投入,深度学习成为人工智能最活跃的领域。新的算法模型不断涌现,新的、好的结果不断刷新,需要迅速开发、迭代新的方法模型。第三,一线业务部门应用维度。互联网每天都在产生新的产品、新的应用,将深度学习高效、便捷地整合到不同的产品和应用中面临新的挑战。百度深度学习研究院开发并行分布式深度学习平台(见图6)的初衷就是为了应对这些挑战。它支持超大规模并行深度学习优化(数据的分布、模型的分布),支持CPU/GPU混合计算、对不同类型数据(如文本、图像、声音等)的优化、丰富灵活的网络类型(如卷积神经网络、递归神经网络等)、各类主流多机优化算法(如SGD, ASGD, LBFGS等)。

在并行分布式深度学习平台上,为了应对计算上的挑战,我们在多个层次上(多线程、单机多GPU、CPU/GPU混合、CPU/GPU集群)实现的并行计算,针对不同类型的数据(文本、语音、图像、视频)采用不同策略优化模型,使我们能够最大限度地为各种计算任务优化计算资源。同时,为了应对不断涌现的新模型、新算法,我们实现了灵活的系统框架,开发者可以方便地复用以前的代码灵活地增加新算法、新模型,并且以近乎透明的方式使用各种计算资源以及并行分布式深度学习平台的优化策略。

互联网每天都在产生海量数据,既有语音、图像、视频这种稠密的自然数据,也有文本、社交关系这种稀疏的人为数据。尤其是后者,通常是高维稀疏且不断增加、变化的(譬如新的概念、词语、人物),给深度学习的应用带来巨大挑战。一方面,为了更好地处理海量稠密数据,并行分布式深度学习平台支持使用多机多GPU卡对大规模神经网络进行快速优化,通过计算和通讯的并行以及流化大块数据的多级通讯(GPU到主机,主机直接网络传输,主机到GPU),充分降低了通讯开销,有效提升了训练速度。另一方面,根据高维稀疏数据的特点,并行分布式深度学习平台还提出并实现了许多非常具有针对性的体系结构和算法:

1.由于海量的高维数据需要规模极大的模型与之匹配,因此模型和数据只能分布式地存储在大量的节点上。稀疏的数据与随之而来的稀疏梯度一起,使调度节点间的通信变得十分复杂。并行分布式深度学习平台针对这种复杂的场景进行了精巧的优化,可以不断地扩大模型和数据的规模。

2.尽管有海量的数据,但是由于数据的稀疏性,过拟合仍然是需要时刻警惕的问题。并行分布式深度学习平台在实践中摸索出一套在多机并行稀疏数据情况下,控制模型规模和复杂度的算法。在提高模型泛化能力的同时,减小模型规模,减轻给线上系统性能带来的压力。

3.并行分布式深度学习平台对同时需要稠密矩阵运算和稀疏矩阵运算的场景进行了优化。在一个复杂网络里,针对不同层的特点,灵活地配置、使用CPU或GPU进行计算,为在多模态(文本、图像、视频)下大规模应用深度学习奠定基础。

并行分布式深度学习平台取得的成果以及未来

并行分布式深度学习平台高效的性能,尤其是对于稀疏数据的特别优化,使得深度学习应用到工业级别的广告点击预估、网页搜索排序,大大提高数据的规模、速度、泛化结果。同时,并行分布式深度学习平台灵活的系统框架大大降低了开发使用的门槛,让深度学习技术在百度知道、百度杀毒等产品上得到迅速推广。

随着深度学习在物体识别、自然语言处理领域的应用不断取得突破,未来的深度学习不仅会像人一样去听、去读、去看、去感知,更将会不断地在更大的规模上处理海量的数据;新的计算平台也将会不断涌现(我们相信会有更多为深度学习进行优化的硬件);新的深度学习算法赋予模型更多的意识和主动性,与增强学习的结合,让深度学习将不仅能够识别,而且能够获取高层的知识、进行推理、对外界产生反馈。并行分布式深度学习平台则将贯通数据、硬件、算法,不断推进人工智能的实践。作为并行分布式深度学习平台迈向未来人工智能的一步,我们开始用自然语言描述图片[14],在没有任何人工干预的情况下,仅仅使用图文数据教机器描述图片(见图7、图8)。多伦多大学[15]、斯坦福大学[16]、谷歌[17]、微软[18]也纷纷发表了类似的工作成果,我们在后续工作[19]中与这些成果进行了比较,我们的模型在相关任务(句子生成、句子检索、图片检索)中均有更加优秀的表现。这项工作把人工智能的两大分支——自然语言处理和计算机视觉无缝地连为一体,使计算机能够真正将语言与感知的物理世界联系起来。这对于解决长期困扰人工智能的难题——“常识推理(common sense reasoning)”是重要的一步。

总结和展望

过去几年,得益于深度学习算法,图像识别技术的研究和应用飞速发展。图像标注、目标检测、物体分割、姿态估计、人脸识别、光学字符识别,几乎所有经典的图像识别技术都在深度学习算法的帮助下取得突破性进展。谷歌、脸谱、微软、亚马逊、百度都投入巨资收购和建设以图像识别为主要课题的人工智能技术团队,各种以图像识别技术为卖点的初创公司更是如雨后春笋般涌现;拍照搜索、视频监控、智能家居、机器人、增强现实,图像识别技术以前所未有的速度与广度向日常生活渗透,不断孕育令人印象深刻的新科技产品。在这股大潮中,百度结合自身特点进行了大量实践,获得许多颇具价值的经验和知识:

丰富的图像扰动是我们将关于图像的先验知识用于深度学习输入端的有效手段 不同于许多其他数据,图像和视频在时间、空间维度上具有良好的连续性和结构性,且包含大量冗余信息。无论使用平移和翻转,还是旋转、缩放、高斯和椒盐噪音、错切等图像处理变换,都能够产生大量有效的训练数据,增强深度学习模型的鲁棒性。

结构化损失函数是我们将模型化知识用于深度学习输出端的有效方式 无论是序列解码还是图模型预测,采用人工模型对深度学习模型输出进行后处理时,具有针对性的结构化损失函数往往能够帮助深度学习过程更快地收敛到更加理想的状态。

参数的稀疏化、图像的多分辨率通道、多任务的联合学习是我们将关于问题的认知和理解注入到深度学习模型结构中的有效方式 全卷积模型中的低秩约束和全联通层中的L1正则约束已经在许多大模型训练中获得很好的效果,而多分辨率的卷积模型也在图像分类、目标检测和物体分割等问题中展现出传统单分辨率模型不具备的优势,多任务的联合学习更是使各种任务在深度学习模型中不同层面上相互帮助和约束。

从没有感知域(receptive field)的深度神经网络,到固定感知域的卷积神经网络,再到可变感知域的递归神经网络,深度学习模型在各种图像识别问题中不断演进。曾经爆炸式增长的参数规模逐步得到有效控制,人们将关于图像的先验知识逐渐用于深度学习,大规模并行化计算平台愈加成熟,这些使我们能够从容应对大数据条件下的图像识别问题。展望未来,基于深度学习的图像识别问题可围绕如下几个重点展开:

增强学习 与卷积神经网络和递归神经网络相比,增强学习产出的模型能够根据数据特点更灵活地产生输入序列,并通过更加模糊的监督方式进行模型训练。这样可以精简模型的复杂度,提高预测速度,同时大幅降低训练数据的标注难度,使得学习和预测过程不需要过多的人工参与,形式上更接近真正智能的学习模式。

大规模弱标注和部分标注数据的应用 随着模型规模的不断增大,获取大规模带标注的训练数据成为一道难题。和传统的强标注数据不同,在互联网场景中,以用户点击数据为代表,我们很容易获取大量包含噪音的弱标注数据,以及只有部分相关信息被标注的训练数据。采用适当的网络模型和结构化损失函数,是充分利用这些带有瑕疵但规模惊人的标注数据的关键。

低层视觉和高层视觉的广泛结合 以深度信息、立体视觉、光流场、图像分割等为代表的底层视觉方法将在深度学习框架下同语义级别的高层视觉广泛结合,大大提高图像识别系统的通用性和鲁棒性。

适合进行深度学习模型计算的硬件高速发展 最近几个月,英特尔、英伟达和高通都宣布其硬件产业布局将为更好地支持深度学习计算而服务,开发速度更快、体积更小、更省电的计算硬件单元,聚焦于智能汽车、无人机、智能家居、可穿戴式设备等新兴电子消费品市场。

毫无疑问,基于深度学习算法的图像识别技术已经为人工智能领域中“感知”这一核心问题开启全新局面。随着理论和实践的不断深入、硬件和产品的不断推动,以图像识别为首的各种感知技术将很快填平现实物理世界和虚拟网络世界之间的沟壑,迎来人工智能全面爆发的时代。

 

图:















作者:

都大龙

百度资深研发工程师。主要研究方向为计算机视觉、深度学习、OCR等。dudalong@baidu.com

余轶南

百度资深研发工程师。主要研究方向为计算机视觉和机器学习等。yuyinan@baidu.com

罗 恒

百度深度学习实验室高级研究员。主要研究方向为深度学习、非监督学习。luoheng@baidu.com

其他作者:张健 黄畅 徐伟 余凯

 

参考文献

 [1] Geoffrey E. Hinton, and Ruslan R. Salakhutdinov. Reducing the dimensionality of data with neural networks. Science 313.5786 (2006): 504~507.

[2] Olga Russakovsky, Jia Deng, Hao Su, and et al.. ImageNet Large Scale Visual Recognition Challenge. arXiv:1409.0575, 2014.

[3] J. Yang, K. Yu, Y. Gong, T. Huang, Linear spatial pyramid matching using sparse coding for image classification. Computer Vision and Pattern Recognition, 2009.

[4] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. Imagenet classification with deep convolutional neural networks. Advances in neural information processing systems. 2012.

[5] Szegedy Christian, et al. Going deeper with convolutions. arXiv preprint arXiv:1409.4842 (2014).

[6] http://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/.

[7] http://blog.kaggle.com/2015/01/02/cifar-10-competition-winners-interviews-with-dr-ben-graham-phil-culliton-zygmunt-zajac/.

[8] R. Girshick, J. Donahue, T. Darrell, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. arXiv preprint arXiv:1311.2524, 2013.

[9] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.

[10] M. Lin, Q. Chen, S. Yan, Network In Network. arXiv preprint arXiv:1312.4400, 2013.

[11] Guo Hong, Ding Xiaoqing, Zhang Zhong, and et al.. Realization of A High-Performance Bilingual Chinese-English OCR System, Proceedings of the Third International Conference on Document Analysis and Recognition, 978~981.

[12] H. Liu, X. Ding, Handwritten character recognition using gradient feature and quadratic classifier with multiple discrimination schemes, in: Proceedings of the 8th ICDAR, Seoul, Korea, 2005:19~23.

[13] A. Graves. Supervised Sequence Labelling with Recurrent Neural Networks. PhD thesis.

[14] J. Mao, W. Xu, Y. Yang, and et al.. Explain Images with Multimodel Recurrent Neural Networks. Deep Learning and Representation Learning Workshop: NIPS 2014.

[15] Ryan Kiros, Ruslan Salakhutdinov, andRichard S. Zemel. Unifying visual-semantic embeddings with multimodal neural language models. arXiv preprint arXiv:1411.2539, 2014a.

[16] Andrej Karpathy, Armand Joulin, and Li Fei-Fei. Deep fragment embeddings for bidirectional image sentence mapping. In arXiv:1406.5679, 2014.

[17] Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitru Erhan. Show and tell: A neural image caption generator. arXiv preprint arXiv:1411.4555, 2014.

[18] Fang Hao, Saurabh Gupta, Forrest Iandola, et al. From captions to visual concepts and back. arXiv preprint arXiv:1411.4952, 2014.

[19] Junhua Mao, Wei Xu, Yi Yang, and et al.. Yuille. Deep Captioning with Multimodal Recurrent Neural Networks (m-RNN). arXiv preprint arXiv:1412.6632, 2014.


From:http://www.ccf.org.cn/sites/ccf/xhdtnry.jsp?contentId=2857471255804


没有更多推荐了,返回首页