人工智能训练师基础(上册)
上QQ阅读APP看书,第一时间看更新

1.3 人工智能的基础应用技术

在大方向的技术路线之下,人工智能存在着众多具体的应用技术。在目前弱人工智能的发展阶段,自然语言处理、智能语音技术、计算机视觉(computer vision)和知识图谱(knowledge graph)是其中比较热门的四类。

1.3.1 自然语言处理

语言是人类互相交流的方式之一。我们借助语言说话、阅读、写作,表达自己的思想和情感。而所谓自然语言,在语言学中是与人造语言对应的一个概念,它指的是一种自然地随文化演化的语言,我们平时所说的汉语、英语、法语、日语都是自然语言的例子。人造语言则是由人特意为某些特定目的而创造的语言,如世界语。而在计算机科学领域,无论人造与否,自然语言就是人类交流的语言。与之相对应的则是计算机语言(编程语言),一种人类使用各种形式化的逻辑符号创造出的与计算机交流的语言。而自然语言处理作为人工智能和语言学的分支,研究的是如何让计算机理解和处理人类的语言。其核心任务包括两大部分:自然语言理解(natural language understanding,NLU)和自然语言生成(natural language generation ,NLG)。前者是让计算机理解我们说的话,后者是让计算机学会使用我们的话。

这是一个很难的课题。众所周知,语言的规律本来就错综复杂,人们又可以随时根据表达的需要创造新的表达方式,穷举绝无可能。而语言作为一套符号系统,它所表示的具体事物或抽象概念是人类长久以来认知世界的成果体现,这种与知识天生的关联进一步增加了研究的难度。再加上,语言的多义性和歧义性要求对语言的理解必须依靠所处的环境与上下文。这些都是自然语言处理,尤其是自然语言理解不得不面对的难点。

为了达到目标,研究者们尝试过基于规则、基于统计的方式来判断自然语言的意图,现在又引入深度学习的方法,但仍未使计算机真正地“掌握”人类的语言。尽管如此,自然语言处理还是有不少较为成功的应用。

(1)垃圾邮件过滤器:大量的垃圾邮件无疑是最让电子邮箱用户困扰的问题之一。各大电子邮件服务商曾经尝试过许多办法进行邮件过滤(如设置关键词),但效果都不理想。而引入NLP的方法后,过滤器通过查看并理解邮件文本内容的方式来判断垃圾邮件,准确率提升了很多。谷歌的Gmail就是这样做的。

(2)机器翻译:让机器替代人工成为译员就是机器翻译。现在主流的搜索引擎Google、Bing、Yahoo、百度等都有机器翻译的功能,基本上都可以直接从网页上读取文本,将其从一种语言翻译成另一种语言,方便各语种使用者和世界交流。

(3)文本摘要:互联网带来的信息爆炸让如何迅速获取有效信息成为一个亟待解决的问题。所谓文本摘要就是使用NLP对各类文本进行“降维”的处理,压缩提取出精练简洁的信息,以便人们可以更快地理解它。目前文本摘要在搜索结果预览、新闻标题生成中有所应用。

(4)情绪分析:随着电商的繁荣,网购的成交量不断增长,相应地,产品的评论数也在大幅增加。企业需要从中找到改进产品的方向,消费者则需要找到选择产品的参考。如果仅仅依靠人工筛选判断,是很难得出准确结论的。而NLP则可以处理大量文字信息,发现文字背后的情感倾向,满足企业和消费者的需要。

(5)聊天机器人:聊天机器人即通过文字或语音与人类交流的程序。最早的聊天机器人ELIZA采用的还是模式匹配和字符替换的规则,而如今的聊天机器人则运用了NLP的技术,并且涵盖了文本向量化、信息提取等诸多NLP任务,实现了更智能的聊天效果。典型代表有苹果的Siri、微软的小冰等。

1.3.2 智能语音技术

