《深度学习在图像识别中的研究进展与展望》 王晓刚
看了一下2015年机器视觉领域相关的论文,其中涉及CNN(卷积神经网络)的相当多。再加上今年3月份,谷歌的阿尔法狗在围棋比赛中战胜了李世乭,神经网络、深度学习、人工智能又一次成为了人们关注的热点。华科计算机几个大实验室几乎都有涉及到这个方面的研究。图像所主要研究医学影像处理;理论所主要研究算法的优化;国光这一边目前更偏向于体系结构优化以及硬件加速。
这篇文章来源于香港机器视觉领域知名学者王晓刚,但是具体的期刊名称和日期没有找到。文章不长,但涉及面很广,内容也很有指导意义。以下是对于这片文章的简要总结。
深度学习发展历史
- 上世纪40年代 神经网络模型被提出,试图通过模拟大脑认知的机理,解决各种机器学习的问题。
- 1986年 Rumelhart,Hinton 和 Williams 在《自然》发表了著名的反向传播算法,用于训练神经网络
- 2000年前后 由于计算资源有限、训练集规模小,人们更倾向于浅层学习机(如SVM、Boosting、最邻近等分类器)
- 2006年 Geoffrey Hinton 提出了深度学习
- 2012年 Hinton 的研究小组采用深度学习(卷积神经网络模型)赢得了 ImageNet 图像分类的比赛,把top5错误率降到15.315%,并且结果由于第二名10%以上,因此引起了较大轰动并掀起了深度学习的热潮,这个网络的结构被称作 AlexNet
- 2013-2014年 百度、谷歌、facebook陆续成立深度学习实验室
- 2014年 ILSVRC比赛中GooLeNet将top5错误率降到6.656%,它的最大特点就是深度超过20层
深度学习有何与众不同?
特征学习
深度学习与传统模式识别方法的最大不同在于它是从大数据中自动学习特征。而非采用手工设计的特征。传统的模式识别系统依赖先验知识,需要手工调整参数,因此参数不易过多。然而深度学习模型可以包含千万级别的参数。
深度学习的关键就是通过多层非线性映射将图像中复杂的因素成功地分开。
深层结构的优势
如果模型的深度不够,其所需的计算单元就会呈指数增加。这也就是浅层模型、三层神经网络的问题所在。深度模型能够减少参数的关键在于重复利用中间层的计算单元。
在最高的隐含层,每个神经元代表了一个属性分类器,例如男女、人种和头发颜色等等。每个神经元将图像空间一分为二,N 个神经元的组合就可以表达2N个局部区域,而用浅层模型表达这些区域的划分至少需要个2N 模板。
提取全局特征和上下文信息的能力
图像分割的时候,面对遮挡的问题需要根据全局和上下文信息进行判断。传统方法通常在第一步提取局部纹理特征的时候就丢失的全局信息。而深度学习在提取图像的全局特征和上下文信息方面具有优势。因此在人脸分割、人脸匹配和人体姿态估计等方面深度学习取得了成功。
图像分割可以被当做一个高维数据转换的问题来解决。这样不但利用到了上下文信息,模型在高维数据转换的过程中也隐式地加入了形状先验。
联合深度学习
用于行人检测的联合深度学习中,深度模型的各个层和视觉系统的各个模块可以建立起对应关系。与之类似的还有多阶段深度学习。还有一些视觉系统中的有效关键模块在现有的深度学习中没有对应层,那么可以考虑新的深度模型。例如联合深度学习及其后续研究针对几何形变提出的新的形变层和形变池化层。总之,为了能够在机器视觉领域更好的应用深度学习模型,仅仅把它当成一个黑盒子是不够的。
深度学习在图像处理中的应用
在于图像和视频相关的应用中,最成功的是深度卷积网络,它正是利用了与图像的特殊结构。其中最重要的两个操作,卷积和池化(pooling)都来自于与图像相关的领域知识。
- ImageNet图像分类
- 人脸识别
(文中多次提到,将CNN最高的隐含层作为特征?) - 物体检测
- 视频分析 难点是如何描述动态特征,如何将这些信息体现在深度模型中。最直接的做法是,将视频视为三维图像直接应用卷积网络。另一种更好的思路是通过预处理计算光流场,作为卷及神经网络的一个输入通道。
补充
从特征描述符到深度学习:计算机视觉发展20年:从特征描述的角度来讲机器视觉的发展。
另外深层模型参数多,计算量大,训练数据的规模也更大,需要消耗很多计算资源。如果可以让训练加速,就可以在同样的时间内多尝试几个新主意,多调试几组参数,工作效率会明显提升,对于大规模的训练数据和模型来说,更可以将难以完成的任务变成可能。对于深度学习的加速,一种方法是使用GPU并行计算提高速度。一块GPU卡可相当于数十甚至上百台CPU服务器的计算能力,因此GPU已经成为业界在深度学习模型训练方面的首选解决方案。另外一种方法是使用FPGA进行特定模型的加速,相较于GPU来说FPGA能耗更小,但通用性不强。
网友评论