【人工智能】基于DL的目标检测算法综述;如何让AI学习常识,AI未来趋势又在何方

2018 年 5 月 9 日 产业智能官 SigAI

目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上成像时光照,遮挡等因素的干扰,目标检测一直是机器视觉领域最具有挑战性的问题。本文将针对目标检测(Object Detection)这个机器视觉中的经典任务进行解析,抛砖引玉。如对文中的内容持不同观点,欢迎到SIGAI公众号发消息给我们,一起探讨!

  什么是目标检测?

目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上成像时光照,遮挡等因素的干扰,目标检测一直是机器视觉领域最具有挑战性的问题。

计算机视觉中关于图像识别有四大类任务:

分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。

定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。

检测-Detection:解决“是什么?在哪里?”的问题,即定位出这个目标的的位置并且知道目标物是什么。

分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

  目标检测要解决的核心问题

除了图像分类之外,目标检测要解决的核心问题是:

  1. 目标可能出现在图像的任何位置。

  2. 目标有各种不同的大小。

  3. 目标可能有各种不同的形状。

如果用矩形框来定义目标,则矩形有不同的宽高比。由于目标的宽高比不同,因此采用经典的滑动窗口+图像缩放的方案解决通用目标检测问题的成本太高。

  目标检测的应用

目标检测在很多领域都有应用需求。其中被广为研究的是人脸检测,行人检测,车辆检测等重要目标的检测。人脸检测在SIGAI上一篇文章“人脸识别算法演化史”中已经简单介绍,后面我们会针对这个问题撰写综述文章。

行人检测

行人检测在视频监控,人流量统计,自动驾驶中都有重要的地位,后续也会有相关综述文章。

车辆检测

车辆检测在智能交通,视频监控,自动驾驶中有重要的地位。车流量统计,车辆违章的自动分析等都离不开它,在自动驾驶中,首先要解决的问题就是确定道路在哪里,周围有哪些车、人或障碍物。

其他应用

交通标志如交通灯、行驶规则标志的识别对于自动驾驶也非常重要,我们需要根据红绿灯状态,是否允许左右转、掉头等标志确定车辆的行为。

交通标志检测

除了这些常见目标的检测之外,很多领域里也需要检测自己感兴趣的目标。比如工业中材质表面的缺陷检测,硬刷电路板表面的缺陷检测等。

表面缺陷检测

农业中农作物表面的病虫害识别也需要用到目标检测技术:

农作物病虫害检测

人工智能在医学中的应用目前是一个热门的话题,医学影像图像如MRI的肿瘤等病变部位检测和识别对于诊断的自动化,提供优质的治疗具有重要的意义。

肿瘤检测

  目标检测相关算法

DPM算法

与人脸、行人等特定类型的目标检测不同,通用目标检测要同时检测出图像中的多类目标,难度更大。处理这一问题的经典方法是DPM(Deformable Part Model),正如其名,这是可变形的组件模型,是一种基于组件的检测算法。该模型由Felzenszwalb在2008年提出,并发表了一系列的CVPR,NIPS文章,蝉联三届PASCAL VOC目标检测冠军,拿下了2010年PASCAL VOC的“终身成就奖”。

在深度卷积神经网络(DCNN)出现之前,DPM算法一直是目标检测领域最优秀的算法,它的基本思想是先提取DPM人工特征(如下图所示),再用latentSVM分类。这种特征提取方式存在明显的局限性,首先,DPM特征计算复杂,计算速度慢;其次,人工特征对于旋转、拉伸、视角变化的物体检测效果差。这些弊端很大程度上限制了算法的应用场景。

DPM目标检测流程

Alexnet

现代深度神经网络的想法早在2006年就被 Geoffrey Hinton 提出,直到2012年,Alex Krizhevsky凭借著名的Alexnet卷积神经网络模型以领先第二名10%的成绩夺得ILSVRC2012图像分类比赛冠军,深度学习技术才真正走进主流学术界和工业界的视野。深度神经网络的出现颠覆了传统的特征提取方式,凭借其强大的表达能力,通过丰富的训练数据和充分的训练能够自主学习有用的特征。这相比传统的人工发现特征并根据特征设计算法的方式是质的飞跃。

AlexNet 网络结构

通过卷积神经网络可以学到物体在各个层次的抽象表达(关于卷积神经网络的原理以及为什么会有效,SIGAI会在接下来的文章中介绍):

深度学习得到的层次特征表达

OverFeat

2013年纽约大学Yann LeCun团队中Zhang xiang等提出的OverFeat在ILSVRC2013比赛中获得了多项第一,他们改进了Alexnet,提出了使用同一个卷积网络完成了多个任务的方法。该方法充分利用了卷积神经网络的特征提取功能,它把分类过程中提取到的特征同时又用于定位检测等各种任务,只需要改变网络的最后几层,就可以实现不同的任务,而不需要从头开始训练整个网络的参数。这充分体现和发掘了CNN特征共享的优点。