智能语音技术专注于感知层面的智能化,致力于让机器拥有听说能力,是最早实现落地、市场应用也最为广泛的人工智能技术。智能语音技术具体可以分为自动语音识别、语音合成(text to speech, TTS)、声纹识别(voiceprint recognition,VPR)、语音分类等,下面分别进行简单的介绍。

1.自动语音识别

自动语音识别,又称语音识别,简单来说就是一种把说话内容转换成文字的技术。其流程主要包括四步:语音输入——提取特征进行编码——根据声学模型和语言模型解码——转换为文字输出。语音识别的技术框架中有三个重要的组成部分:模型训练、前端语音处理、后端识别处理(图1-5)。

图1-5 语音识别的原理

语音识别系统的模型通常由声学模型和语言模型两部分组成,分别对应于从语音信号中抽取的特征到音节概率的计算和音节到字概率的计算。前端语音处理指利用信号处理的方法对说话人语音进行检测、降噪等预处理,以便得到最适合识别引擎处理的语音,并从中抽取特征向量的过程。后端识别处理就是指利用训练好的声学模型和语言模型对提取到的特征向量进行识别(也称为“解码”),得到文字信息的过程。其中最主要的解码器部分就是指对原始的语音特征进行声学模型打分和语言模型打分,并在此基础上得到最优的词模式序列的路径,此路径上对应的文本就是最终识别结果。为了得到更好的体验,还需要对识别结果进行诸如打标点、文本顺滑、数字归一化、自动文本分段等文本后处理,并将最终处理结果输出。

对于语音识别的效果,有两个评测的指标:WER(词错率)和SER(句错率)。词错率计算的是识别错误的字数占所有识别字数的比例,无论是识别多了还是识别少了,都属于识别错误[中文语音识别使用的是字错率(CER)]。句错率计算的则是识别错误的句子个数占句子总数的比例。至于怎么样才算句子识别错误,不同使用场景的标准不尽相同。有的时候只要关键词正确了就不算错,但有的时候则严格要求整句话必须一模一样。一般来说,ASR模型测试时多使用字错率作为指标,但用户体验方面的测试多使用句错率。

目前国内外业界顶尖的公司,都声称自己的语音识别准确率可以达到97%~98%的水准。但实际上,语音识别的效果受录音设备、环境噪声、混响、说话口音、说话方式、谈论话题等客观因素的影响很大。想要提高实际应用中的识别率,还是离不开对大量语音文本语料的训练。

2.语音合成

语音合成是将数字文本转换为拟人化语音的技术。它对于外语学习者、阅读障碍者、视障人员来说都是很好的工具。

语音合成的基本流程也是四步:输入文本——进行文本分析(分词)——经过声学系统(声学模型、声码器)处理——合成语音。如图1-6所示。

图1-6 语音合成原理

从技术层面来说,语音合成早期一直存在两条长期并存的技术路线:选音拼接和参数合成,二者各有优劣。选音拼接即从事先录制的语音中选取所需的基本单位(音节、音素等)进行拼接。这种合成方式音质、情感真实,但字间协同、过渡生硬,对录音量和覆盖率要求高,且不能改变声线、情感,只能小幅调节语速和音高。参数合成即通过数学方法对已有录音进行频谱特性参数建模,在构建好文本序列与语音特征的映射关系后,就可以借此找到新输入文本的音频特征,然后通过声学系统生成我们能听懂的语音。这种合成方式字间协同、过渡平滑,录音量小,可变度高,声线、情感、语速和音高都可以更改,但是音质机器感浓、音色特性损失较大、缺乏临场感。

2013年以来,深度学习浪潮席卷了涉及机器学习的所有应用领域,语音合成的技术也随之更新换代为深度神经网络端到端的合成方式。所谓端到端,是把传统的文本分析和声学系统处理这两个模块合并成一个黑盒,直接输入文本就能输出合成的音频。这种合成方式减少了对语言学知识的要求,在音质、语速、流畅度、拟人度上面都有很大的效果提升。

