“深度学习与计算机视觉”学习笔记——历史篇

前言

计算机视觉是一个广泛而复杂的领域,而深度学习的发展则为该领域提供了许多解决方案,带来更鲁棒、更精确的模型算法。本系列《“深度学习与计算机视觉”学习笔记》简要地记录了我近期在梳理计算机视觉领域应用深度学习技术的历史发展进程、基础原理以及应对不同任务提出的经典网络架构和未来发展方向的所获所得。特此整理与大家分享。

一、

深度学习简史

深度学习的历史发展比较曲折,在2006年开始崛起之前,经历了两次低谷,这两次低谷也就将神经网络的发展分为了三个不同的阶段。

1.1 人工神经网络的兴起到第一次寒冬

最初,人工神经网络从1943年提出M-P模型开始兴起。到1956年,弗兰克·罗森布拉特提出了著名的感知机,并成功制作出了世界上第一台硬件感知机,通过光传感器阵列来模拟视网膜,实现了简单的英文字母识别,这在当时毫不意外地产生了极为吸引眼球的舆论效果,之后他开始大力推广神经网络。同年,马文·明斯基和其他几位先驱在达特茅斯学院首次提出了“人工智能”,而这一年,就成了人工智能元年。马文·明斯基1959年加入麻省理工学院,创立了MIT计算机系,就需要和政府机构对接,负责申请研究经费方面的事务,正是在这段与学术无关的行政工作中,与罗森布拉特结下了梁子,甚至在一次工作会议上,两人大肆争吵。然而,两位人工智能学术巨头的斗争,不可能只停留在嘴皮子上吵架定胜负,最终是要在学术上见分晓。

在那个年代,计算能力不高,多层感知机没法实现,但单层感知机又仅仅只能解决线性可分的问题,于是1969年,明斯基联合其他教授着手从数学逻辑上证明,感知机在实用层面具有重大局限性,甚至直接说研究感知机没有前途。其实,明斯基作为人工智能领域的泰斗,他对神经网络也了如指掌,但他趁着神经网络在当时还没有取得突破性进展,以一种极具敌意的方式呈现给公众,加上他当年刚获得第四届图灵奖所带有的光环,在这时发布这样一部直指连接主义缺陷的书,无疑是对整个连接主义学派的致命打击。

1.2 神经网络的第一次复兴到第二次寒冬

在沉寂了近10年后,神经网络的研究又开始慢慢复苏。在第一次寒冬时,后来的深度学习鼻祖杰弗里·辛顿刚开始读研,他对神经网络有浓厚的兴趣,并没有因为寒冬而放弃对神经网络的研究,后来又辗转各地求学,在UCSD攻读博士后期间,加入了认知科学中心的研究小组,与当时走在连接主义复兴前沿的大卫·鲁梅哈特结缘,于1986年合作发表了论文《Learning Representations by Back-Propagating Errors》,提出后向传播算法,解决了明斯基指出的多层感知机难以训练的难题,开启了第二轮神经网络的研究热潮。之后,他又几经辗转,于1987年到多伦多大学当教授,结识了后来深度学习的又一位始祖级人物——杨乐昆,成为辛顿组里的一名博士后,并在一年后加入了贝尔实验室,基于BP算法,提出了后来名满天下的CNN,在当时对手写字母实现了很高的识别率,被广泛应用于欧美许多大银行自动手写数字识别系统。

后来,被誉为递归神经网络之父的尤尔根·施米德胡贝,在他的第一个学生的毕业论文中提到BP算法在梯度传播中存在梯度消失/爆炸问题,而且当时训练数据都不大、神经网络容易过拟合、调参无迹可寻等问题,使得神经网络发展从20世纪90年度中期开始进入到一个相对缓慢的阶段。而那时,机器学习、集成学习方法的全面开花,效果一般比各种浅层神经网络好,使得神经网络的研究更是雪上加霜。

1.3 深度学习登场

在寒冬期间,辛顿等一批人仍然坚持神经网络研究,据辛顿和杨乐昆回忆,当时他们的学生完成的与神经网络沾边的文章被拒是家常便饭。1997年,尤尔根·施米德胡贝还提出了LSTM,在一定程度解决BP算法的误差传播问题,但受到计算能力等因素的影响,当时并没有流行起来。到了2004年,神经网络的研究到了最低谷,没有什么机构还愿意支持神经网络的研究,辛顿举步维艰,但最终还是说服了加拿大高等研究所的评审委员,拿到一笔不大的资助得以维持。

经过两年的卧薪尝胆,辛顿在2006年终于取得了突破,研究出了经典的DBN,它通过无监督学习先逐层预训练,可以看作是对网络初始化,然后再按照传统的BP算法,只需进行局部的微调就可以将整个模型收敛到一个不错的结果。这种方法在今天的大部分深度学习应用中看来已经没什么特别的优势,但当时这个办法颠覆了之前学术界认为深度网络不能被训练的观点。更重要的是,DBN一出,立刻在效果上打败了风光已久的SVM,让许多研究者的目光重新回到神经网络。同年,杨乐昆和MILA(蒙特利尔学习算法研究所)创始人约书亚·本吉奥在之后的NIPS会议上发表了两篇深度网络的论文,这三篇论文算是重振神经网络的开山之作,从此这三位研究者被公认为深度学习三巨头,2019年3月27日,ACM(计算机协会)宣布把 2018 年度图灵奖颁给他们三位深度学习“三巨头”,以表彰他们在深度学习神经网络上的贡献。

二、

计算机视觉简史