该文主要的亮点是:

  1. 共享卷基层用于多任务学习。

  2. 全卷积网络思想。

  3. 在特征层进行滑窗操作(Sliding Window)避免大量重复运算,这也是后来的系列算法不断沿用和改进的经典做法。

OverFeat几个明显的缺陷

  1. 采用了多尺度贪婪的划窗策略,导致计算量还是很大 。

  2. 由于当时并没有太优秀的backbone网络,共享特征层的表征能力不是太强,没有考虑多尺度特征融合,对小目标效果差,整体的检测效果不尽如人意。ILSVRC 2013数据集上的mAP(可以简单的理解为检测准确率)为24.3%。

经典的卷积神经网络有一个问题是它只能接受固定大小的输入图像,这是因为第一个全连接层和它之前的卷积层之间的权重矩阵大小是固定的,而卷积层、全连接层本身对输入图像的大小并没有限制。而在做目标检测时,卷积网络面临的输入候选区域图像大小尺寸是不固定的。

下面用一个例子说明怎么让一个已经设计好的DCNN模型,可以支持任意大小图片输入,其中一种方案是全卷积网络(FCN),即去掉所有全连接层,全部由卷积层来替代:

FCN并不是把5×5的图片展平成一维向量再进行计算,而是直接采用5×5的卷积核对一整张图片进行卷积运算。比如16×16大小的特征图片,那么会是什么样的结果?请看下面的示意图:

这个时候就会发现,网络最后的输出是一张2×2大小的特征图片。可以发现采用FCN网络,可以输入任意大小的图片。需要注意的是网络最后输出的特征图片大小不再总是1×1而是一个与输入图片大小相关。

OverFeat有很多创新,但是不能算是目标检测典型的Pipeline,所以我们单独提了出来。下面将从R-CNN开始介绍目前基于DCNN物体检测发展脉络。

卷积神经网络用于目标检测之后,进展神速,在短期内大幅度的提高了算法的精度,推动这一技术走向实用。


基于DCNN的目标检测算法发展路线图

  R-CNN

Region CNN(简称R-CNN)由Ross Girshick

(江湖人称RBG大神,Felzenszwalb的学生)提出,是利用深度学习进行目标检测的里程碑之作,奠定了这个子领域的基础。这篇文章思路清奇,在DPM方法经历多年瓶颈期后,显著提升了检测率(ILSVRC 2013数据集上的mAP为31.4%)。RBG是这个领域神一样的存在,后续的一些改进方法如Fast R-CNN、Faster R-CNN、YOLO等相关工作都和他有关。

R-CNN检测时的主要步骤为:

  1. 使用Selective Search算法从待检测图像中提取2000个左右的区域候选框,这些候选框可能包含要检测的目标。

  2. 把所有侯选框缩放成固定大小(原文采用227×227)。

  3. 用DCNN提取每个候选框的特征,得到固定长度的特征向量。

  4. 把特征向量送入SVM进行分类得到类别信息,送入全连接网络进行回归得到对应位置坐标信息。

R-CNN不采用滑动窗口方案的原因一是计算成本高,会产生大量的待分类窗口;另外不同类型目标的矩形框有不同的宽高比,无法使用统一尺寸的窗口对图像进行扫描。用于提取特征的卷积网络有5个卷积层和2个全连接层,其输入是固定大小的RGB图像,输出为4096维特征向量。对候选区域的分类采用线性支持向量机,对每一张待检测图像计算所有候选区域的特征向量,送入支持向量机中进行分类;同时送入全连接网络进行坐标位置回归。

R-CNN虽然设计巧妙,但仍存在很多缺点:

1.重复计算。R-CNN虽然不再是穷举,但通过Proposal(Selective Search)的方案依然有两千个左右的候选框,这些候选框都需要单独经过backbone网络提取特征,计算量依然很大,候选框之间会有重叠,因此有不少其实是重复计算。

2.训练测试不简洁。候选区域提取、特征提取、分类、回归都是分开操作,中间数据还需要单独保存。

3.速度慢。前面的缺点最终导致R-CNN出奇的慢,GPU上处理一张图片需要十几秒,CPU上则需要更长时间。

4.输入的图片Patch必须强制缩放成固定大小(原文采用227×227),会造成物体形变,导致检测性能下降。

SPPNet

此后MSRA的Kaiming He等人在R-CNN的基础上提出了SPPNet,该方法虽然还依赖候选框的生成,但将提取候选框特征向量的操作转移到卷积后的特征图上进行,将R-CNN中的多次卷积变为一次卷积,大大降低了计算量(这一点参考了OverFeat)。

R-CNN的卷积网络只能接受固定大小的输入图像。为了适应这个图像尺寸,要么截取这个尺寸的图像区域,这将导致图像未覆盖整个目标;要么对图像进行缩放,这会产生扭曲。在卷积神经网络中,卷积层并不要求输入图像的尺寸固定,只有第一个全连接层需要固定尺寸的输入,因为它和前一层之间的权重矩阵是固定大小的,其他的全连接层也不要求图像的尺寸固定。如果在最后一个卷积层和第一个全连接层之间做一些处理,将不同大小的图像变为固定大小的全连接层输入就可以解决问题。

