作者 | 蒋宝尚
编辑 | 丛末
5月8日上午,旷视首席科学家、西交大人工智能学院院长孙剑博士在线做了一场“视觉计算的前沿进展”的报告,报告是由「信息技术新工科产学研联盟」主办的人工智能教育线上公开课。
孙剑博士在报告中将当前使用卷积神经网络的计算机视觉分两个方面进行了探究:
1、卷积神经网络,核心可以归纳为:网络的深度、网络的卷积操作、网络的宽度和网络的大小。
2、计算机视觉,核心问题可以归纳为:分类、检测、分割以及序列。
孙剑表示,针对这些问题,研究员们已经做出了非常多的努力,也有了非常多的进步,但是长尾分布、自监督学习、遮挡等计算机视觉中的关键问题还没有解决。
下面我们对孙剑博士报告的部分内容作以介绍。
1
卷积神经网络
计算机视觉包含很多任务,其中一条主线是如何理解一张图片,也就是图像的表示问题。从1978年的 2.5D Sketch一直到中间的点特征、局部特征再到今天的深度卷积神经网络,图像表示问题已经有了几十年的研究。
当前最主流的方法是深度卷积神经网络,即输入一张图片,经过中间函数的作用,输出一个类别。但卷积神经网络到底学到了什么呢?孙剑提到,学到的东西可以分为低级表示和高级表示两个维度,低级表示例如线段、边缘、纹理等,高级特征例如如狗、耳朵等。
卷积神经网络开始的思想很早之前就已经存在,早在80年代,日本科学家提出神经认知机的概念,可以算作是卷积网络最初的实现原型。90年代Yann LeCun 把这种方法发扬光大,从而学界开始卷积神经网络的研究。
卷积神经网络的核心问题可以归纳为上面几个:大小、卷积、深度、宽度。其中卷积最核心,作为一种算子,其具有空间不变性、权重共享等特点,一般3*3的卷积最为常见。一个3*3的卷积如果再加上通道数的卷积计算,就能提取特征信息。后来出现的1*1的卷积也非常有效,其能够有效的降低计算复杂度,融合它的通道信息。
随后,卷积使用产生了分组思想,即把整体的通道分成不同的组从而完成计算,在降低复杂度的同时,也更加高效。在往下发展,Depthwise概念出现,这个概念假设卷积中的特征为3D立方体,第一步先对每一层进行独立卷积,第二步是把上一步的卷积结果用一个点卷积进行综合。
在报告中,孙剑提到,在2018年的时候,其研究团队提出的ShuffleNetV1就结合了分组和点卷积的思想,这个网络第二步采用Shuffle操作,从而保证种通道信息可以交换,随后的ShuffleNet v2改善了V1的第一步,强调通道切分和局部卷积,也让模型更加高效。
最新的卷积设计思想是动态卷积计算,区别于每一层卷积根据前面的输入不变的思想,能够根据输入不同动态生成卷积参数。例如旷视的动态 Channel-wise Mixture 就采用了此思想,增强了模型的拟合能力。
卷积神经网络第二个核心是“深度”,其有两个障碍:1.深度神经网络如果过深则无法训练;2.实验结果难以复现。这两个障碍也是神经网络在历史上几起几落的重要因素,在2012年以前,神经网络的深度是有欠缺的。
2012年Hinton和他的学生AlexKrizhevsky 做出了有8层的 AlexNet。两年之后,19层的VGG网络和22层的GoogleNet出现,从此科学家开始攻坚“深度”。2015年孙剑领导微软团队第一次做出了超过100层的RestNet。
网络越深,能力越强,如上图所示,2015年,152层的RestNet在ImageNet图像分类任务中,误差精度超越人类。
为什么是152层?孙剑提到当时内存约束导致最多可以训练一个152层的网络,另外,根据Jeffy Feldman的“100步极限”理论,100多层似乎是最优数目。(100步极限理论:大脑高级决策时间在0.5秒、大脑皮层神经元的电脉冲间隔5ms、大脑计算不会超过100个连续步骤)
ResNet的设计思想在于残差学习的方式,即根据输入将层表示为学习残差函数。实验表明,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。ResNet解决了增加深度带来的副作用(退化问题),这样能够通过单纯地增加网络深度,来提高网络性能。在2018年ResNet也被用在了AlphaGo Zero训练,目的在于把棋盘看成图像,预测落子步骤。
神经网络的宽度和表示能力强相关,统一逼近定理就是这个理论研究方向(统一逼近定理:一个足够大的两层神经网络可以逼近任意有界连续函数)。但是这个定理只告诉了能够逼近,但是没有说明怎样逼近。
最近的一些研究把传统机器学习和深度学习进行了对比,传统机器学习当参数大到一定程度就会从欠拟合走向过拟合。但是用深度学习方法,如果过参数化,往往会有较低的训练错误和测试错误,也就是说模型实现了较高的泛化能力。
但是,如果网络太宽会影响实用效果,一些研究就想着怎么进行通道裁剪。例如元裁剪方法训练神经网络来裁剪网络、最小二乘实现权重重建、LASSO回归实现通道裁剪等等。
最后,网络的大小,也就是特征图的大小也是有研究方向。研究发现如果动态改变特征数大小,会产生非常有趣或者更好的一些效果,例如可以模拟数据增强效果或者说能够搜索到更好的网络构架。
上面四个因素,深度、卷积、宽度、大小分别是单维度研究。目前神经网络构架搜索研究方向,正在试着将这几个维度同时联合优化。其核心是完成两个迭代的过程:构架搜索和权重训练。
在报告中,孙剑介绍到,他的团队目前正在做一个叫做超网络的方法:第一步训练超网络,第二步搜索子网络直接继承网络的权重,如此便能快速找到更好的子网络。
2
计算机视觉
计算机视觉始于60年代,Larry Robert最早涉及,他的博士论文就是计算机视觉领域的第一篇,当时研究的核心内容是如何用计算机分清一张图物体和背景。
近几年的发展也非常迅速,从计算机视觉学术年会CPVR来看,其论文提交数目不断递增,2019年已经超过了5000篇论文。这也表示了计算机视觉方向的火热。
计算机视觉核心问题大概有四个,分别是:分类、检测、分割、序列。其中分类问题最著名的当属ImageNet,自2010年以来,每年度ImageNet大规模视觉识别挑战赛(ILSVRC),研究团队在给定的数据集上评估其算法,并在几项视觉识别任务中争夺更高的准确性。基于计算机视觉-分类,也诞生了许多应用,例如人脸识别、机器人、医疗影像等等。
图注:基本的检测框架:1.输入图像;2.通过骨干网络得到候选框;3.候选框得出局部区域;4.通过检测头;5、得到结果。
如果说分类问题涉及一张图片里面大概包含什么,那么检测问题不光知道包含什么,还要知道这个物体在哪里。传统方法也能做检测,但是2013年,在伯克利做博士后的Ross Girshick基于深度学习发明了R-CNN网络效果吊打传统模型,至此之后,检测问题向深度学习找方向。
R-CNN的核心思想是:用传统方法从图像中抽取候选区域,然后将候选区域裁成一个一个的方框,随后将方框馈送到网络中进行分类。但是这种裁剪方法可能需要在图像中裁剪1000~2000个方框,会对计算量有非常多的要求。
于是2014年,SPP-Net出现,直接从特征图裁剪,区别于R-CNN在图像中裁剪,极大节约了计算量。
2015年 Faster R-CNN出现,打破了传统的候选框计算方式,直接设计神经网络抽取候选框。这也意味着第一次物体检测问题能够全部用深度学习方法实现。
随后,2017年ICCV的最佳论文提出Mask R-CNN 进一步扩展深度学习方法,不但能够输出框,还能够输出物体的形状。
后来的RetinaNet和YOLO V3方法更加高效,一步就能够得到结果;Dense Box和FCOS能将整个方式更加简化。
然后,孙剑介绍了介绍了一个名为MegDet的物体检测器,表示它第一次从框架上支持超大mini-Batch训练,多机训练可以加速16倍,并且精度更高。还介绍了 objects365 V2 数据库,其包含365种常见物体,2百万张图像,2.8千万个人工标注框。
除此之外,孙剑提到物体检测中的遮挡问题是计算机视觉中非常前沿的研究,如果一张照片中有两个人,一个人被另一个人部分遮挡,虽然人类的眼睛非常容易分辨出,但是因为包含推理,所以对于计算机来说是个非常困难的问题。
区别于单预测方法,去年他们的“一个候选框多个预测结果”的方法已经在尝试解决遮挡问题了。
在计算机视觉中虽然已经取得了非常多的进步,但是还有一些关键问题没有解决,例如长尾分布就是机器学习中的核心难题,也即对于不经常发生或者不易常见的数据很难有充足的训练样板,以至于机器学习方法就很难训练好模型。
如何不通过大量有监督的训练标注方法就能达到很好的学习效果(自监督)?如何把一个视频序列中的同一个物体很好的关联起来?显然,今天深度学习的方法并不能很好的测试和解决这些问题。