设为首页收藏本站

大数据论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 227|回复: 0

港大王晓刚:图像识别中的深度学习

[复制链接]
发表于 2018-7-6 15:19:06 | 显示全部楼层 |阅读模式
深度学习是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域的应用取得了巨大成功。现有的深度学习模型属于神经网络。神经网络的起源可追溯到20世纪40年代,曾经在八九十年代流行。神经网络试图通过模拟大脑认知的机理解决各种机器学习问题。1986年,鲁梅尔哈特(Rumelhart)、欣顿(Hinton)和威廉姆斯(Williams)在《自然》杂志发表了著名的反向传播算法用于训练神经网络,该算法直到今天仍被广泛应用。
神经网络有大量参数,经常发生过拟合问题,虽然其识别结果在训练集上准确率很高,但在测试集上效果却很差。这是因为当时的训练数据集规模都较小,加之计算资源有限,即便是训练一个较小的网络也需要很长的时间。与其他模型相比,神经网络并未在识别准确率上体现出明显的优势。
因此更多的学者开始采用支持向量机、Boosting、最近邻等分类器。这些分类器可以用具有一个或两个隐含层的神经网络模拟,因此被称为浅层机器学习模型。在这种模型中,往往是针对不同的任务设计不同的系统,并采用不同的手工设计的特征。例物体识别采用尺度不变特征转换(Scale Invariant Feature Transform, SIFT),人脸识别采用局部二值模式(Local Binary Patterns, LBP),行人检测采用方向梯度直方图(Histogram of Oriented Gradient, HOG)特征。
2006年,欣顿提出了深度学习。之后深度学习在诸多领域取得了巨大成功,受到广泛关注。神经网络能够重新焕发青春的原因有几个方面:首先,大规模训练数据的出现在很大程度上缓解了训练过拟合的问题。例如,ImageNet训练集拥有上百万个有标注的图像。其次,计算机硬件的飞速发展为其提供了强大的计算能力,一个GPU芯片可以集成上千个核。这使得训练大规模神经网络成为可能。第三,神经网络的模型设计和训练方法都取得了长足的进步。例如,为了改进神经网络的训练,学者提出了非监督和逐层的预训练,使得在利用反向传播算法对网络进行全局优化之前,网络参数能达到一个好的起始点,从而在训练完成时能达到一个较好的局部极小点。
深度学习在计算机视觉领域最具影响力的突破发生在2012年,欣顿的研究小组采用深度学习赢得了ImageNet图像分类比赛的冠军。排名第2到第4位的小组采用的都是传统的计算机视觉方法、手工设计的特征,他们之间准确率的差别不超过1%。欣顿研究小组的准确率超出第二名10%以上,。这个结果在计算机视觉领域产生了极大的震动,引发了深度学习的热潮。
计算机视觉领域另一个重要的挑战是人脸识别。有研究表明,如果只把不包括头发在内的人脸的中心区域给人看,人眼在户外脸部检测数据库(Labeled Faces in the Wild, LFW)上的识别率是97.53%。如果把整张图像,包括背景和头发给人看,人眼的识别率是99.15%。经典的人脸识别算法Eigenface在LFW测试集上只有60%的识别率。在非深度学习算法中,最高的识别率是96.33%。目前深度学习可以达到99.47%的识别率。
深层结构的优势
深度学习模型的“深”字意味着神经网络的结构深,由很多层组成。而支持向量机和Boosting等其他常用的机器学习模型都是浅层结构。三层神经网络模型(包括输入层、输出层和一个隐含层)可以近似任何分类函数。既然如此,为什么需要深层模型呢?
研究表明,针对特定的任务,如果模型的深度不够,其所需要的计算单元会呈指数增加。这意味着虽然浅层模型可以表达相同的分类函数,但其需要的参数和训练样本要多得多。浅层模型提供的是局部表达。它将高维图像空间分成若干个局部区域,每个局部区域至少存储一个从训练数据中获得的模板。浅层模型将一个测试样本和这些模板逐一匹配,根据匹配的结果预测其类别。例如,在支持向量机模型中,模板是支持向量;在最近邻分类器中,模板是所有的训练样本。随着分类问题复杂度的增加,需要将图像空间划分成越来越多的局部区域,因而需要越来越多的参数和训练样本。尽管目前许多深度模型的参数量已经相当巨大,但如果换成浅层神经网络,其所需要的参数量要大出多个数量级才能达到相同的数据拟合效果,以至于很难实现。
深度模型之所以能减少参数的关键在于重复利用中间层的计算单元。以人脸识别为例,深度学习可以针对人脸图像的分层特征表达进行:最底层从原始像素开始学习滤波器,刻画局部的边缘和纹理特征;中层滤波器通过将各种边缘滤波器进行组合,描述不同类型的人脸器官;最高层描述的是整个人脸的全局特征。
深度学习提供的是分布式的特征表示。在最高的隐含层,每个神经元代表一个属性分类器例如性别、人种和头发颜色等。每个神经元将图像空间一分为二,N个神经元的组合就可以表达2N个局部区域,而用浅层模型表达这些区域的划分至少需要2N个模板。由此可以看出,深度模型的表达能力更强,效率更高。
提取全局特征和上下文信息的能力
深度模型具有强大的学习能力和高效的特征表达能力,更重要的优点是从像素级原始数据到抽象的语义概念逐层提取信息,这使得它在提取图像的全局特征和上下文信息方面具有突出的优势,为解决传统的计算机视觉问题带来了新的思路。
以人脸的图像分割为例,为了预测每个像素属于哪个脸部器官(眼睛、鼻子、嘴),通常的做法是在该像素周围取一个小区域,提取纹理特征(例如局部二值模式),再基于该特征利用支持向量机等浅层模型分类。因为局部区域包含的信息量有限,往往产生分类错误,因此要对分割后的图像加入平滑和形状先验等约束。
人眼即使在存在局部遮挡的情况下也可以根据脸部其他区域的信息估计被遮挡部分的标注。由此可知全局和上下文信息对于局部的判断是非常重要的,而这些信息在基于局部特征的方法中在最开始阶段就丢失了。理想情况下,模型应该将整幅图像作为输入,直接预测整幅分割图。图像分割可以被看做一个高维数据转换的问题来解决。这样不但利用到了上下文信息,模型在高维数据转换过程中也隐式地加入了形状先验。但是由于整幅图像内容过于复杂,浅层模型很难有效地捕捉全局特征。而深度学习的出现使这一思路成为可能,在人脸分割、人体分割、人脸图像配准和人体姿态估计等各个方面都取得了成功。
联合深度学习
一些研究计算机视觉的学者将深度学习模型视为黑盒子,这种看法是不全面的。传统计算机视觉系统和深度学习模型存在着密切的联系,利用这种联系可以提出新的深度模型和训练方法。用于行人检测的联合深度学习就是一个成功的例子。一个计算机视觉系统包含若干个关键的组成模块。例如,一个行人检测器包括特征提取、部件检测器、部件几何形变建模、部件遮挡推理、分类器等模块。在联合深度学习中,深度模型的各个层和视觉系统的各个模块可以建立对应关系。如果视觉系统中的关键模块在现有深度学习的模型中没有与之对应的层,则它们可以启发我们提出新的深度模型。例如,大量物体检测的研究工作表明,对物体部件的几何形变建模可以有效提高检测率,但是在常用的深度模型中没有与之相对应的层,因此联合深度学习及其后续的工作都提出了新的形变层和形变池化层来实现这一功能。
从训练方式上看,计算机视觉系统的各个模块是逐一训练或手工设计的。在深度模型的预训练阶段,各个层也是逐一训练的。如果我们能够建立计算机视觉系统和深度模型之间的对应关系,那么在视觉研究中积累的经验就可以对深度模型的预训练提供指导。这样预训练后得到的模型就可以达到与传统计算机视觉系统可比的结果。在此基础上,深度学习还会利用反向传播对所有层进行联合优化,使它们之间的相互协作达到最优,从而使整个网络的性能得到重大提升。
深度模型并非黑盒子,它与传统的计算机视觉系统有着密切的联系,神经网络的各个层通过联合学习、整体优化,使得性能得到大幅提升。与图像识别相关的各种应用也在推动深度学习在网络结构、层的设计和训练方法各个方面的快速发展。可以预见在未来数年内,深度学习将会在理论、算法和应用各方面进入高速发展时期。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|大数据论坛 ( 京ICP备10002193号-4  

GMT+8, 2018-9-26 22:27 , Processed in 0.244979 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表