SPPNet引入了Spatial Pyramid pooling层,对卷积特征图像进行空间金字塔采样获得固定长度的输出,可对特征层任意长宽比和尺度区域进行特征提取。具体做法是对特征图像区域进行固定数量的网格划分,对不同宽高的图像,每个网格的高度和宽度是不规定的,对划分的每个网格进行池化,这样就可以得到固定长度的输出。下图是SPP操作示意图:

相比R-CNN,SPPNet的检测速度提升了30倍以上。下图是R-CNN和SPPNet 检测流程的比较:

下图是SPPNet的原理:

SPPNet 检测框架图

SPPNet和R-CNN一样,它的训练要经过多个阶段,中间特征也要进行存储;backbone网络参数沿用了分类网络的初始参数,没有针对检测问题进行优化。

Fast RCNN

Ross Girshick 针对SPPNet做了进一步改进提出的FRCNN ,其主要创新是RoI Pooling 层,它将不同大小候选框的卷积特征图统一采样成固定大小的特征。ROI池化层的做法和SPP层类似,但只使用一个尺度进行网格划分和池化。该层可以直接求导,训练时直接将梯度传导到backbone网络进行优化。FRCNN针对R-CNN和SPPNet在训练时是多阶段的和训练的过程中很耗费时间空间的问题进行改进。将深度网络和后面的SVM分类两个阶段整合到一起,使用一个新的网络直接做分类和回归。使得网络在Pascal VOC上的训练时间从R-CNN的84小时缩短到9.5小时,检测时间更是从45秒缩短到0.32秒。

重要的是Fast RCNN的backbone网络也可以参与训练了!!!

Faster RCNN

SPPNet和Faster RCNN都需要独立的候选区域生成模块,这个模块计算量很大,而且不易用GPU加速。针对这个问题,Shaoqin Ren 等人在Faster RCNN基础上提出Faster R-CNN ,在主干网络中增加了RPN (Region Proposal Network)网络,通过一定规则设置不同尺度的锚点(Anchor)在RPN的卷积特征层提取候选框来代替Selective Search等传统的候选框生成方法,实现了网络的端到端训练。候选区域生成、候选区域特征提取、框回归和分类全过程一气呵成,在训练过程中模型各部分不仅学习如何完成自己的任务,还自主学习如何相互配合。这也是第一个真正意义上的深度学习目标检测算法。

注:Shaoqin Ren实现的matlab版本中RPN阶段和FRCNN阶段是分开训练的,但是在实际的实践中(RBG实现的Python版本)发现二者可以一起优化训练,而且精度没有损失,可以说Faster RCNN真正实现了端到端的训练。

Fast RCNN(左) 和 Faster RCNN(右)框架结构对比

R-FCN

由于现在的主流网络层数越来越多,基于Faster RCNN检测框架的方法的计算量受到了3个因素的影响:

  1. 基础网络的复杂度

  2. 候选框数量的多少

  3. 分类和位置回归子网络的复杂度(每个候选框的box都会独立进行前向计算)。

一般来说直接优化前两点性价比不太高。如果直接优化RoI-wise subnetwork是否可行呢,将子网络的深度尽可能减少?分类是要增加物体的平移不变性(不同的位置都是同一个物体);目标检测时减少物体的平移变化(目标检测需要得到物体所在的位置)。通常我们所用的网络都是ImageNet的分类任务训练得到的,在目标检测的时候进行Finetune。由于得到的初始模型基于分类任务,那么会偏向于平移不变性,这和目标检测就出现了矛盾。

MSRA的Jifeng Dai等人提出了R-FCN,通过position-positive score maps(位置敏感得分图)来解决这个矛盾。位置敏感得分图通过预测RoI中不同部位的类别投票表决产生该RoI的类别预测。引用原文中的例子,“如果我们的算法要识别婴儿,那么把一个目标区域分成九宫格,其中算法认为其中五个格子中的区域分别像婴儿的头、四肢和躯干,那么根据投票机制,就认为这个目标区域里的是一个婴儿。这很符合我们人类的判断逻辑。”

R-FCN沿用了 Faster RCNN 的框架结构,不同的是在Faster R-CNN的基础上通过引入位置敏感得分图,将RoI-wise subnetwork消灭了,直接在位置敏感得分图上利用ROI Pooling进行信息采样融合分类和位置信息。

R-FCN 网络框架结构

ResNet101为例,不同检测框架复用卷积网络层数

Mask R-CNN

2017年Kaiming He等提出了Mask R-CNN ,并获得ICCV2017 Best Paper Award。作者指出,Faster R-CNN在做下采样和RoI Pooling时都对特征图大小做了取整操作,这种做法对于分类任务基本没有影响,但对检测任务会有一定影响,对语义分割这种像素级任务的精度影响则更为严重。为此,作者对网络中涉及特征图尺寸变化的环节都不使用取整操作,而是通过双线性差值填补非整数位置的像素。这使得下游特征图向上游映射时没有位置误差,不仅提升了目标检测效果,还使得算法能满足语义分割任务的精度要求。