从人工智能诞生起,计算机视觉就一直是该领域比较热门的方向,经过多年的发展,总体来说主要经历了四个阶段,即:马尔计算机视觉、主动和目的视觉、多层几何与分层三维重建、以及基于学习的视觉。

2.1深度学习以前的计算机视觉

开启计算机视觉成为一门正式学科进行研究,要追溯到1972年,当年戴维·马尔开始转向研究视觉处理之后还受到马文·明斯基的邀请,进入MIT人工智能实验室工作。但不幸的是,1977年,马尔被查出了白血病,但他首先想的就是抓紧整理自己在视觉理论框架上的研究,在去世之前完成了初稿,后来,在他学生的帮助下,MIT出版社于1982年出版发行了这本《视觉计算理论》,书中马尔提出了一些对计算机视觉非常重要的观点,尽管从今天来看马尔的理论存在着一些不合理的地方,但在当时却开启了计算机视觉作为一门正式学科的研究。1987年诞生的算是目前IEEE主办的全球最高级别学术会议——国际计算机视觉大会每次都会给计算机视觉领域做出主要贡献的人颁发奖项,奖项名字就是马尔奖。

之后的20年,计算机视觉分别迎来计算和数学方法研究和机器学习方法研究阶段,比如图像金字塔、一些边缘检测算法、图像分割算法都在这个时期被提出,而当时将机器学习应用到计算机视觉的一个特点就是人工特征+分类器,各种用来描述图像特征的算子也不断被发明出来。

2.2深度学习以后的计算机视觉

进入21世纪以后,计算机视觉已经成为计算机领域的大学科。计算机视觉领域世界三大顶级会议每届的参会人数都在暴涨,不断涌现出新的发展方向和突破。这个领域的大赛向来备受关注,前几年是ImageNet大赛,这几年是WebVision大赛。ImageNet比赛历时8年,2012年,杰弗里·辛顿的研究生阿力克斯·克里泽夫斯基,以出色的学术和工程能力,提出AlexNet,并基于GPU实现,将错误率一下子降到了15.3%;之后,参赛者几乎全体转向使用CNN,再后来,整个计算机视觉领域全体转向深度学习。

不过随着CNN在ImageNet 挑战赛上的普及,更多比拼的是人力与机器算力,而不是算法本身,这种场景下已经很难催生出突破性深度学习技术。

于是,WebVision以更加复杂和不平衡的数据,发起更具有算法挑战性的比赛。到目前已经举办三届,第一届冠军是中国初创公司码隆科技,前五名提交结果都是他们提交的,他们采用了半监督学习的方式,首先利用所有的元数据训练一个粗模型,利用这种粗模型对所有元数据提取一种特征表示,然后引入2009年约书亚·本吉奥提出的课程学习(Curriculum Learning)方法,设计一种聚类算法,将每一个元数据类别聚成了不同层次的类别,其中有一个类别属于比较干净的类别,于是利用这组干净的数据训练一个精模型,然后通过逐步增加噪声数据的数量,提升模型复杂度和泛化能力。第二届开始分类由1000类扩大到5000类,百度以79.25%取得了第一名。2019年第三届,阿里AI依靠其自研的可以支持数十亿图片分类训练的超大平台,针对非标注数据引入了构建类别语义标签关系的模型,并采用了辅助信息模型进行图像去噪的深度学习技术,摘得了桂冠。后几名分别是中国的商汤科技、华为、百度。通过该竞赛,表明了现代深度学习技术可以不完全以人工标注数据为基础,人工智能有望真正摆脱“人工”。

现在深度学习已经成为计算机视觉领域的标配,使得计算机视觉已经超越人类。比如,如下图所示,2015年,微软亚研(MSRA)何恺明针对ImageNet 挑战赛提出深度残差网络(Deep Residual NetWorks),取得的Top5错误率低于接受过训练的人在ImageNet数据集上对图像进行分类的错误率5.1%,等等。

现在,用GPU加速深度网络训练已经成为共识,通过统计AlexNet在16核英特尔至强CPU以及英伟达Titan系列GPU下的训练时长,发现使用CPU要花40 天以上的时间,而使用GPU则可以将时间缩短至6 天,再使用一些基于神经网络的加速库,可以进一步缩短时间。当然,GPU所擅长的是大规模的矩阵计算,为了能有效利用GPU,其中一个关键就是要考虑如何将卷积层进行的运算转换为大型矩阵的乘积运算。

另外,为了进一步提高深度学习所需的计算的速度,一般还考虑在多个GPU或多台机器上进行分布式计算。研究发现,基于分布式学习,随着GPU个数的增加,学习速度也在提高。现在像TensorFlow这样的深度学习框架大都支持多GPU或多机器的分布式学习,其中的一个关键就是解决机器间的通信、数据的同步这些问题。

参考文献

[1]叶韵. 深度学习与计算机视觉 : 算法原理、框架应用与代码实现[M]. 机械工业出版社, 2018.

[2]Khan A, Sohail A, Zahoora U, et al. A Survey of the Recent Architectures of Deep Convolutional Neural Networks[J]. arXiv preprint arXiv: 1901.06032, 2019.

[3]Russakovsky, O., Deng, J., Su, H., Krause, J., Satheesh, S., Ma, S. & Berg, A. C.: Imagenet large scale visual recognition challenge. International Journal of Computer Vision, 115(3), 211-252, 2015.

[4]Li W , Wang L , Li W , et al. WebVision Database: Visual Learning and Understanding from Web Data[J]. 2017.