对于语音合成的效果,目前业内一般采用MOS值(mean opinion score,平均意见评分)评测的方式。这是一种主观的评分方式,主要根据评分者个人对声音的喜好程度和整体感觉,进行1~5分的评分(可精确到小数点后一位)。其中,1分代表极差,2分代表差,3分代表还可以,4分代表好,5分代表非常好。最后,将所有评分者的打分取平均值得到的分数就是MOS值。

3.声纹识别

声纹识别,也叫作说话人识别,是通过声音特征来判断说话人身份的技术,属于生物识别技术的一种。声纹可以简单理解为声音特征,但更准确地说,是由特殊的电声转换仪器绘制的声波特性的频谱图案,是各种声学特征图的集合。声纹因为具有长期稳定的特征,所以被视作重要的人体身份特征用于身份认证,在金融、证券、社保、公安、军事等领域有着广泛的应用。

声纹识别的基本原理是事先为每个说话人建立一个能描述其特征的声纹模型,之后再有新的未知语音输入的时候,才能判断说话人的身份。也就是说,声纹识别的流程有两个部分:声纹注册和声纹辨认。两者都需要先输入声音,然后进行端点检测,再做特征提取,只不过前者的后续流程是声纹注册和声纹模型,而后者的后续流程是进行声纹辨认和结果判断。

声纹识别主要有两种类型:一对一的说话人确认(speaker verification)和一对多的说话人辨认(speaker identification)。说话人确认,即判断待测语音是不是某人的声音。例如在银行、证券的非柜台业务办理中,就可以用说话人确认来判断操作者否是用户本人。说话人辨认,即判断待测语音是谁的声音。例如一些App上的声纹锁功能,就是用的说话人辨认来判断当下登录的用户是多个已注册声纹用户中的哪位。声纹识别原理如图1-7所示。

图1-7 声纹识别原理

4.语音分类

语音分类主要是对语音从语种、性别、年龄段等不同维度进行识别和分类。比如判断一段音频是普通话、粤语、英语还是日语,它的说话者是男性还是女性,年纪多大等。语音分类的处理流程和其他智能语音技术也很相似,包括语音输入、特征提取、特征分析、输出结果这四步,其核心算法仍然是机器学习中的各种聚类算法。

1.3.3 计算机视觉

计算机视觉是赋予机器“看”的能力的科学。它专注于创建可以像人类一样处理、分析和理解视觉数据(图像或视频)的数字系统。

那么计算机视觉是怎样让机器“看到”世界的呢?其实它的原理参考了人类视觉系统的工作方式。人类的视觉原理是:光线进入眼睛,眼睛把光线携带的信息转化成电信号传给大脑,大脑将其中关键的视觉信息提取出来进行抽象,分析其形状、运动等信息,处理完成之后就变成了视觉体验,人们也就意识到自己看到了东西。而机器的方法也是相似的:在输入视觉数据后,通过多层的神经网络,分层级一步一步地识别出图像的特征,最终通过多个层级的组合,在最后一层完成处理,输出结果。

很显然,这是一种深度学习的方法。其核心原则可以追溯到1959年的一项猫的视觉皮层实验——神经生理学家在实验中发现,初级视皮层的视觉处理总是从简单的结构开始,如定向的边缘。此后,计算机视觉从二维图像的分析识别起步,逐渐出现了以理解三维场景为目的的研究、基于特征的物体识别的研究、人脸识别的研究等不同主题的研究。虽然其中也不乏光学字符识别这样的落地成果,但计算机视觉迎来爆发还是在2012年首个深层卷积神经网络模型AlexNet赢得ImageNet图像分类竞赛之后。这不仅得益于强大算法与硬件发展形成的合力,我们每天在互联网上生成的大量公开可用的视觉数据也是这项技术发展迅速的原因。

目前的计算机视觉主要有下列研究任务。

(1)图像分类(image classification):对静止的图像内容进行分类描述,如判断图片上的是猫还是狗。

(2)目标检测(object detection):给定一张图像或是一个视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。