以上介绍的检测方法都属于two-stage的方案,即分为候选区域生成和区域分类两步,接下来我们将介绍几种single-stage的经典方法。

YOLO系列

2015年,随着YOLO算法的出现,深度学习目标检测算法开始有了两步(two-stage)和单步(single-stage)之分。区别于R-CNN系列为代表的两步检测算法,YOLO舍去了候选框提取分支(Proposal阶段),直接将特征提取、候选框回归和分类在同一个无分支的卷积网络中完成,使得网络结构变得简单,检测速度较Faster R-CNN也有近10倍的提升。这使得深度学习目标检测算法在当时的计算能力下开始能够满足实时检测任务的需求。

算法将待检测图像缩放到统一尺寸,为了检测不同位置的目标,将图像等分成的网格,如果某个目标的中心落在一个网格单元中,此网格单元就负责预测该目标。

YOLOv1只针对最后7x7的特征图进行分析,使得它对小目标的检测效果不佳,当多个目标出现在一个Grid Cell时不容易区分。

YOLOv1原理图

YOLOv1在7X7特征图上对每个Grid cell进行操作

YOLOv2改进了YOLOv1的网络结构,除加入时下热门的批量归一化层以及残差网络结构以外,还针对性的训练了一个高分辨率的分类网络(448x448)然后利用该网络训练检测网络,单单通过提升输入的分辨率,mAP获得了4%的提升。YOLOv1利用单个grid cell拼接成全连接层完成边框的预测,导致丢失较多的空间信息,定位不准,作者在这一版本中进行了优化改进:

1.借鉴了Faster R-CNN中的Anchor思想,但是作者在实践中发现用基于规则选择的Anchor效果并没有得到提升,实验中作者对Pascal VOC和COCO的数据集进行了统计分析(聚类分析)选择针对行的Anchor的尺寸性能的到了明显提升。


2.作者在使用anchor boxes时发现模型收敛不稳定,尤其是在早期迭代的时候。大部分的不稳定现象出现在预测box的 (x,y) 坐标的优化上。因此作者就没有采用直接预测offset的方法,而使用了预测相对于grid cell的坐标位置的办法,利用logistic函数把ground truth归一化到0到1之间,坐标值被归一化后,模型优化会更稳定。

YOLOv3在YOLOv2的基础上使用了全新设计的Darknet53残差网络并结合FPN网络结构,在网络后两个特征图上采样后于网络前期相应尺寸的特征图聚合再经过卷积网络后得到预测结果。这些改进使得YOLOv3用三分之一的时间达到与SSD相当的精确度。在 COCO test-dev 上 mAP@0.5 达到 57.9%,与RetinaNet(FocalLoss论文所提出的单阶段网络)的结果相近,但速度快4倍。

YOLOv3的模型比之前的版本复杂了不少,可以通过改变模型结构的大小来权衡速度与精度。

YOLOv3的改进点:

  1. 多尺度预测(FPN)

  2. 更好的Backbone网络(Darknet53残差网络)

  3. 分类损失采用binary cross-entropy损失函数替换Softmax损失函数(Softmax会选择分数最高的类别判定为当前框所属的类别,而现实中一个目标可能属于多个类别标签)

SSD

SSD对YOLO进行了改进,达到了和两阶段方法相当的精度,同时又保持了较快的运行速度。SSD也采用了网格划分的思想,和Faster RCNN不同的是它将所有的操作整合在一个卷积网络中完成。为了检测不同尺度的目标,SSD对不同卷积层的特征图像进行滑窗扫描;在前面的卷积层输出的特征图像中检测小的目标,在后面的卷积层输出的特征图像中检测大的目标。它的主要特点是:

  1. 基于多尺度特征图像的检测:在多个尺度的卷积特征图上进行预测,以检测不同大小的目标,一定程度上提升了小目标物体的检测精度。

  2. 借鉴了Faster R-CNN中的Anchor boxes思想,在不同尺度的特征图上采样候选区域,一定程度上提升了检测的召回率以及小目标的检测效果。下图是SSD的原理:

FPN

FPN(Feature Pyramid Network)方法同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到提升预测的效果的作用。FPN中预测是在每个融合后的特征层上单独进行的,这和常规的特征融合方式有所不同。

FPN 网络结构如下图d(其中YOLO使用b结构,SSD使用c结构)所示,它的结构具有相当的灵活性,可以和各种特征提取网络结合作为检测算法的基础网络。在后文中会看到,目前大多数state-of-art的模型都采用了这种结构。其中RetinaNet在FPN的基础上使用了ResNet网络提取特征,并用Focal Loss损失改善单步目标检测算法中普遍存在的前景类和背景类损失不均衡的问题。这些基于FPN结构的检测算法能够在增加网络深度、获取更丰富语义信息的同时从浅层特征图中获取更丰富且高分辨率的图像特征,这使得这种网络结构在实际应用中表现出优异的性能。

