随着深度学习的应用越来越广泛,3个成熟的研究领域逐渐形成,分别是计算机视觉、自然语言处理以及语音领域,目前AI创业公司也主要集中在这些领域。下面我们就重点展开来介绍这3大应用领域。
计算机视觉(Computer Vision,CV),顾名思义就是计算机拥有像人类一样“看”的能力。在这里“看”的具体含义是指:不仅要将当前的图像输入到计算机中,计算机还应该具有智力,可以根据要求针对当前图像输出一定的分析结果。这个过程可以定义为几个核心任务:目标分类、目标检测、目标分割以及目标跟踪。
目标分类(Target Classification)就是基于分类任务的目标识别问题,即计算机根据给定的数据,找出这些数据中哪些是所需的目标。例如,猫狗分类问题或者花草分类问题。这也是深度学习领域中最简单的一类任务,根据最后的分类函数可以将此任务分为二分类问题和多分类问题。目标分类任务是其他任务的基础,也是很多初学者的入门级任务。
目标检测(Target Detection)可以看成是分类和回归问题的统一。该任务不仅要判断当前图像的所属类别,还要通过包围框(bounding box)标出图像中目标的具体位置。目标检测问题由来已久,基于深度学习的发展从2013年R-CNN算法的提出开始,不断演变出了一系列多步检测网络。之后很多研究学者对网络进行了改进,提出了单步检测,将分类、定位、检测功能都集成在一个网络中,如Yolo、SSD等。目标检测任务的应用十分广泛,经常应用于电力系统检测、医疗影像检测等。目标检测任务根据问题的复杂性,衍生出了人脸检测问题。与传统目标检测问题不同的是,人脸检测需要实现人脸关键点的定位和检测,现在移动设备中应用比较广泛的人脸识别系统就是基于这一任务研究而来。
目标分割(Target Segmentation),就是将一张图像中的特定目标的区域分割出来。在深度学习领域中,目标分割的研究方向主要分为两类:语义分割和实例分割。所谓语义分割就是针对图像中的每个像素点进行分类,即判断图像中哪些像素属于哪个目标。而实例分割是语义分割的进阶版,它不仅要判断哪些像素属于目标,而且要判断哪些像素属于第一个目标,哪些像素属于第二个目标,目前在医疗影像项目中的关键就是对人体器官的分割。常见的图像目标分割网络有FCN和U-Net,其中,U-Net常用于医疗图像分割。
目标跟踪(Target Tracking)是一个基于时间序列的目标定位问题,通常是基于视频数据的任务,常用于智能监控系统、嫌疑犯追逃等。首先是在第一帧图像中锁定目标,在之后的时序数据中,不断地对目标进行重定位。这是一个非常复杂的问题,需要用到目标检测和分割任务,而且根据时序相关性进行有效建模,可以减少定位过程中的计算量,提高追踪效率。
我们介绍了这么多计算机视觉的定义及任务,那么它与图像处理有什么异同呢?严格来讲,图像处理是一种数字信号处理,它不涉及对图像内容的理解,一般是通过数学函数等对图像进行变换或增强,如归一化图像、图像预处理、消除图像噪声等;而计算机视觉是使用计算机模拟人类视觉,该模拟过程包括学习以及推理能力。计算机视觉离不开图像处理操作,因此可以将图像处理看成计算机视觉的一个子集,当目标是对图像进行增强时,可以称为图像处理,当目标是检测和分割等时,则称为计算机视觉。
计算机视觉任务看似容易,但也存在很多潜在的挑战。因为我们人眼每天看到的景象是错综复杂的,我们的视觉和大脑的判别是同步进行的,但对于计算机而言,虽然经过了很多学者的研究,其仍无法达到人类视觉的能力。而且,感官世界极其复杂,任何光照条件或者遮挡都可能会造成计算机识别任务的失败。因此,计算机视觉仍然有很长的一段路要走。
如果说计算机视觉是模拟人类“看”的能力,那么自然语言处理(Natural Language Processing,NLP)就是模拟人类的“语言”能力,这里的“语言”是指说话和写作能力。站在专业的角度来讲,NLP就是以一种智能高效的方式对人类创造的文本数据进行系统地分析、理解和提取信息的过程。
NLP的研究任务很广泛,在本书中我们将它分为5大类:词法分析、句子分析、语义分析、信息抽取和顶层任务。词法分析就是以词为单位对数据进行分析,这是NLP中最基本的工作。常见的词性标注和拼写校正任务就属于词法分析。句子分析就是以句子为单位的分析任务。语义分析就是通过对文本数据的分析,生成对应文本数据的语义信息的形式化表示,常见任务有词义消歧等。信息抽取是NLP任务中应用最广泛的一个,简单理解就是从非结构化的文本数据中抽取出用户所需的结构化信息。常见任务有命名实体消除、情感分析、实体消歧等。所谓顶层任务就是直接面向用户的任务,比如机器翻译或文本摘要,它需要多种任务结合生成对应的可以直接读取的输出结果。另外顶级任务还包括对话系统、阅读理解等。
NLP机制涉及两个流程:自然语言理解和自然语言生成。我们都知道文本数据是非结构化语言,而计算机擅长处理的是结构化数据。所以在NLP机制中,计算机首先需要从非结构化数据中进行读取,转化成结构化数据,通过语法知识和规则进行理解,然后将结构化数据进行组合,生成通顺的非结构化文本。
NLP的应用非常广泛,比如微博的热点推荐,就是通过用户对应的信息和经常浏览的信息进行情感分析,个性化推荐当前热点。另外邮件的垃圾分类、用户体验反馈等也都是通过自然语言处理技术实现的。
我们的目标不仅仅是让计算机有“看”和“语言”的能力,还要让计算机拥有“听”和“说”的能力,因此还需要语音识别(Voice Recognition)。语音识别的目标是将一段自然语言通过声学信号的形式传给计算机,由计算机理解并且做出回应。语音识别系统主要包含特征提取、声学模型、语言模型、字典与解码4大部分。其中特征提取需要对采集的声音信号进行滤波、分帧等音频预处理工作,目的是将要进行分析的音频信号合适地从原始信号中提取出来。语音识别的过程可以概括如下:根据特征提取将声音信号从时域转换到频域,从而为声学模型提供合适的特征向量;再由声学模型根据特征向量来判断其属于哪个声学符号;然后利用语言模型来判断声学符号可能属于哪个词组序列;最后根据已有字典对词组序列进行解码,从而得到最后的文本表示。
在人机交互的过程当中,计算机除了能通过语音识别技术来“听懂”人们对它说的话,还需要能够将文本信息用人们能听懂的方式表达出来。在这样的需求下,语音合成技术应运而生。语音合成技术能够利用计算机等设备将文本信息转换为人们能听懂的音频数据,再通过语音的方式播放出来。
声纹识别是语音识别领域的又一个研究方向。与语音识别不同,声纹识别属于生物识别技术的一种,它根据语音波形中反映说话者生理和行为特征的语音参数,通过连接声纹数据库来鉴别人的身份。因此,声纹识别不注重语音信号的语义理解,而是从语音信号中提取个人声纹特征,并从中找出能够唯一辨别(声纹识别的理论基础是每一个声音都有自己的特征,该特征能将不同人的声音进行有效地区分)说话者身份特征的信息。
语音识别有很广阔的应用场景和发展空间,如:行车导航软件通过语音合成技术为司机指引道路、播报路况,人们甚至可以选择用自己喜欢的明星的声音来播报软件内容;智能家居系统利用语音合成技术能够实现与用户的实时交流,人们可以从智能家居的“嘴”中得知家中的一些基本情况,大大提高了生活质量;在智能教学领域,学生能够利用语音合成技术跟读单词、句子,语音辅导软件的出现大大方便了教学过程,提高了教学质量。