(3)语义分割(semantic segmentation):从字面意思上理解就是让计算机根据图像的语义来进行分割。它将整个图像分成像素组,然后对像素组进行标记和分类,试图在语义上理解图像中每个像素是什么。

(4)实例分割(instance segmentation):目标检测和语义分割的结合,它需要在图像中将目标检测出来,然后给每个像素打上标签。

(5)视频分类(video classification):对一个由多帧图像构成的、包含语音数据、包含运动信息等的视频对象进行分类描述。

(6)人体关键点检测(human keypoints detection):又称人体姿态估计(pose estimation),主要检测人体的一些关键点,如关节、五官等,通过人体关键节点的组合和追踪来识别人的运动与行为,描述人体姿态,预测人体行为等。

(7)场景文字识别(scene text recognition):将自然场景图片中的文字信息识别出来。和传统的光学字符识别不同,自然场景中文字展现的形式非常丰富,识别难度也更大。

(8)目标跟踪(object tracking):在特定场景跟踪某一个或多个特定感兴趣对象的过程。

目前,计算机视觉已广泛应用于众多行业,从交通、安防到医疗、零售、制造业等,且其市场还在不断扩大。预计到2023年,计算机视觉的市值将达到96.2亿美元。

1.3.4 知识图谱

知识图谱最早是谷歌在2012年提出的一个概念。谷歌的知识图谱是谷歌使用从各种来源收集的信息来增强其搜索引擎结果的知识库。在使用谷歌进行搜索时,搜索结果页面的右边会出现“知识面板”,展示关于搜索主题的汇总信息。这样用户就可以直接查看到这些信息内容,而不用一个个点开其他网站自己做汇总。

虽然知识图谱这个概念的提出并不算早,但其发展其实可以追溯到20世纪60年代符号主义学派提出的一种知识表示方法——语义网络(semantic networks)。20世纪80年代,哲学概念“本体”(ontology)又被引入人工智能领域来刻画知识。1989年,蒂姆·伯纳斯·李(Tim Berners-Lee)在欧洲高能物理研究中心发明了万维网,人们可以通过链接把自己的文档链入其中。在万维网概念的基础上,蒂姆在1998年又提出了语义网(Semantic Web)的概念。与万维网不同的是,链入语义网的不只是网页,还包括客观实际的实体(如人、机构、地点等)。2006年,蒂姆又强调语义网的本质是要建立开放数据之间的链接。再然后就是谷歌发布的基于知识图谱的搜索引擎了。后来,这个概念渐渐普及,成为人工智能一项重要的应用技术。

那么,人工智能领域的知识图谱究竟是什么?知识图谱可以解释为用图谱来表示的知识库。其中,知识库存储了可供计算机用来解决问题的信息或数据,这些信息或数据代表了关于世界的事实,即知识。而图谱则是一种由一些节点和边互相连接而成的结构。更明确地说,知识图谱旨在描述真实世界中存在的各种实体或概念及其关系,一般用“实体—关系—实体”或“实体—属性—属性值”的三元组表示,比如:“姚明—夫妻—叶莉”“姚明—身高—2.26米”。多个实体间通过关系互相连接,形成了网状的知识结构。

知识图谱按照功能和应用场景可以分为通用知识图谱与行业知识图谱。通用知识图谱面向的是通用领域,强调知识的广度,形态通常为结构化的百科知识,针对的使用者主要为普通用户;行业知识图谱则面向某一特定领域,强调知识的深度,通常需要基于该行业的数据库进行构建,针对的使用者为行业内的从业人员以及潜在的业内人士等。通用知识图谱中的知识,可以作为行业知识图谱构建的基础;而构建的行业知识图谱,也可以再融合到通用知识图谱中。通用知识图谱的广度和行业知识图谱的深度相互补充,将形成更加完善的知识图谱。

知识图谱最初因搜索而生,搜索自然也成为知识图谱目前最主要的应用场景之一。除此之外,知识图谱还被用于人机交互问答,提高机器人的知识水平,以及辅助进行数据分析与决策等。