目前主流检测框架有4种使用特征的形式:

  1. 图像金字塔。即将图像缩放到不同的大小,然后不同大小的图像生成对应的特征。这种方法的缺点是增加了时间成本。有些算法会在检测时采用这种图像金字塔的方案。

  2. 单一尺度特征层。SPPNet,Fast RCNN,Faster RCNN采用这种方式,即仅采用网络最后一层卷积层的特征。

  3. SSD采用这种多尺度特征融合的方式,但是没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而足够低层的特征对于检测小物体是很有帮助的。

  4. FPN采用bottom-up与top-down的结构,实现了低层特征和高层语义特征的融合,提高了特征映射的信息密度和分辨率,提高了小目标物体的检测效果;区别于SSD,FPN每层都是独立预测的。

  COCO2017排行榜

最后我们来看通用目标检测算法的最新进展。下图是MSCOCO 2017年目标检测竞赛的领先算法:

其中排名第一的模型为旷视科技(face++)提交的MegDet。他们的方案没有在检测算法方面做过多优化(采用的是ResNet50+FPN),而是在并行训练规模上做了优化。训练硬件环境是由128个GPU组成的集群,通过改进跨GPU批量归一化算法和学习率变化策略,将batch size增大到256张,这使得批量归一化层中使用的批均值和方差更能够反应总体特征,有效提升了归一化效果,从而大幅提升训练速度并且得到了非常好的结果。

排名第二的方案PAN改进了FPN算法,如下图所示。它在FPN的基础上不仅增加了一个降采样网络(b),还聚合使用了多个不同尺度特征图上的预测候选框(c)。该模型不仅在这一届的COCO目标检测竞赛中名列第二,而且取得了语义分割任务的冠军。

第三名的模型出自MSRA之手,他们同样没有对检测算法本身做过多改进,在FPN基础上使用了Xception网络结构和SoftNMS,但与以往不同的是使用了可变卷积层DCN(deformable convnet)替代了传统卷积,使得卷积层能够根据图片的语义信息调整卷积核感受点的位置,达到提升网络特征提取能力的目的。下图是可变卷积层的原理:

排名第四的结果是用以FPN+ResNeXt网络为作为基础网络的Mask R-CNN算法得到的。后面大多数成绩优异的模型都是R-FCN、FPN、Faster-RCNN等经典模型结合DCN、Attention机制、先进分类网络结构和模型融合等技术而形成的算法。



如何让AI学习常识,AI未来趋势又在何方 | GMIC 2018

人工智能作为一个发展中的技术,其实还在演进的过程当中,有所能为,有所不能为,因此还有很多亟待解决的问题



AI 科技评论按:4 月 26 - 28 日,GMIC 北京 2018 在北京国际会议中心召开。自 2017 年 3 月首次被写入政府工作报告,人工智能产业上升为国家战略后,这个科技界的专业词汇,如今已经席卷各行各业,成为新的经济增长点和国际竞争的焦点。

GMIC 北京 2018 主题为:「AI」生万物,谐音爱生万物,科学技术要有人文的温度,机器有爱,真「芯」英雄。

作为大会的首场峰会,全球人工智能领袖峰会汇聚全球业界顶尖领袖,探讨在基础硬件、大数据与开源平台、深度学习为代表的算法等人工智能领域的最新洞见,是年度行业发展的风向标。这里有人工智能与人类未来的激变;有深度学习三巨匠的巅峰对话;有中美巨头 4 vs 4 的平台布局与战略头部碰撞;还有成长最快的新星公司,为我们揭示最具发展潜力的市场领域。

作为主论坛的开场嘉宾,Facebook 首席 AI 科学家杨立昆( Yann LeCun)通过视频连线做了题为《AI 的最新技术趋势》的演讲。AI 科技评论把演讲内容整理如下。

杨立昆:大家晚上好。我这边是晚上,你们那边应该是上午。非常抱歉我不能亲自到会场上来。我叫杨立昆,来自 Facebook 人工智能研究院以及纽约大学。今天我想讲一下关于深度学习的一些情况,同时也会提及深度学习的未来,以及我们所面临的关于深度学习方面的挑战,即如何让机器变得更加智能。

从监督学习开始

我们看一下今天的 AI 系统,如今所有的应用,不管是影像、声音或者是图像的识别,或者语言间的翻译等,这些内容 AI 都需要通过监督学习来获得。比如说向它展示一些车的图像,告诉它这些都是车,下次再向机器展示车的图像的话,它就会告诉你答案是车。所以你可以看到,监督学习,对于计算机的学习非常重要。

我们现在的有监督学习,或者说深度有监督学习,就是组合起来一些可以训练的模块,形成端到端的一个学习过程,一端是原始的输入,另一端就可以得到结果。通过这种方式,计算机会更好地了解我们的世界。

实际上这个想法可以回溯到上个世纪八十年代的时候。当时提出的卷积神经网络可以识别图像,同时也有很多其他的应用,比如说可以用于语言处理和语言识别和其他很多的应用。这就是我们如今在使用的一些常见应用的模型雏形。

