Board logo

标题: 图像识别中的深度学习【香港中文大学王晓刚】 [打印本页]

作者: yuchengze    时间: 2017-3-20 22:05     标题: 图像识别中的深度学习【香港中文大学王晓刚】

深度学习是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域的应用取得了巨大成功。现有的深度学习模型属于神经网络。神经网络的起源可追溯到20世纪40年代,曾经在八九十年代流行。神经网络试图通过模拟大脑认知的机理解决各种机器学习问题。1986年,鲁梅尔哈特(Rumelhart)、欣顿(Hinton)和威廉姆斯(Williams)在《自然》杂志发表了著名的反向传播算法用于训练神经网络[1],该算法直到今天仍被广泛应用。下面就随嵌入式小编一起来了解一下相关内容吧。

  神经网络有大量参数,经常发生过拟合问题,虽然其识别结果在训练集上准确率很高,但在测试集上效果却很差。这是因为当时的训练数据集规模都较小,加之计算资源有限,即便是训练一个较小的网络也需要很长的时间。与其他模型相比,神经网络并未在识别准确率上体现出明显的优势。
  因此更多的学者开始采用支持向量机、Boosting、最近邻等分类器。这些分类器可以用具有一个或两个隐含层的神经网络模拟,因此被称为浅层机器学习模型。在这种模型中,往往是针对不同的任务设计不同的系统,并采用不同的手工设计的特征。例物体识别采用尺度不变特征转换(Scale Invariant Feature Transform, SIFT),人脸识别采用局部二值模式(Local Binary Patterns, LBP),行人检测采用方向梯度直方图(Histogram of Oriented Gradient, HOG)特征。
  2006年,欣顿提出了深度学习。之后深度学习在诸多领域取得了巨大成功,受到广泛关注。神经网络能够重新焕发青春的原因有几个方面:首先,大规模训练数据的出现在很大程度上缓解了训练过拟合的问题。例如,ImageNet[2]训练集拥有上百万个有标注的图像。其次,计算机硬件的飞速发展为其提供了强大的计算能力,一个GPU芯片可以集成上千个核。这使得训练大规模神经网络成为可能。第三,神经网络的模型设计和训练方法都取得了长足的进步。例如,为了改进神经网络的训练,学者提出了非监督和逐层的预训练,使得在利用反向传播算法对网络进行全局优化之前,网络参数能达到一个好的起始点,从而在训练完成时能达到一个较好的局部极小点。
  深度学习在计算机视觉领域最具影响力的突破发生在2012年,欣顿的研究小组采用深度学习赢得了ImageNet图像分类比赛的冠军[3]。排名第2到第4位的小组采用的都是传统的计算机视觉方法、手工设计的特征,他们之间准确率的差别不超过1%。欣顿研究小组的准确率超出第二名10%以上,(见表1)。这个结果在计算机视觉领域产生了极大的震动,引发了深度学习的热潮。
  计算机视觉领域另一个重要的挑战是人脸识别。有研究表明[5],如果只把不包括头发在内的人脸的中心区域给人看,人眼在户外脸部检测数据库(Labeled Faces in the Wild, LFW)上的识别率是97.53%。如果把整张图像,包括背景和头发给人看,人眼的识别率是99.15%。经典的人脸识别算法Eigenface[6] 在LFW测试集上只有60%的识别率。在非深度学习算法中,最高的识别率是96.33%[7]。目前深度学习可以达到99.47%的识别率[8]。
  在欣顿的科研小组赢得ImageNet比赛冠军之后的6个月,谷歌和百度都发布了新的基于图像内容的搜索引擎。他们采用深度学习模型,应用在各自的数据上,发现图像搜索准确率得到了大幅度提高。百度在2012年成立了深度学习研究院,2014年5月又在美国硅谷成立了新的深度学习实验室,聘请斯坦福大学著名教授吴恩达担任首席科学家。脸谱于2013年12月在纽约成立了新的人工智能实验室,聘请深度学习领域的著名学者、卷积网络的发明人雅恩·乐昆(Yann LeCun)作为首席科学家。2014年1月,谷歌抛出四亿美金收购了深度学习的创业公司DeepMind。鉴于深度学习在学术界和工业界的巨大影响力,2013年,《麻省理工科技评论》(MIT Technology Review)将其列为世界十大技术突破之首。
  深度学习有何与众不同?
  深度学习和其他机器学习方法相比有哪些关键的不同点,它为何能在许多领域取得成功?
  特征
  深度学习与传统模式识别方法的最大不同在于它所采用的特征是从大数据中自动学习得到,而非采用手工设计。好的特征可以提高模式识别系统的性能。过去几十年,在模式识别的各种应用中,手工设计的特征一直处于统治地位。手工设计主要依靠设计者的先验知识,很难利用大数据的优势。由于依赖手工调参数,因此特征的设计中所允许出现的参数数量十分有限。深度学习可以从大数据中自动学习特征的表示,可以包含成千上万的参数。
  采用手工设计出有效的特征往往需要五到十年时间,而深度学习可以针对新的应用从训练数据中很快学习到新的有效的特征表示。
  一个模式识别系统包括特征和分类器两部分。在传统方法中,特征和分类器的优化是分开的。而在神经网络的框架下,特征表示和分类器是联合优化的,可以最大程度地发挥二者联合协作的性能。
  2012年欣顿参加ImageNet比赛所采用的卷积网络模型[9]的特征表示包含了从上百万样本中学习得到的6000万个参数。从ImageNet上学习得到的特征表示具有非常强的泛化能力,可以成功应用到其他数据集和任务中,例如物体的检测、跟踪和检索等。在计算机视觉领域另外一个著名的竞赛是PSACAL VOC。但是它的训练集规模较小,不适合训练深度学习模型。有学者将ImageNet上学习得到的特征表示用于PSACAL VOC上的物体检测,检测率提高了20%[10]。
  既然特征学习如此重要,那么,什么是好的特征呢?一幅图像中,各种复杂的因素往往以非线性的方式结合在一起。例如人脸图像中就包含了身份、姿态、年龄、表情、光线等各种信息。深度学习的关键就是通过多层非线性映射将这些因素成功分开,例如在深度模型的最后一个隐含层,不同神经元代表了不同因素。如果将这个隐含层当作特征表示,人脸识别、姿态估计、表情识别、年龄估计就会变得非常简单,因为各个因素之间变成了简单的线性关系,不再彼此干扰。
  深层结构的优势
  深度学习模型的“深”字意味着神经网络的结构深,由很多层组成。而支持向量机和Boosting等其他常用的机器学习模型都是浅层结构。三层神经网络模型(包括输入层、输出层和一个隐含层)可以近似任何分类函数。既然如此,为什么需要深层模型呢?
  研究表明,针对特定的任务,如果模型的深度不够,其所需要的计算单元会呈指数增加。这意味着虽然浅层模型可以表达相同的分类函数,但其需要的参数和训练样本要多得多。浅层模型提供的是局部表达。它将高维图像空间分成若干个局部区域,每个局部区域至少存储一个从训练数据中获得的模板,如图1(a)所示。浅层模型将一个测试样本和这些模板逐一匹配,根据匹配的结果预测其类别。例如,在支持向量机模型中,模板是支持向量;在最近邻分类器中,模板是所有的训练样本。随着分类问题复杂度的增加,需要将图像空间划分成越来越多的局部区域,因而需要越来越多的参数和训练样本。尽管目前许多深度模型的参数量已经相当巨大,但如果换成浅层神经网络,其所需要的参数量要大出多个数量级才能达到相同的数据拟合效果,以至于很难实现。
  深度模型之所以能减少参数的关键在于重复利用中间层的计算单元。以人脸识别为例,深度学习可以针对人脸图像的分层特征表达进行:最底层从原始像素开始学习滤波器,刻画局部的边缘和纹理特征;中层滤波器通过将各种边缘滤波器进行组合,描述不同类型的人脸器官;最高层描述的是整个人脸的全局特征。
  深度学习提供的是分布式的特征表示。在最高的隐含层,每个神经元代表一个属性分类器(如图1(b)所示),例如性别、人种和头发颜色等。每个神经元将图像空间一分为二,N个神经元的组合就可以表达2N个局部区域,而用浅层模型表达这些区域的划分至少需要2N个模板。由此可以看出,深度模型的表达能力更强,效率更高。
  提取全局特征和上下文信息的能力
  深度模型具有强大的学习能力和高效的特征表达能力,更重要的优点是从像素级原始数据到抽象的语义概念逐层提取信息,这使得它在提取图像的全局特征和上下文信息方面具有突出的优势,为解决传统的计算机视觉问题(如图像分割和关键点检测)带来了新的思路。
  以人脸的图像分割为例(如图2所示),为了预测每个像素属于哪个脸部器官(眼睛、鼻子、嘴),通常的做法是在该像素周围取一个小区域,提取纹理特征(例如局部二值模式),再基于该特征利用支持向量机等浅层模型分类。因为局部区域包含的信息量有限,往往产生分类错误,因此要对分割后的图像加入平滑和形状先验等约束。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0