我们知道神经网络是非常庞大且复杂的,只有在算力很强的计算机上才可以运用。在深度学习变得普遍之前,我们需要确保机器学习的系统可以顺利应用,比如说我们在 2009 年、2010 年在纽约大学的一个合作项目,即利用 ConvNets 进行语义分割,我们可以看到,它能识别图像,能把马路上的建筑、天空以及路上的车和人等等在像素级别上分开。当时的识别技术还算不上非常完美。

但在几年后,我们可以看到有一些公司利用上述技术做了一些工作,系统可以识别出道路上的车辆和行人,这也是实现智能驾驶的重要组成部分。随着深度学习的发展、网络的深度越来越深,越来越多的人相信深度学习是可以奏效的。

大家可以看到几种常见的神经网络,比如 VGG、GoogLeNet、ResNet 还有 DenseNet 等,比如说有 100 层或者 180 层的一些人工神经网络。像在 Facebook 中我们会广泛使用深度神经网络来识别图像。

随着网络深度的不断增加,识别 ImageNet 图像的错误率也在不断下降,现在已经表现得比人还要好。在 ImageNet 上的表现已经太好了,以至我们现在都已经不再把它作为首选的评价标准了 。我们现在也在研究更复杂的问题,不只是识别图像,还要能够进行本地化处理。

Mask R-CNN 是我们在 Facebook 人工智能研究院所做的研究,可以看到它的表现非常好,不仅仅可以识别出对应的物体是什么,还可以对图像进行精细的分割。只是部分可见的东西都可以分得清。

大家可以看到,它可以识别电脑、酒杯、人、桌子,还可以统计它们的数量,而且也可以识别出道路、汽车等。

如果五年前让系统来解决这些问题的话,我们当时可能认为需要 10-20 年时间才能达到今天呈现的效果。这个模型也是我们开源的 Dectectron 物体检测平台的一部分,大家可以下载其中的代码,预训练好的模型可以检测 200 多种不同的类别。Facebook 在 AI 方面做研究的方式是,我们不仅仅发布了一些论文,同时连代码也开源出来,这样的话全世界都能更好了解这些成果。

当然还包括其他很多项目,在 Facebook,我们利用这样的技术设计了 DensePose,它在一个单一的 GPU 上运行,可以预测密集人体姿态估计,而且系统能够实时运行。这个系统可以追踪很多人的行为,生成视频,而且对姿势的判断也非常准确。此外,它可以实时地生成分片 3D 模型,相应的代码也是开源的。

当然利用这样的技术不仅仅可以进行图像识别,也可以进行面部识别,还能识别人的行动,甚至可以用来翻译。FairSeq 是 Facebook 在加州所做的研究,我们可以用我们的系统进行翻译工作。在 Facebook 经常有各国语言,采用这种技术可以把一些文字从一种语言翻译到另外一种语言。

我觉得对于行业来说,进行这样的开发研究将是会是一个非常有用的过程,对于我们研究团队来说,不仅仅要开发对我们公司来说非常有用的技术,同时我们也希望所开发的技术能够引导整个社区,能够解决我们所感兴趣的问题。我们认为 AI 不仅仅会帮助 Facebook 解决问题,同时还会帮助人类解决很多自己无法解决的挑战,所以我们会与我们的科学团队一起朝这方面努力。以下是在过去的几年里, 所发布的一些开源项目,包括像深度学习网络、深度学习框架,还有关于深度学习的应用。


我刚才讲到,Facebook 每天都会有一些新的应用发布,比如医学影像分析、自动驾驶、语言翻译等等,在科学方面也有很多应用,我们也可以看到,深度学习的广泛应用会进一步推动科学方面的研究,在接下来几年里,我们会看到深度学习会发生更大的变革。

这是一个 NVIDIA 训练的自动驾驶的 demo 视频,它是用卷积网络做模仿学习。模仿人类驾车。它会识别摄像头拍到的路况,然后把结果映射为方向盘的角度。它可以在郊外的路上连续开几分钟而不需要人的干预。

可微分编程:深度学习与推理的联姻

我们再来看一下可微分编程。

实际上我们可以从另外一个角度来理解深度学习。深度学习并不是一定需要构建一个固定架构的神经网络然后训练,它也可以是写程序代码,但程序代码可以被解释为神经网络。这样的程序里会带有一些参数,然后可以通过训练来优化这些参数,这些参数的最终取值也就取决于训练数据。当然了我们也需要写第二个程序,计算输入关于参数的导数的梯度,就可以往正确的方式调整这些参数的值了,这样动态改变了最终网络的结构,它也就可以适应不同的任务。这就是可微分编程。

这是几年前所开展的一项典型的工作,Facebook 和纽约大学一起合作的,用记忆模块增强神经网络,网络的结构也就是动态的。这样的做法也会影响未来我们用什么样的工具开发神经网络。

这是另外一个关于动态计算的例子。如果你要建立一个系统能够回答复杂问题的话,比如下面的这副图中,红色的立方体,是不是要比别的大一些?或者立方体有没有比某个颜色的东西更多?这是几年前 Facebook 和斯坦福大学合作的研究,它的关键思想是,通过循环神经网络 LSTM 输入问题,问题会被编码成向量的形式,然后向量再被另一个网络解码,解码后的结果像是一种程序,程序解释后的结果是几个模块连接形成的计算图。这样最终我们就解答了这个问题。

比如对于问题「立方体有没有比黄色的东西更多」,我们首先需要一个立方体的检测器,然后需要检测黄色东西的检测器,分别数出来都有多少,最后对比两个数字得到了结果。动态计算就可以端到端地训练出执行这样任务的程序。决定它的组成结构的也就是用来训练它的数据。

刚才看到的都是一些已经做到的深度学习成就,那么我们还需要看一下,距离达成「真正的 AI」我们还缺了什么。现在我们已经可以构建出更安全的车辆或者说自动驾驶车辆,我们有更好的医学影像分析、还不错翻译软件、差不多能用的聊天机器人,但我们还做不出来有「常识」的机器人、做不出真正有智慧的个人助理、做不出可以替代洗碗机的管家机器人。我们缺了一些重要的东西。

强化学习是我们缺的那块拼图吗?

有的人会说,答案就是强化学习。强化学习当然也很有力,但是它只能在游戏的、虚拟的环境里发挥。

玩 DOOM、下围棋,都没有问题,但是因为强化学习需要很多的尝试,AlphaGo 甚至自我对局了上百万局,这些都是现实世界里做不到的。所以强化学习并不适合解决现实生活中的问题。玩 Atari 游戏需要上百个小时才能玩到人类玩几分钟的水平,学开车就更是要先撞坏很多车才能学会;现实世界里的尝试也没办法加速时间。这都是不可接受的。

所以确实我觉得人类和动物的那种学习方式,现在的机器并不具备。

机器需要学习常识

我们想想婴儿是怎么学习的呢?比如我们给婴儿看左上角的这张图,那个小车漂浮在空中,虽然没有下面没有任何支撑,但是并没有掉下来。不到 6 个月大的婴儿看到这张图片并不会觉得惊讶,但是更大的婴儿已经知道了没有东西支撑的话是会掉下来的,看到这张图片就会很惊讶,像左下角的图这样。我的一位朋友,她是在巴黎工作,她给我们展示了婴儿在每个月分别能学会哪些概念,而且他们也能够了解到一些物理最基本的原理。这是他们在生命的最初几个月学到的一些概念,也就有假说认为这就是「常识」萌芽的时期。

动物也有一定程度的常识,比如这只幼年的猩猩。我们给它变了个魔术,在杯子里放了东西然后把它变没了。猩猩本来期待着东西还在里面的,当它看到不见了的时候就笑得躺在地上了。这只猩猩就对这个世界有着较为准确的认知模型。

那么我们需要做的,也就是让机器具备对这个世界的模型,我把这个称作「自我监督学习」或者「预测学习」。机器要尝试预测自己看到的东西的各个方面,这也可能就是能让机器像人类一样高效地学习的关键。

这种学习主要靠观察,没有监督,和世界只有很少的互动;它们除了接收,还要可以规划和行动。这正是构建自动化机器的关键。

所以不管下次的变革在哪个点,我觉得它都不会是监督学习,当然也不会是纯强化学习的。它应该会有某种自我监督或者无监督学习。而且也会在这样的变革当中出现一些常识性的学习。

我总结一下,这也就是我们近期在 Facebook 做的预测学习,学习如何预测、推理以及计划,也就是学习「常识」。它的核心思想是,自动的智能机器人应当有一个内部的世界模型,可以在它做出行动之前自己进行模拟,预知自己的动作的结果。这是一种最优控制中常见的方法,但在机器学习中就不那么常见了。这里我们遇到的问题也就是如何让人工智能学会对世界建模、从而用这个模型帮助自己规划现实世界中的行为。

预测的时候还需要处理不确定性,在桌子上立一支笔,然后松手,它就会倒下来。我们只确定它会倒下来,但是不确定具体会倒向哪个方向。这种时候我们也就需要对抗性训练,训练模型不只给出一个答案,而是多个可能的答案。这里需要两个模型,一个模型做预测,另一个模型来评判哪些结果还不错、哪些结果是现实世界不太可能发生的。做预测的模型也就要尝试让自己的预测越来越好,让做评判的模型分不清哪些是真的会发生的,哪些只是预测出的结果。

根据这样的思路,早几年的 GANs 就可以生成卧室的照片。今年 NVIDIA 也可以生成非常逼真的高清明星照片。这个结果非常有趣,下周开幕的 ICLR 会议上就会介绍这篇论文。

所以,对抗性训练也就是我们希望可以帮助建立预测机器的方法。预测应当是智慧的核心,我相信能训练出具有预测能力的模型也就能在未来几年中为我们带来大的进步。

AI 未来发展的预测

最后我做一下总结。对于 AI 学术研究的趋势,监督学习和强化学习即便不会被取代,也会被自我监督学习和无监督学习明显地增强;学习具有预测能力的模型也会成为未来几年内的研究热点,这能让我们从无模型的强化学习来到基于模型的强化学习以及模仿学习,它们的效率都会提升很多,所需的尝试次数也会少很多。

另一件事是,让模型具有推理的能力,但同时还和深度学习是兼容的。就是让深度学习方法可以做符号表示方法可以做的事情,把符号换成了向量,把逻辑变成了可微分的程序操作。目前的固定结构的网络会变成动态的、由数据决定的网络结构。这也会需要在计算方法方面有新的探索,从而成为系统性的问题。深度学习本身我认为也会有一些进化,它们操作的不再是数值或者高维向量,而是操作图结构之类的复杂数据结构;更多的深度学习理论也可能会出现。

在 AI 的技术应用方面,我认为监督学习会变少,更多的会是无监督特征学习、监督微调,这样可以在更多没有充足数据的场景下工作,比如小语种的翻译,只有很少的双语对照语料。我们也会看到新的深度学习框架出现,为动态网络提供编译器,PyTorch 就在尝试向这个方向发展;对于不同框架之间的可协作性,我们也和微软、亚马逊等公司一起合作设计了 ONNX。让神经网络在移动、低功耗设备上做推理也有很多研究,这已经成为了一个非常重要的问题,对于 Facebook 这样的公司来说,每天用户要上传 20 亿张照片,而且每张照片都需要被一系列卷积网络识别,分析不同的信息。这会消耗很多电力,尤其是想要拓展到处理视频等一些别的任务中的话。所以也就需要研究如何在低功耗设备上运行神经网络。现在手机上也已经出现了 GPU 之外的专用深度学习处理器。

感谢各位的倾听,我就讲这么多。谢谢。

现场视频录像参见 http://mudu.tv/watch/1924880 , AI 科技评论听译



人工智能赛博物理操作系统

AI-CPS OS

人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。


AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:

  1. 重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  2. 重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  3. 重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?

AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:

  1. 精细种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。

  2. 智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。

  3. 高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。

  4. 不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  5. 边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。

AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间


给决策制定者和商业领袖的建议:

  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。



产业智能官  AI-CPS


用“人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链


长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、智能金融”、“智能零售”、“智能驾驶”、智能城市新模式:“财富空间“工业互联网”、“数据科学家”、“赛博物理系统CPS”、“供应链金融”



本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com





登录查看更多
5

相关内容

R-CNN的全称是Region-CNN,它可以说是是第一个成功将深度学习应用到目标检测上的算法。传统的目标检测方法大多以图像识别为基础。 一般可以在图片上使用穷举法选出所所有物体可能出现的区域框,对这些区域框提取特征并使用图像识别方法分类, 得到所有分类成功的区域后,通过非极大值抑制(Non-maximumsuppression)输出结果。
深度学习目标检测方法及其主流框架综述
专知会员服务
147+阅读 · 2020年6月26日
基于深度学习的表面缺陷检测方法综述
专知会员服务
93+阅读 · 2020年5月31日
3D目标检测进展综述
专知会员服务
191+阅读 · 2020年4月24日
基于深度神经网络的少样本学习综述
专知会员服务
169+阅读 · 2020年4月22日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
密歇根大学《20年目标检测综述》
专知会员服务
97+阅读 · 2019年10月13日
综述 | 近5年基于深度学习的目标检测算法
计算机视觉life
38+阅读 · 2019年4月18日
深度学习目标检测算法综述
AI研习社
25+阅读 · 2019年2月1日
AI综述专栏 | 基于深度学习的目标检测算法综述
人工智能前沿讲习班
12+阅读 · 2018年12月7日
AI综述专栏 | 人脸检测算法综述
人工智能前沿讲习班
6+阅读 · 2018年9月10日
博客 | 基于深度学习的目标检测算法综述(二)
AI研习社
11+阅读 · 2018年8月22日
基于深度学习的目标检测算法综述
AI研习社
14+阅读 · 2018年4月25日
【深度学习】干货:目标检测入门,看这篇就够了
产业智能官
8+阅读 · 2018年3月23日
深度学习时代的目标检测算法综述
AI前线
11+阅读 · 2017年9月22日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Arxiv
4+阅读 · 2018年10月5日
Deep Learning for Generic Object Detection: A Survey
Arxiv
13+阅读 · 2018年9月6日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
相关资讯
综述 | 近5年基于深度学习的目标检测算法
计算机视觉life
38+阅读 · 2019年4月18日
深度学习目标检测算法综述
AI研习社
25+阅读 · 2019年2月1日
AI综述专栏 | 基于深度学习的目标检测算法综述
人工智能前沿讲习班
12+阅读 · 2018年12月7日
AI综述专栏 | 人脸检测算法综述
人工智能前沿讲习班
6+阅读 · 2018年9月10日
博客 | 基于深度学习的目标检测算法综述(二)
AI研习社
11+阅读 · 2018年8月22日
基于深度学习的目标检测算法综述
AI研习社
14+阅读 · 2018年4月25日
【深度学习】干货:目标检测入门,看这篇就够了
产业智能官
8+阅读 · 2018年3月23日
深度学习时代的目标检测算法综述
AI前线
11+阅读 · 2017年9月22日
Top
微信扫码咨询专知VIP会员