AI赋能:AI重新定义产品经理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第3章 非技术出身的AI产品经理应该了解的AI技术

3.1 常见的AI技术

在本书的第1章,笔者提到了AI的概念、定义,本章主要对当下和未来一段时间内主流的AI技术进行概括性介绍和技术点解析,如果读者觉得某些技术点对自己有帮助,笔者建议读者结合自己的工作进一步搜集这方面的技术实战,并进行落地研究。

在笔者个人的方法论中,一个带有完整上下文且结构良好的知识框架在某种程度上比一些细枝末节的详细知识点要重要得多,一旦构建了一个完备的知识结构框架,那么,剩下要做的就是将一些零零碎碎的细节填补进框架而已;而反过来却很难,知识堆砌只会让你的思维混乱。

我们先看一下AI技术框架有哪些。

(1)自然语言生成。

(2)语音识别。

(3)虚拟代理。

(4)机器学习平台。

(5)针对AI优化的硬件和芯片:GPU和其他设备。

(6)决策管理技术。

(7)深度学习技术。

(8)生物特征识别技术。

(9)机器人技术。

(10)文本分析和自然语言处理。

下面笔者对以上技术进行深入分析。

3.1.1 自然语言生成

自然语言生成是人工智能和计算语言学的分支,语言生成系统是基于语言信息处理的计算机模型,其工作过程与自然语言分析相反,是从抽象的概念层次开始,通过选择并执行一定的语义和语法规则来生成文本的。开发NLG系统主要有两个目的。

第一,作为人们生活中的交流工具。这主要是从经济角度考虑的,借助生成系统在生产速度快、错误率低、能进行多语言生成等方面的优势,可以利用语言知识和领域知识快速生成分析报告、帮助消息等。

第二,作为检验特定语言理论的一种技术手段。从这一角度来看,无论是在理论上还是在描述上,其工作过程都与研究自然语言本身有着紧密的联系,涉及语言理论等方面的内容。自然语言生成作为理论语言学与人工智能语言学共同的研究课题,近年来发展迅速。国内在内容规划、系统复用性、人机接口等方面的发展尤为迅速,但在基本理论方面的关注较少,因此,这一部分将详细介绍自然语言生成系统的体系结构及其发展现状,希望对读者有所帮助。

1.NLG系统的体系结构

由于经典管道模型具有较好的鲁棒性、复用性和独立性,且具有广泛的运用,下面以其为基础介绍NLG系统的体系结构,如下图所示。

NLG系统的体系结构包括内容规划(也称宏观规划)、句子规划(也称微观规划)和表层生成三个基本功能模块。在生成过程中,系统根据应用目标和用户模式,通过相应的语义表示、语法分析、话语结构实现来生成文本,多数NLG系统的体系结构随具体应用的不同而有所不同。对于输出结果而言,多数NLG系统并不关心输出数据的格式、显示形式等细节问题,而仅仅关心ASCII文本,对有特定数据格式和多语言要求的输出而言,此部分工作将交由文档表示系统(也称后处理器)完成。

NLG系统的体系结构

(1)内容规划。

在NLG系统的体系结构中,内容规划器作为关键部件,主要完成内容确定和结构构造两项任务。顾名思义,内容确定主要解决生成文本表达什么内容的问题,它非常依赖具体的应用,需要大量领域知识的支持;结构构造描述已确定内容的结构,即用一定的结构将所要表达的内容组织起来,使其更加符合人类阅读和理解的习惯。从数据处理的流程来看,内容规划器的结构模型一般有两种设计方法:①串行设计方法。内容确定组件首先标记确定的内容消息,然后结构构造器在此基础上再构造结构树。②并行设计方法,即同时对内容和结构进行规划,两者同步进行。串行设计方法以数据模型为驱动,将内容确定和结构构造两个组件分离,以保证修改数据时二者相互独立。采用并行设计方法时,由于两个组件同步工作,得到的数据必然相互影响。

内容确定的域建模和消息定义。从存在论的角度分析,内容确定的关键是域建模,文本作为信息的载体,信息是实体属性的说明及实体间相互关系的描述,故讨论一个问题域要从域中实体的概念、类型、属性和相互关系四个方面来进行分析和判断。域建模主要包括两项工作:①分析大量应用域的范文集,从中抽取实体集,构造文档框架原型。文档框架应覆盖所需表达的全部内容,尤其是边界内容及非正常实例。②规划文档框架的内容成分,即按固定成分、输入成分和推导成分来确定内容。固定成分对应多数应用都包含的固定内容;输入成分来自特定应用的实际输入数据或知识库的有关知识,与具体应用密切相关;推导成分对应对输入数据和历史数据进行概括推理之后得到的数据,为具体应用服务。

域建模和消息形式化表示的核心是它能表示语言。在实际应用中,句子或子句表达的基本概念用消息表示,消息的逻辑形式定义有抽象语义结构、词格框架表示、罐装文本等多种方法,相应的粒度取决于输出文本的类型,没有必要要求所有消息的粒度都相同。通常,消息的形式定义主要从专家处或从成功案例中获得,是“修改—请教—更正”的反复过程,包括以下五个步骤。

① 选择对应于目标文本的范文集。

② 在对范文集进行分句的基础上进行短语划分,经整理后使短语对应消息。

③ 对消息进行聚合。

④ 确定消息的逻辑形式。

⑤ 同专家进行交流,反复修改更正。

内容确定的规则和依赖因素。NLG系统的目的是使生成的文本仿佛出自专家之手,故通过与专家一起对范文集进行分析、讨论和校验来形成规则,然后选择一定的规则来确定需要构造的内容。规则的获得过程如下。

① 对范文进行分析,求出消息全集,并根据需求反复修订消息定义。

② 使消息关联输入数据,形成面向具体应用的消息集。通常消息关联数据可采用直接选择、概括和推理等方法,所获信息分别对应文档内容的三种成分。

③ 文本可能有很多种类型,每个文本类型可能又使用多种消息。

系统通过调用不同的规则来确定内容,以上内容确定的过程也是求得规则的过程,一旦规则得以确定,相应的内容也就确定了。

④ 同专家进行交流,扩大范文集,重复上述过程。显然,NLG系统的内容确定依赖于交互目标、用户模式、输出约束以及知识库,不同的需求、不同的用户知识背景以及系统知识库的完备与否等都将直接影响内容确定。

内容规划器的输入与输出。对NLG系统而言,系统输入即内容规划器的输入,在多数应用系统中,系统输入通常被抽象描述为四元组(k, c, u, d)。其中,k表示拥有领域知识的一个或多个数据库和知识库,为生成文本提供知识或数据支持;c表示交互目标,不同目标对应不同的内容和结构,系统能根据不同目标进行响应;u表示用户模式,不同的用户对生成文本有不同的要求,通过指定用户类型、适应用户变化,使生成的文本更具个性;d表示历史描述,用于记录用户与系统交互的历史信息。内容规划的处理结果是规划文本,描述文档的基本内容和结构,其典型结构是一棵结构树,树的叶子节点对应用消息表示相应文档的具体内容,内部子节点相应文档的结构,可直接映射到文档的段落、章节等。

结构构造。文档不是句子的随机组合,只有经过一定结构的表示才能让用户更好地阅读和理解全文。对NLG系统而言,如果输出语义由单句子表达(如记录类型输出),就不需要考虑比句子更复杂的结构。除此以外,如果要考虑多行文本的输出,就必须考虑文档结构,具体地说,文本能被分析成树状结构。结构构造的主要任务就是构造结构树,用树中叶子节点表达具体消息。内部节点描述消息如何按照相应主题聚合、消息顺序、消息组之间的关系、哪些消息对应段落或章节等。有时,结构构造部件仅能指定以上部分信息,其余部分交给句子规划器处理,具体构造方法随不同生成技术而有所不同,通常包括自上而下和由下而上两种构造方法。

内容规划技术。在诸多实际应用中,尽管内容规划、句子规划和最后的文本实现有许多差别,但是使用的技术通常是差不多的,开发人员可以根据生成文本的表达能力的强弱来选择不同复杂程度的生成技术。当然,同一生成技术用于不同任务时,它使用的数据结构和实现方法也有所不同,有许多应用系统在不同的生成阶段采用不同的生成技术。一般有四种文本自动生成技术,分别是模板生成技术、模式生成技术、短语/规划扩展技术、属性特征生成技术。

下面主要介绍模式生成技术和短语/规划扩展技术。

① 模式生成技术(又称Schema技术)。模式生成技术是基于语言学中的谓词(Predicate)来表达文本结构的一种方法,它采用谓词来描述文本结构的规律,是文本的骨架表示,在该表示中也明确了文本中主题的表达顺序。文本都是由命题组成的,命题是指一个句子或者一个从句,谓词对文本中的命题进行分类,每个命题都被归纳为特定的谓词。同类型文本存在着一些标准的谓词组合模式来表示文本的结构。

相应结构树中的节点通常分为五种类型:Root、Schema、Predicate、Argument和Modifier。其中,Root是树的根节点,表示一篇文章。每个Root下面有若干个Schema子节点,一个Schema表示一个段落或句群,Schema下面的子节点可以继续是Schema,也可以是Predicate。一棵以Predicate为根的子树表示一个句子,它是文章的基本单位,句子中每一个基本语义成分均是Predicate的一个子节点,用Argument表示。若Argument有修饰成分,则用子节点Modifier标志。Argument或Modifier是树的叶子节点,树中每个节点都含有若干个槽,用来标记各种信息以供生成使用。

下面以“中央气象台在2017年10月10日17点发布的上海市天气预报”为例来说明内容规划的过程。我们为每个节点定义了六个槽,分别表示节点类型、具体数据、语义特征、语义角色、内部标志以及节点个数,如下图所示。

案例语句中的节点及槽

Predicate的最大特点就是表达简洁,不受文本篇幅的限制,用Schema表示的文本结构具有层次,即Schema可以递归嵌套。

② 短语/规划扩展技术(又称RST生成技术)。RST生成技术是基于描述文本结构的修辞结构理论。RST理论认为文章的各部分(无论是子句还是更大的组成单位)都是由一些为数不多、反复出现的关系按照一定的层次聚在一起的。多数NLG生成系统包含一个修辞关系集,而与具体应用对应的关系集是其子集。RST关系有Nucleus-Satellite和Multi-Nucleus两种模式。其中,Nucleus-Satellite模式包括核心部分(Nucleus)和附属部分(Satellite),核心部分表达基本命题,附属部分表达一个附属命题,多用于描述目的、因果、转折、背景等关系;Multi-Nucleus模式涉及一个或多个语段,它没有附属部分,多用于描述顺序、并列等关系。下面的例子简单说明了修辞结构树的节点结构。

(Node<Father> <Sons> <Rhet-Role> <Rhet-Relation>)

其中,<Father>代表父节点,<Sons>代表子节点,均对应于句子或子句。<Rhet-Role>是<Father>中与直接父节点具有修辞关系的节点,起修辞作用;<Rhet-Relation>是<Sons>节点间的修辞关系。

(2)句子规划。

通常,内容规划并没有完全指定输出文本的内容和结构,句子规划的任务就是进一步明确定义规划文本的细节,具体包括选词(Lexicalization)、聚合(Aggregation)、提交生成表达式(Referring Expression Generation)等工作。句子规划的输出是文本描述(TextSpecification),但其仍然不是最终输出文本,仍有句法、词法等特征需要进一步处理。一般文本描述的层次结构仍然对应逻辑结构,须经过文本表示系统实现从逻辑结构向物理结构(段落章节)的映射,才能最终生成文本。如下面两张图所示。

句子规划的黑板模型

句子规划的管道模型

上面两张图分别给出了句子规划的黑板模型和管道模型,其中管道模型运用较多,也易于实现。

① 选词(Lexicalization):在应用中,特定信息必须根据上下文环境、交互目标和实际因素(如对人的知识背景做强调等特定处理)用词或短语来表示。选择特定的词、语法结构以表示规划文本的信息意味着对规划文本进行消息映射,有时只有一种选词方法用来表示信息或信息片段,在多数系统中允许有多种选词方法。如Lexicalize(Spell)是递归过程,其中Spell是时间间隔参数,算法必须对Spell进行分析判断,根据Spell的长度来调用不同的类(词)以描述Spell。

② 聚合(Aggregation):为了能够消除句子间的冗余信息,增加可读性以及能从子句构造更复杂的句子,在句子规划中应用了聚合技术,通常按照粒度区分句子、词汇、语义、修辞和概念聚合等。从语言学角度来看,最好理解的聚合类型是句子聚合。实现句子聚合有四种方法。

● 简单连接。直接利用连接词对多个句子(或子句)进行组合。连接词的选择将依赖信息间的修辞关系,因简单连接没有改变内部成分的语法和词汇等内容,故其非常适用于在离表层生成较近的层次运用。

● 经共享成分连接。如主语相同、宾语相同或行为相同,可以保留相同部分且仅出现一次,而将其他成分进行聚合。是不是具有相同成分就可以聚合呢?不是。聚合操作必须了解语义,仅仅在字面上相同是不够的。

● 经共享结构连接。子句具有相同的结构,且仅个别成分不同,此时可以通过插入连接词连接不相同成分进行聚合。

● 句法修饰。这是最复杂的聚合形式,主要是对语义进行概念上的有界聚合和无界聚合。聚合是非常有目的地缩短文本的机制,因此语义简明和朴素易懂是选择聚合机制的基本要求。在许多应用中,聚合使句子语义更加复杂,但实际上有时并不需要,所以聚合应针对系统的具体目标,随应用而定。

③ 提交生成表达式:域是实体的集合,而实体是具体或抽象的讨论对象,用名词短语表示。在实现选词和聚合之后,提交生成表达式的工作就是让句子的表达更具语言色彩,对已经描述的对象进行指代以增加文本的可读性。重复性称谓是利用代词、固定名词、完整或缩略名词短语来指代实体。名词短语通常包括确指名词短语和非确指名词短语,固定名词和代词都是确指名词短语的子类。通常,非确指名词短语用来描述首次提及的实体,而随后提及的实体用确指名字短语表示。在生成系统实现指代的处理中,一方面应注意避免歧义和指代不当,过度“咬文嚼字”往往不实用;另一方面应尽量避免信息冗余。

(3)表层生成。

表层生成主要涉及结构实现和语言实现两部分。具体来讲就是将经句子规划后的文本描述映射至由文字、标点符号和结构注解信息组成的表层文本。生成算法首先按主谓宾的形式进行语法分析,并决定动词的时态和形态,再完成遍历、输出。其中,结构实现将结构注解信息映射至文本实际段落、章节等结构;语言实现将短语描述映射到实际表层的句子或句子片段。一般而言,NLG系统并不关心输出数据的格式等细节,而直接由文档处理系统将逻辑结构映射至表示设备。换句话说,我们能利用文档处理系统,如Word或其他网页浏览器作为后处理器来生成文档。

2.自然语言生成的发展与现状

自然语言生成已经发展了近六十年,在这段时间里,从事该领域研究的专家不断提出新的理论和方法,设计出新的生成模型,使语言生成的研究不断取得新的进展。语言生成的研究侧重于以下几个方面。

① 在特定的语法理论框架内更加广泛、更加深入地处理语言现象,如Fawcett的GeneSys生成系统。

② 在同一语法环境下生成多种语言,例如英国斯特林大学的Nigel多语言生成系统;上海交通大学的多语言天气预报发布系统。

③ 面向实际应用的开发,如颐和园的导游系统;中国科技大学的足球现场解说系统。

④ 在生成过程中对所要表达的信息进行语义和句法方面的聚合也是研究重点之一。语言生成的研究方向主要在语言表示形式、信息内容规划以及语言生成模型等方面。

3.1.2 语音识别

语音识别是指将人类语言转录和转换成对计算机应用软件来说有用的内容。

“与机器进行语音交流,让机器明白你说的是什么”是人们长期以来梦寐以求的事情。中国IoT校企联盟把语音识别形象地比作“机器的听觉系统”。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的AI技术。

语音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。语音识别技术在车联网领域得到了充分的应用,例如:在奔驰的车联网应用中,只需按一个键即可直通客服人员,车主通过口述即可设置目的地,交互变得安全、便捷。

语言是人类相互交流最常用、最有效、最重要和最方便的通信形式,语音是语言的声学表现。随着AI技术整体的飞速发展,语音识别技术也取得了突破性的成就,人与机器用自然语言进行对话的梦想逐步实现。语音识别技术的应用范围极为广泛,不仅涉及日常生活的方方面面,在军事领域也发挥着极其重要的作用。它是信息社会朝着智能化和自动化方向发展的关键技术,它使人们处理和获取信息变得更加便捷,从而提高了人们的工作效率。

(1)语音识别技术的发展历史。

语音识别技术始于20世纪50年代。在这一时期,语音识别技术的研究范围主要集中在对元音、辅音、数字以及孤立词的识别上。

在20世纪60年代,语音识别研究取得实质性进展。线性预测分析和动态规划的提出较好地解决了语音信号模型的产生和语音信号不等长两个问题,并通过语音信号的线性预测编码,有效解决了语音信号的特征提取等问题。

在20世纪70年代,语音识别技术取得突破性进展。基于模式匹配的动态时间规整(Dynamic Time Warping,后文简称DTW)技术基本成熟,出现了矢量量化(Vector Quantization,后文简称VQ)理论和隐马尔可夫模型(Hidden Markov Model,后文简称HMM)。

在20世纪80年代,语音识别任务开始从对孤立词、连接词的识别转向对大词汇量、非特定人、连续语音的识别,识别算法也从传统的基于标准模板匹配的方法转向基于统计模型的方法。在声学模型方面,由于HMM模型能够很好地描述语音的时变性和平稳性,开始被广泛应用于大词汇量连续语音识别(Large Vocabulary Continuous Speech Recognition,后文简称LVCSR)声学建模。在语言模型方面,以N元文法为代表的统计语言模型开始广泛应用于语音识别系统。在这一阶段,基于HMM/VQ、HMM/高斯混合模型、HMM/人工神经网络的语音建模方法开始广泛应用于LVCSR系统,语音识别技术取得新突破。

20世纪90年代以后,伴随着语音识别系统走向实用化,语音识别在细化模型设计、提取和优化参数、系统的自适应方面取得较大进展。同时,人们更多地关注话者自适应、听觉模型、快速搜索识别算法以及新的语言模型研究等课题。此外,语音识别技术开始与其他领域的相关技术相结合,以提高识别的准确率,实现语音识别技术的产品化。

近年来,科大讯飞的语音识别系统在语音平台、通信增值、嵌入式、教育、行业软件和系统集成等方向取得突破。

(2)语音识别的基础概念。

语音识别是将人类的声音信号转化为文字或者指令的过程。语音识别以语音为研究对象,它是语音信号处理的一个重要研究方向,是模式识别的一个分支。

语音识别涉及计算机、人工智能、数字信号处理、模式识别、声学、语言学和认知科学等许多学科,是一个多学科综合性的研究领域。

根据不同限制条件下的研究任务,语音识别产生了不同的研究领域。这些领域包括:根据说话人的说话方式,可分为孤立字(词)、连接词和连续语音识别系统;根据对说话人的依赖程度,可分为特定人和非特定人语音识别系统;根据词汇量的大小,可分为小词汇量、中等词汇量、大词汇量以及无限词汇量语音识别系统。

(3)语音识别的基本原理。

从语音识别模型的角度来讲,主流的语音识别理论是建立在统计模式识别基础之上的。语音识别的目标是利用语音学与语言学的相关知识,把输入的语音特征矢量序列 X = X1, X2, ⋯, XT转化成词序列 W = X1, X2, ⋯, WN并输出。基于最大后验概率的语音识别模型如下式所示。

上式表明,要寻找最可能的词序列W,应该使PX|W)与PW)的乘积达到最大。其中,PX|W)是特征矢量序列X在给定W条件下的条件概率,由声学模型决定。PW)是W 独立于语音特征矢量的先验概率,由语言模型决定。由于将概率取对数不影响W的选取,第四个等式成立。logPX|W)与logPW)分别表示声学得分与语言学得分,且分别通过声学模型与语言模型计算得到。λ 是平衡声学模型与语言模型的权重。从语音识别系统构成的角度讲,一个完整的语音识别系统包括特征提取、声学模型、语言模型、搜索算法等模块。语音识别系统本质上是一种多维模式识别系统,对于不同的语音识别系统,人们所采用的具体识别方法及技术不同,但其基本原理是相同的,即将采集到的语音信号送到特征提取模块进行处理,将得到的语音特征参数送入模式库模块进行处理,由声音模式匹配模块根据模式库对该段语音进行识别,最后得出识别结果。

语音识别系统的基本原理如下图所示。

语音识别系统的基本原理

预处理模块去除原始语音信号中的次要信息及背景噪声等,包括抗混叠滤波、预加重、模/数转换、自动增益控制等处理过程,将语音信号数字化。特征提取模块对语音的声学参数进行分析后提取出语音特征参数,形成特征矢量序列。语音识别系统常用的特征参数有短时平均幅度、短时平均能量、线性预测编码系数、短时频谱等。特征提取和特征选择是构建系统的关键,对改善识别效果极为重要。

由于语音信号本质上属于非平稳信号,对语音信号的分析是建立在短时平稳性假设之上的。在对语音信号作短时平稳假设以后,通过对语音信号进行加强,实现短时语音片段上的特征提取。这些短时片段被称为帧,以帧为单位的特征矢量序列构成语音识别系统的输入。由于梅尔倒谱系数及感知线性预测系数能够从人耳听觉特性的角度准确刻画语音信号,其已经成为主流的语音特征。人们在使用梅尔倒谱系数及感知线性预测系数时,通常加上它们的一阶、二阶差分,以引入信号特征的动态特征。声学模型是语音识别系统中最为重要的部分之一,声学建模涉及建模单元选取、模型状态聚类、模型参数估计等很多方面。在LVCSR系统中,普遍采用上下文相关的模型作为基本建模单元,以刻画连续语音的协同发音现象。在考虑了语境的影响后,声学模型的数量急剧增加,LVCSR系统通常采用状态聚类的方法压缩声学参数的数量,以简化模型的训练。在训练过程中,系统对若干次训练语音进行预处理,并通过特征提取得到特征矢量序列,然后由特征建模模块建立训练语音的参考模式库。

搜索是在指定的空间中,按照一定的优化准则,寻找最优词序列的过程。搜索的本质是问题求解,其广泛应用于语音识别、机器翻译等人工智能和模式识别的各个领域。它通过利用已掌握的知识(声学知识、语音学知识、词典知识、语言模型知识等),在状态空间中找到最优的状态序列。最终的词序列是对输入的语音信号在一定准则下的一个最优描述。在识别阶段,将输入语音的特征矢量参数同训练得到的参考模式库中的模式进行相似度比较,将相似度最高的模式所属的类别作为识别中间的候选结果输出。为了提高识别的正确率,在后处理模块中对得到的候选识别结果继续进行处理,包括通过Lattice重打分以融合更高元的语言模型,通过置信度度量得到识别结果的可靠程度等。最终通过增加约束,得到更可靠的识别结果。

(4)声学建模方法。

常用的声学建模方法包含以下三种:基于模式匹配的动态时间规整法(DTW法);隐马尔可夫模型法(HMM法);基于人工神经网络的识别法(ANN法)。

DTW法是较早的一种模式匹配的方法。它基于动态规划的思想,解决孤立词语音识别中语音信号特征参数序列长度不一致的模式匹配问题。在实际应用中,DTW法通过计算已预处理、分帧的语音信号与参考模式之间的相似度,再按照某种距离测度计算出模式间的相似度并选择最佳路径。

HMM法是针对语音信号的时间序列结构建立的统计模型,是在马尔可夫链的基础上发展起来的一种统计识别方法。HMM法可模仿人类的言语过程,可视作一个双重随机过程:一个是用具有有限状态数的马尔可夫链来模拟语音信号统计特性变化的随机过程,另一个是观测与马尔可夫链的每一个状态相关联的序列的随机过程。

ANN法以数学模型模拟神经元活动,将人工神经网络中大量神经元并行分布运算的原理、高效的学习算法以及对人的认知系统的模仿能力充分运用到语音识别领域,并结合神经网络和隐马尔可夫模型的识别算法,克服了ANN在描述语音信号时间动态特性方面的缺点,进一步提高了语音识别系统的鲁棒性和准确率。其中成功的方法就是在混合模型中用ANN替代高斯混合模型估计音素或状态的后验概率。2017年,微软Cortana以深度神经网络代替多层感知机形成的混合模型系统大大提高了语音识别的准确率。

(5)语音识别的应用范围。

语音输入使得人们可以甩掉键盘,通过识别语音中的要求、请求、命令或询问来做出正确的响应,这样既可以克服键盘输入速度慢、极易出差错的缺点,又有利于缩短系统的反应时间,使人机交流变得简便易行,比如声控语音拨号系统、声控智能玩具、声控智能家电等。在智能对话查询系统中,人们通过语音命令,可以从远端的数据库系统查询与提取有关信息,享受自然、友好的数据库检索服务。语音识别技术还可以应用于自动口语翻译,即通过将口语识别技术、机器翻译技术、语音合成技术相结合,将一种语言的语音输入翻译为另一种语言的语音输出,实现跨语言交流。

语音识别技术在军事领域里也有着极为重要的应用价值和极其广阔的应用空间。一些语音识别技术就是为军事活动而研发,并在军事领域率先应用、首获成效的,军事应用对语音识别系统的识别精度、响应时间、恶劣环境下的鲁棒性都提出了更高的要求。语音识别技术已经在军事指挥和控制自动化方面得以应用。比如,将语音识别技术应用于战斗机的飞行控制,可快速提高作战效率、减轻飞行员的工作负担。飞行员利用语音输入代替传统的手动操作,控制各种开关和设备,把时间和精力集中于对攻击目标的判断和完成其他操作上,可更快获得信息来发挥战术优势。

小结:语音识别是一门交叉学科。近年来,语音识别技术取得显著进步,早已经开始从实验室走向市场。语音识别技术已经进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等领域。语音识别的研究工作对于信息化社会的发展,提高人民生活水平等有着深远的影响。随着计算机信息技术的不断发展,语音识别技术将取得更多重大突破,语音识别系统的研究将会更加深入,语音识别有着更加广阔的发展空间。

3.1.3 虚拟代理

虚拟代理主要包括智能客服及智能家居管理器。

在客户关系管理里,虚拟代理(Virtual Agent,有时候也被称作智能代理)是自动答话机器人程序,它如同在线客户服务代表那样为组织服务。由于虚拟代理具有类似人类的外表且能正确回答用户的问题,因此适于作为向个人提供服务的自动交互工具。结合图形界面之后,虚拟代理还可以帮助人们完成信息分配、下达命令和预订等工作。使用虚拟代理完成客户应答有着相当好的效果,比如,客户和虚拟代理谈话的时间要比和人工客服谈话的时间长,因为客户会对自动应答感到新奇。虚拟代理通常是用已经设定好的内容来回答不同的问题。如果客户对预定的回答感到不满并且变得粗鲁时,虚拟代理就会像人一样出现“不耐烦”。比如,当客户说虚拟代理很蠢的时候,一个可能的应答是:“我是死的。你在侮辱一个死的东西。我们俩谁更像字典里定义的傻呢?”根据某虚拟代理提供商的看法,自动应答能够有效减少客服成本,鼓励客户自我服务,使得客户更忠实,并可以作为企业的一个品牌营销工具。例如,中国电信公司的一名人工客服一个月的人力成本超过1万元,而虚拟代理只需要2000元就可以完成一个座席的工作。

在广义范畴上,虚拟代理是智能答话机器人的具体应用,属于智能语音技术在客服系统中的应用。

客服系统是企业与客户之间重要的沟通渠道,双方通过信息交互完成服务,从客服行业的发展现状看,占比最大的信息交互方式是语音交互。由于语音信息具有非结构化的特点,因此,将语音信息转换为结构化信息需要人来完成,人的低效率造成了大量信息不能及时得到处理、分析,因此不能有效提高服务水平。要解决这一问题,需要对语音信息进行自动化、智能化处理,将原来主要由人完成的工作交给系统自动完成,人只需要进行辅助处理。这样既能减少人力资源的投入,又能提高客服系统的处理效率和智能化程度,改善客户体验。客服系统存在的问题随着业务不断发展而不断变大,大的客服系统(如携程的客服系统,飞猪的客服系统以及饿了么的客服系统)的座席客服的数量越来越大,而客户对服务的质量要求也越来越高,传统客服系统在语音信息处理上的局限性制约了系统服务能力的提升。

我们先看服务方面的问题。服务方面存在的问题并非是语音信息处理的局限性导致的,而是由于业务的多样性、复杂性带来的海量信息不能得到快速、有效处理导致的。随着移动通信技术的发展,业务的不断增加,如4G、5G等新业务的上线,客服系统的数据量越来越大。加上原有的传统业务,知识库的内容急剧增加,且更新频繁,客服人员与客户对话时需要从庞大的知识库体系中快速搜索、定位知识点。此外,接口众多导致客服人员在服务过程中需要查询包括业务运营支撑系统(BOOS)、客户关系管理系统(CRM)在内的多个系统的数据内容才能全面回答客户的问题,多系统、多接口的应用模式严重影响了工作效率。此外,传统客服系统的服务过度依赖人工处理,由于人员流动、培训效果不一致等问题,传统的人工服务带来了服务不一致、客户体验和情绪感知不足等问题,降低了客户的满意度。

除了服务方面,运营管理方面的问题主要是语音信息处理的局限性带来的直接问题。①数据单薄,单一客服系统运营分析的主要数据来源是座席代表所标注的来电原因和投诉内容等信息,信息较为有限,不够全面,且受到客服人员素质的制约。②数据资源浪费,对话录音文件中包含着客户需求、竞争对手情报等大量信息,但录音文件是非结构化数据,无法对其进行查询、统计和分析,这造成了数据资源的浪费。③质量管控的及时性差,传统的座席质量管控模式为事后质检、事后分析,只有等出现了问题才去解决问题,无法在座席服务过程中管控通话质量并预警问题。

虚拟代理技术的基础是智能语音技术,主要包括语音合成技术(TTS)和语音识别技术(ASR)。语音合成技术发展较早,已较为成熟,这里不做具体介绍。语音识别技术是让系统或者机器能够理解人类说的话,其根本目的是创建一种具有听觉功能的系统或机器,使系统或机器能直接理解人的意图并做出相应的反应,其基本原理是使用含有语音识别技术的智能体接收声音信号,将信号转换成文字,然后根据需要做记录,并进行相应的操作。

语音识别系统本质上是多维模式识别系统,它的识别过程与人对语言的处理过程基本一致,语音识别一般分为两个过程:系统的识别过程和系统的训练过程。在语音识别系统的训练阶段建立对应的模式库,库中每个词都对应一个参考模式,它由这个词重复发音多遍,再经特征提取和某种训练得到。识别阶段是整个系统的核心,它的作用是按照一定的规则求得待测语音的特征参数及语音信息,并与模式库中的模型进行匹配,匹配度最高的结果即为识别结果,语音识别系统的结构如下图所示。

语言识别系统的结构

笔者在后面的章节中会用实际案例分析虚拟代理的使用场景,这里先简单介绍一下智能语音技术的需求场景。要想突破传统语音处理的局限,就要实现系统对语音信息的自动化处理,通过建立具备智能语音分析能力的语音识别平台,实现对客户语音的实时识别及关联处理,同时实现对语音文件的统一分析,提供支撑业务运营管理的有效工具,语音分析引擎对送入的语音进行文字转写、维度结合后生成索引文件,这些结构化的索引文件包含了语音的所有信息,索引文件存储在数据仓库中,通过对海量录音文件、音频文件进行分析、处理,对语音中的知识进行挖掘,对语音文件进行快速检索。

(1)通话语音实时识别。

通话过程中的语音识别包括通话过程中的关键字识别及基于关键词的整句及全文识别,对于自动语音业务,语音实时识别能够改变主要由IVR(互动式语音应答)语音导航菜单带动的长时段、低效率的业务模式,通过实时语音识别能快速将客户直接引导至需要或感兴趣的业务。对于人工处理业务,语音实时识别系统通过给每个座席配备一个语音助手,能够在通话过程中对客户信息进行自动查询,对知识进行高效检索,对易错点进行提醒,从而提升座席服务效率,实现来电数据实时分析,同时能为其他分析系统提供数据。借助通话语音实时识别功能,可以在现有事后质检的基础上,增加事中质检的功能,对客服人员实时通话中的服务质量进行实时监控并进行预警。

(2)智能语音质检。

建立了智能化质检系统后,可以在对录音进行全文分析的基础上,将服务禁用语、热点词、空白音、抢话等作为质检索引条件送入客服质检系统,同时为客服质检系统提供看听结合的录音听取页面,扩大质检的覆盖范围,提升质检效率。截至2018年,客服中心的质检方式仍较为传统,由管理人员随机抽调录音进行检查。检查过程为播放录音、听取通话内容,这种方式效率低下,且检查范围有限。智能化的质检系统将彻底改变这种低效、片面的工作模式,全面提高管理能力,同时减少人力投入。

录音文件挖掘分析能力将语音转换为结构化文字以后,可以基于业务进行分析,直接了解客户的兴趣点、咨询热点,深入挖掘产品存在的问题,控制风险,快速推动产品和营销方案优化,从根源上提升客户满意度。

一般来说,客户与客服座席的每一次交互都能反映出其当前的消费情况和以后的消费行为趋势,客户对产品的喜好程度、关注焦点、心理预期等都会通过通话向企业反馈,可针对“客户来电原因”“希望解决的问题”“关注的焦点”等进行更深层的数据挖掘,同时将这些客户行为特征与客户年龄段、ARPU(平均每个用户每月贡献的业务收入)值、套餐类型、业务偏好、市场活动等信息综合起来进行运营分析。

通过分析客户行为,预测客户的行为趋势,可以改变被动响应突发的话务高峰和话务低谷的情况,提高话务分流的超前性及准确性,通过更合理的人工分配来节省人力成本,可以对市场推广的效果、新产品推出及资费变更后的客户反馈进行即时分析,快速、准确地获得客户建议,了解相应策略的效果,改变运营思路和方式。

通过应用智能语音分析技术将录音转化为结构化的索引信息,可以对客户行为数据进行数据挖掘,并将得到的结果应用于市场营销、客户感知、品牌推广、提升首次呼叫解决率等方面。对提升服务水平、提高客户满意度、提升运营管理水平、推进客服中心市场化等都有着重要的意义。

智能语音技术发展迅速,苹果的Siri、谷歌的Assistant、微软的Cortana、小米的小爱同学等产品各有千秋。

通过多年的技术改进,语音识别的准确率有了较大提升,用户通过语言能完成更多操作。这些语音助手均采用在本地进行语音采集、在云端进行语音识别、在本地执行语音指令的解决方案,客服系统需要综合使用实时语音助手及离线语音分析、关联分析等功能,其核心是实现实时语音助手的功能。在实现语音识别的基础上,其他功能(如离线语音分析、关联分析等功能)只是基础功能的扩展,根据需求进行定制开发即可。

截至本书完稿时(2018年),国内的科大讯飞已经能提供智能语音服务,包括智能客服服务和语音分析服务。智能客服服务基于科大讯飞智能语音技术,提供语音合成、语音识别、声纹识别及自然语言理解能力,可以与客户进行基于自然语音或文字的交互,智能引导客户并响应客户需求。语音分析服务能对海量的录音数据进行结构化处理,形成可查询的数据,辅助企业了解客户心声,挖掘客户潜在需求,同时诊断现有管理体系,提升服务水平。

小结:智能代理能够帮助买卖双方协商。所谓的代理、智能代理、软件代理或软件机器人实际上都是指同一种程序,它可以代表个人或组织完成信息收集、过滤和调整等工作。

3.1.4 机器学习平台

机器学习平台不仅提供模型,具备将模型部署到应用软件、流程及其他机器的计算能力,还提供算法、接口、开发工具包和训练工具包。

学习是人类具有的一种重要能力,但究竟什么是机器学习,长期以来却众说纷纭。社会学家、逻辑学家和心理学家都有自己的看法。

Langley定义的机器学习是:“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验中学习改善具体算法的性能。”(Machine learning is a science of the artificial. The field's main objects of study are artifacts, specifically algorithms that improve their performance with experience.)

Tom Mitchell定义的机器学习是:“机器学习是对通过经验自动改进的计算机算法的研究。”(Machine learning is the study of computer algorithms that improve automatically through experience.)

Alpaydin也提出了自己对机器学习的定义:“机器学习是用数据或以往的经验,优化计算机程序的性能。”(Machine learning is programming computers to optimize a performance criterion using example data or past experience.)

为了便于讨论和估计学科的进展,笔者认为有必要对机器学习给出自己的定义,即使这种定义是不完全的、不充分的。笔者认为:机器学习是研究如何使用机器来模拟人类学习活动的一门学科。稍为严格的提法是:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问。这里所说的“机器”,指的就是计算机,包括电子计算机、中子计算机、光子计算机、神经计算机、量子计算机等。

机器能否像人类一样具有学习能力?1959年,美国的塞缪尔设计了一个下棋程序,这个程序具有学习能力,它可以在对弈中提升自己的棋艺。4年后,这个程序战胜了设计者本人。又过了3年,这个程序战胜了美国一位连续8年不曾失败的冠军。这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题。

机器的能力能否超过人类?很多人对此持否定态度,他们的一个主要论据是:机器是人造的,其性能和动作完全是由设计者规定的,因此,无论如何,其能力也不会超过设计者本人。这种意见对不具备学习能力的机器来说是对的,但是对具备学习能力的机器来说就不一定了,对于具备学习能力的机器,其能力在应用中会不断提高。

机器学习已经有了十分广泛的应用,如数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎优化、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测定、手写文字识别等。

1.大数据背景下的机器学习

我们知道,机器学习是在海量、复杂多样、变化快的大数据环境下利用机器算力学习设计好的算法。

随着数据量的爆炸式增长,数据以前所未有的速度积累,大数据概念受到越来越多的关注。大数据正在给数据密集型企业带来丰厚的利润。据统计,谷歌的品牌价值在2017年以1094亿美元排名北美第一。学术界和产业界关于大数据的认识也在逐步清晰并形成共识。在2011年的语义技术信息(Semantic Technologies Information, STI)峰会上,与会的语义网络和数据库学者讨论了语义网络、语义技术及数据库领域在大数据时代所面临的挑战。

Michael L.Brodie认为在真实、无模式和复杂的大数据或大数据语义网络中进行有意义的数据集成需要多学科、多技术交叉。

Bizer列举了在大数据时代研究Web数据的3个挑战:①Web数据的拓扑结构,互联网中存在大量不同形式的数据,各种类型的数据的量都非常大;②Web数据的特点,这对于数据集成和大数据处理来说是一个值得研究的问题;③如何利用一些公开的、可用的预先获取的Web数据集。

Michael L.Brodie认为未来的挑战都将围绕数据集成、大规模资源描述框架、数据质量评定展开。

Peter Boncz认为如果人们想更广泛地使用语义网络,存在两大挑战:①缺乏好的使用案例;②现有的数据集成方法使得创建链接非常困难。

在产业方面,大数据是现有产业升级与新产业诞生的重要推动力量。随着大数据时代的到来,产业界的需求与关注点发生了重大转变。企业关注的重点转向数据,计算机行业正在转变为真正的信息行业,从追求计算速度转变为关注大数据处理能力,软件也将从编程为主转变为以数据处理为主。大数据处理的兴起也改变着云计算的发展方向,使其进入以分析即服务(Analytics as a Service, AaaS)为主要标志的Cloud 2.0时代。

机器学习在学术界和产业界都有巨大的实用价值。由于大数据具有大量、复杂的特性,传统的、在小规模数据上适用的很多机器学习算法已不再适用。因此,这里重点剖析大数据环境下的机器学习算法。并行是处理大数据的主流方法,本部分将单独介绍一些并行算法,并引出大数据环境下机器学习研究的主要问题。

机器学习算法离不开大数据的训练。有关大数据的定义有多种,狭义的定义是:大数据是指不能装载进计算机内部存储器的数据。尽管这是一个非正式的定义,但易于理解。广义的定义为:大数据是指无法在可容忍的时间内用传统IT技术和软硬件工具对其进行感知、获取、管理、处理和服务的数据集合。

(1)大数据有多种特点。

从最开始的3V模型到扩展的4V模型都是以大数据的特点命名的。Larey的3V模型包括体积(Volume)、速度(Velocity)和多样性(Variety)。人们对4V模型中的第4个V有多种解释,如变化性(Variability)、虚拟化(Virtual)、价值(Value)等。针对这些特点,有的大数据专家认为在大数据时代,知识解析、机器与人类共同工作及智能分析系统将会扮演重要角色,需要一种智能分析接口将人类与计算机世界进行连接,否则人类将被淹没在大数据的洪流中。

(2)大数据环境下机器学习的原理。

随着大数据时代的到来,大数据逐渐成为学术界和产业界的热点,已在很多技术和行业广泛应用,从大规模数据库到商业智能和数据挖掘;从搜索引擎到推荐系统,再到最新的语音识别、机器翻译等。大数据算法的设计、分析和工程实现涉及很多方面,包括大规模并行计算、流算法、云技术等。由于大数据存在复杂、高维、多变等特性,如何从真实、凌乱、无模式的大数据中挖掘出人类感兴趣的知识,需要更深刻的机器学习理论进行指导。

传统机器学习的研究内容主要包括如下4项:①理解并且模拟人类的学习过程;②针对计算机系统和人类用户之间的自然语言接口;③利用不完全信息进行推理的能力,即自动规划问题;④构造可发现新事物的程序。传统机器学习面临的一个新的挑战是如何处理大数据。包含大规模数据的机器学习问题是普遍存在的。但是,由于现有的许多机器学习算法是基于内存的,而大数据却无法装载进计算机内存,故现有的诸多算法不能处理大数据。如何提出新的机器学习算法以适应大数据处理的需求,是大数据时代的热点研究方向之一。

(3)大数据环境下的机器学习算法。

数据、算法、算力是笔者在第1章提出来的构成人工智能必不可少的因素。大数据处理策略包括分治策略与抽样。分治策略是一种处理大数据问题的计算范例,在分布式和并行计算有很大发展的情况下,分治策略显得尤为重要。一般来说,数据中不同样本对学习结果的重要程度也不相同。一些冗余和噪声数据不仅耗费大量的存储空间,降低学习算法的运行效率,还会影响学习精度。因此,应该依据一定的性能标准(如保持样本的分布、拓扑结构及保持分类精度等)选择有代表性的样本形成原样本空间的一个子集,之后在这个子集上构造学习方法,完成学习任务。这样能在不降低甚至提高某方面性能的基础上,最大限度地降低时间、空间的耗费。

在大数据的背景下,样本选取的需求更迫切。但已有的大部分样本选取方法只适用于规模较小的数据集,如传统的压缩最近邻(Condensed Nearest Neighbor, CNN)、约减最近邻(Reduced Nearest Neighbor, RNN)、编辑最近邻(Edited Nearest Neighbor, ENN),它们的核心概念都是最小一致子集,而要找到这个子集需要逐一测试样本。可以基于局部几何和概率分布来选择分类边缘和边界样本,以保持原有数据的空间信息,但须计算每个样本的k近邻。在CNN的基础上,部分文献提出了一种快速压缩最近邻算法(Fast CNN, FCNN),这类文献倾向于选择分类边界的样本。Michael I.Jordan(美国国家科学院、美国国家工程院、美国国家医学院院士,机器学习泰斗)提出了一些关于大数据的统计推理方法。当用分治算法来处理统计推理问题时,需要从庞大的数据集中获取置信区间。Bootstrap理论通过重新采样数据来获取评估值的波动范围,进而获取置信区间,然而这对大数据是不可行的。数据的不完全抽样会导致错误的波动范围,必须进行更正以提供校准的统计推理。Jordan提出的Bag of Little Bootstraps可以避免这一问题,不仅继承Bootstrap的理论性质,并且有许多计算上的优势。Michael I.Jordan讨论的另一个问题是大规模矩阵计算。分治策略是一种启发式策略,在实际应用中会产生较好的效果,但当试图描述分治算法的统计性能时,新的理论问题就会出现。基于此,Michael I.Jordan提出基于随机矩阵的浓度定理。

综上所述,数据分治与并行处理策略是大数据处理的基本策略,但分治与并行处理策略较少利用大数据的分布知识,且影响大数据处理的负载均衡与计算效率。如何用大数据的分布知识优化负载均衡是一个亟待解决的问题。

(4)大数据的特征选择。

在数据挖掘、文档分类和多媒体索引等新兴领域中,所面临的数据对象往往是大数据集,其中包含的属性数和记录数都很大,这导致处理算法的执行效率低下。通过属性选择可剔除无关属性,增加分析任务的有效性,从而提高模型精度,减少运行时间。大数据处理的一个巨大挑战是如何处理高维、稀疏数据。在大数据环境下,网络流量、通信记录、大规模社会网络产生大量、多方面的高维数据,张量表示法提供了一种表示大数据的方法,故张量分解成为一种重要的汇总和分析工具。Kolda(基于标签的个性化信息设计推荐模型的专家)提出了一种高效使用内存的Tucker分解方法(Memory Efficient Tucker Decomposition, MET),用于解决传统的张量分解算法无法解决的时间和空间利用问题。MET在分解的过程中基于可用内存自适应,选择正确的执行策略。该算法在充分利用可用内存的前提下最大化计算速度。MET避免处理计算过程中产生的大量零星中间结果,自适应选择操作顺序,不仅消除了中间溢出问题,而且在不减少精确度的前提下节省了内存。

另一方面,Walid Wahba探讨了涉及离散、含噪声、不完全相异数据的统计/机器学习模型的设计方法——正则化核估计(Regularized Kernel Estimation, RKE)和鲁棒流形展开(Robust Manifold Unfolding, RMU)。这些方法使用训练集中对象之间相异的信息,得到一个非负的低阶正定矩阵,用于将对象嵌入到一个低维欧几里得空间,其坐标可被用作各种学习模式中的属性。同样,大多数在线学习研究需访问训练实例的所有属性/特征,当获得完整的属性/特征集合的代价很昂贵时,这样的经典场景不再适用。

为了突破此限制,Hoi Kwan Lau等人通过研究稀疏正则化和截断技术,解决如何利用固定数目的活跃特征来准确预测在线特征,并提出一个有效的算法,评估所提出算法在一些公共数据集上进行在线特征选择的经验性能,并证明用在线特征选择技术解决现实世界的大数据挖掘问题比一些著名的批处理特征选择算法具有更显著的可扩展性。

传统的自组织映射(Self Organizing Map, SOM)可用于特征提取,但当数据集较大时,SOM速度慢的缺点会变得突出,Alaa Sagheer等人提出了一种快速自组织映射(Fast SOM, FSOM),主要用于解决该问题。该方法的主要思想是:大数据的主要信息分布于特征空间的某一区域,如果能找到这些区域并直接在这些区域提取信息,而不是在整个数据空间提取信息,则能大幅度减少所用时间。

Quevedo等人基于输入变量的有用性,采用经典技术(如相关性和正交性)的简单组合,提出一种输入变量排名算法,用于大数据降维和特征提取,取得了良好的效果。

Gheyas等人结合模拟退火算法、遗传算法、贪心算法及神经网络算法的优点,提出一种模拟退火和遗传算法(Simulated Annealing and Genetic Algorithm, SAGA)。混合算法用于解决选择最优化特征子集的NP时间问题。实验结果表明,该算法能更好地最优化特征子集,并降低时间复杂度。Gheyas等人在论文结尾之处指出,很少有一种单一算法能解决所有问题,但如果能将多种算法结合,则能较好地弥补算法的不足。

Pal等人提出了一种基于支持向量机(Support Vector Machine, SVM)的用于分类的特征选择方法,SVM分类算法的准确度与数据集的特征数和数据集大小有关。因此,在分类前对数据进行特征选择有利于提高分类准确度。特征选择方法也很重要,用不同的特征选择方法选出来的特征区别很大。

Sun等人提出一种用于分类的特征选择算法。该算法利用局部学习理论首先将复杂的非线性问题转换为一组线性问题,然后在最大间隔的框架下学习特征关联性。该算法基于机器学习和数值分析等技术,不需假设有关数据的分布。由于不需任何启发搜索,该算法在含有大量不相关特征的数据集上也具有较好的性能。

Hua等人对比一些现有的特征选择方法,提出一种特征标签分布式模型,这个模型中可用特征的数量与它们在真实数据中是一样的,模型在一些高维数据上的测试结果显示,不同的特征选择算法在不同的模型条件下性能不一样,它们与样本数量、全局和异构标记的数量有关。该模型不仅适用于论文中提到的特征选择算法,也适用于其他分类算法和特征选择算法。

Song等人研究降维技术在轨迹聚类中的作用,运用3种主流降维方法(SVD、RP和PCA),结合最通用的轨迹聚类算法,可以提高算法性能。

综上所述,由于大数据存在复杂、高维、多变等特性,如何采用降维和特征选择技术降低处理大数据的难度,是大数据特征选择技术迫切需要解决的问题。

(5)大数据分类。

监督学习(分类)面临的一个新挑战是如何处理大数据。包含大规模数据的分类问题是普遍存在的,但是传统分类算法不能处理大数据。下面介绍几种大数据时代的分类方法。

① SVM分类。传统统计机器学习方法用于大数据分类有两大瓶颈问题:计算密集型方法几乎不能用于大规模数据集;鲁棒和非参数的置信区间的拟合模型的预测往往是未知的。针对上述问题,Lau等人为SVM提出一种在线学习算法,用于处理按顺序逐渐输入的数据的分类问题。该算法速度更快,所用的支持向量的个数更少,并具有更优的泛化能力。Laskov等人提出一种快速、数值稳定和鲁棒的增量SVM学习方法。黄广斌等提出一种大边缘分类器M4,与其他大边缘分类器或局部或全局地构建分离超平面不同,该模型能局部和全局地学习判定边界。SVM和极大极小概率机(Minimax Probability Machine, MPM)与该模型有密切联系,该模型具有重要理论意义。针对大规模数据的分类问题,在增量核主成分分析(Incremental Kernel PCA)和基于共轭梯度的最小二乘支持向量机(Least Squares SVM, LS-SVM)算法基础之上,Kim等人提出适用于大数据的特征提取和分类算法。该算法所需内存较少,无须存储较大矩阵,可更好地解决大规模数据的分类问题。

② 决策树分类。传统决策树作为一种经典的分类学习算法,在处理大数据时存在内存开销过大的问题。Franco Arcega等人提出一种从大规模数据中构造决策树的方法,解决当前算法中的一些限制条件,新方法可利用所有的训练集数据,但不需将它们都保存在内存中。实验表明,该方法比决策树算法的计算速度更快。杨强(笔者注:香港科技大学教授,机器学习算法专家)等人提出一种增量优化的快速决策树算法(Incrementally Optimized Very Fast Decision Tree, iOVFDT)用于处理带有噪声的大数据,与传统的挖掘大数据的决策树算法相比,该算法的主要优势是实时挖掘能力,这使得当移动数据流是无限时,它能存储完整的数据用于再训练。Ben Haim提出一种构建决策树分类器的算法。该算法在分布式环境中运行,适用于大数据集和流数据,与串行决策树相比,该方法在精度误差近似的前提下能提高效率。

③ 神经网络与极端学习机(Extreme Learning Machine, ELM)。传统前馈神经网络一般采用梯度下降算法调整权值参数,学习速度慢、泛化性能差等问题是制约前馈神经网络应用的瓶颈。黄广斌等摒弃梯度下降算法的迭代调整策略,提出ELM。该方法随机赋值单隐层神经网络的输入权值和偏差项,并通过一步计算求出网络的输出权值。相比于传统前馈神经网络训练算法需经多次迭代调整才能最终确定网络权值,ELM的训练速度获得较显著提升。然而,由于计算能力和复杂性的限制,在大数据上训练出单一ELM是一个困难的问题。解决这一困难通常有两种途径:①训练基于分治策略的ELM; ②在训练单一ELM中引入并行机制。单一ELM有很强的函数逼近能力,能否将这种逼近能力延拓到基于分治策略的ELM是衡量ELM是否适用于大数据学习的一个关键指标。尚未见到基于分治策略的ELM逼近的研究报道,一些相关的研究还包括有效性学习。

④ 应用领域的分类算法。除上述内容外,在一些应用领域,也有针对大数据的分类算法被提出。在计算机辅助诊断领域,机器学习广泛应用于帮助医学专家从已诊断案例中获取先验知识,但大量的已诊断样本很难获取。有机器学习算法专家提出了一种半监督的学习算法——基于随机森林的协同训练,用来估计未诊断样本的标记自信度,能比较容易地得出先验知识。该方法在基准数据集上得到了较好的结果。针对大规模图像数据集的分类性能问题,有机器学习算法专家提出了在特征提取和分类器训练方面提高效率。对于特征提取,利用Hadoop架构,在几百个MApper上并行计算;对于训练SVM,提出并行平均随机梯度下降算法,可处理具有120万个图像、1000个类别的图像数据,并具有较快的收敛速度。

此外,中文网页标记数据稀缺,英文网页标记数据较丰富,有机器学习算法专家用英文网页标记信息来解决跨语言分类问题,提出基于信息瓶颈的方法。该方法首先将中文翻译成英文,然后将所有网页用一个只允许有限信息通过的信息瓶颈来编码。该方法可使跨语言分类更准确,显著提高一些已有的监督与半监督分类器的准确率。

综上所述,传统机器学习的分类方法很难直接运用到大数据环境,不同的分类算法都面临着大数据环境的挑战,如何针对不同分类算法研究并行或改进策略成为大数据环境下分类学习算法研究的主要方向。

(6)大数据聚类。

聚类学习是最早被用于模式识别及数据挖掘任务的方法之一,并且被用来研究各种应用中的大数据库,因此用于大数据的聚类算法受到越来越多的关注。Havens等人对比了3种扩展的模糊C均值(FCM)聚类算法对于大数据的执行效率。Havens等人用可装载的数据集和VL数据集进行数值型实验,这些实验对时间复杂度、空间复杂度、速度、处理装载数据的批量FCM的近似质量等进行对比。实验结果显示,随机取样可扩展FCM(Random Sampling Plus Extension FCM)、位减少FCM(Bit Reduced FCM)及近似核FCM(Approximate Kernel FCM)都是较好的选择,都近似于FCM。最后,Havens等人展示含有50亿个对象的数据集的大数据算法,并就如何使用不同的大数据FCM聚类策略提出一系列建议。

随着数据体积的增大,I/O瓶颈变成数据分析的一个重要问题。数据压缩能起到缓解作用。以K-means为例,Xue等人提出了一种压缩感知性能提升模型用于大数据聚类。该模型定量分析整个计算过程中与压缩有关的诸多影响因素。在包含上百个计算核的集群上对大到1.114TB的10维数据进行聚类实验,实验结果证明压缩能改善I/O性能,并且该模型能有效决定何时、如何使用压缩来改善大数据分析中的I/O性能。

针对分布式聚类、流数据聚类,Hall等人研究二次抽样方法以提高聚类算法的可扩展性。实验表明,人们可构造一个好的模型而不必知道所有的数据,如果需要,修改后的算法可应用于TB级或更大级别的数据。

为实现数据的大规模并行处理,MapReduce模型成为学术界和工业界最为流行的工具。从数据库角度看,MapReduce是一种简单但强大的执行引擎,可与其他数据存储和管理组件有效融合。为解决大规模数据分析难题,有机器学习算法专家提出了基于MapReduce的K-means算法,并在speedup、sizeup、scaleup这3个指标上获得较好的并行性能。

Papadimitriou等人提出了一种利用MapReduce模型实现协同聚类的系统框架——分布式协同聚类框架,并引入分布式数据预处理、协同聚类等方法,并在Hadoop上实现该系统。实验结果证明分布式协同聚类框架具有良好的可扩展性、高执行效率,能处理几百GB的数据。

Ferreira等人提出了一种利用MapReduce开展大规模数据聚类的方法。主要针对问题包括:①如何将I/O开销最小化;②如何降低节点之间的通信开销。Ferreira所提出的BoW(Best of both Worlds)方法能自动发现系统瓶颈并选择应对策略。总体来说,其贡献在于:①提出BoW,并设计开销函数,动态选择最优策略;②实验证明BoW有明显优势。

Havens等人分析了在大数据上运行C-mean的困难,指出模糊技术在处理大数据上的有效性。

随着信息技术的迅猛发展,聚类所面临的不仅是数据量越来越大的问题,更重要的还是数据的高维问题。由于数据来源的丰富多样,图片、文字、声音甚至视频都逐渐成为聚类处理的目标对象,这些特殊对象的属性信息往往要从数百个甚至成千上万个方面来表现,其每个属性都成为数据对象的一个维度,对高维数据的聚类分析,已成为众多领域的研究方向之一。高维数据的聚类方法包括基于降维的聚类、子空间聚类、基于图的聚类等。在很多需处理高维数据的应用领域,降维是常用的方法之一。直观地讲,降维就是通过把数据点映射到更低维的空间上以寻求数据的紧凑表示的一种技术,这种低维空间的紧凑表示有利于对数据进行进一步处理。降维代表着数据信息的损失,如何保证降维而不损失聚类性能是传统数据领域仍在研究和讨论的问题。

综上所述,经典的聚类算法在大数据环境下面临数据量大、数据体积过大、复杂度高等众多挑战,如何并行或改进现有聚类算法,进而提出新的聚类算法成为研究的关键。

(7)大数据关联分析。

关联分析的研究源自Apriori算法,Apriori算法的性质要求频繁模式的子模式必须也是频繁的。基于这一启发,出现了一系列的类Apriori算法,如AprioriAll、AprioriSome、DynamicSome、广义序列模式及基于等价类的序列模式。后来,研究者又提出一系列基于数据投影的算法,包括频繁模式投影序列模式挖掘算法(Frequent-Pattern-Projected Sequential Pattern Mining, FreeSpan)和前缀投影序列模式挖掘算法(Prefix-Projected Sequential Pattern Mining, PrefixSpan)。基于等价类的序列模式是基于格点的算法。基于内存索引的序列模式挖掘算法是基于内存索引的方法。而基于正则表达式约束的序列模式挖掘算法通过使用正则表达式将约束整合到一起。实现大数据的关联分析主要有两种途径:并行和增量。

在并行方面,有机器学习算法专家提出了一种基于MapReduce的并行Apriori算法。Apriori算法最主要的作用是产生候选项集,该算法将产生候选项集的过程并行化,以提高运行效率,并具有良好的加速比和伸缩性。

一些文献介绍了基于广义序列模式(Generalized Sequential Pattern, GSP)算法和基于GSP的频繁序列挖掘(Mining Frequent Sequences, MFS)算法的增量挖掘算法GSP+和MFS+。

也有一些文献提出了基于等价类的序列模式的增量序列挖掘算法(Incremental Sequence Mining, ISM),该方法不仅可在数据库更新时维持频繁序列,还提供了一个用户交互接口以方便用户修改约束(如最小支持度等)。ISM只考虑序列追加,而一些文献提出的增量频繁序列挖掘算法(Incremental Frequent Sequences Mining, ISEM)还考虑插入新序列的情况。

ISEM只考虑对频繁序列的后缀进行扩充,而一些文献中提出的增量更新序列算法(Incrementally Updating Sequences, IUS)对旧的频繁序列的前缀和后缀都可进行扩充。有一些文献指出算法可在维持序列模式的同时从数据库中删除一些记录。还有一些文献提出一个实验性方法——性能与差异均衡算法(Tradeoff between Performance and Difference, TPD),来确定何时更新序列模式。

以上增量算法都是为了提高算法效果,在大数据集上的运行效果有待进一步验证。

(8)大数据并行算法。

如何把传统机器学习算法运用到大数据环境中,一个典型策略是对现有学习算法并行化。例如,图形处理器(Graphic Processing Unit, GPU)通过并行得到较显著的性能提升。这些GPU平台由于采用并行架构,使用并行编程方法,使得计算能力呈几何级增长。

有机器学习算法专家提出了一种非平凡的策略用来并行处理一系列数据挖掘与机器学习问题,包括一类分类SVM和两类分类SVM、非负最小二乘问题、L1正则化回归问题。由此得到的乘法算法,可直接在MapReduce和通用并行计算架构(Compute Unified Device Architecture, CUDA)等并行计算环境中实现。在大数据分类和聚类学习当中,MapReduce框架被用于并行化的传统机器学习算法以适应大数据处理的需求。

Shim在MapReduce框架下,讨论如何设计高效的MapReduce算法,对当前一些基于MapReduce的机器学习和数据挖掘算法进行归纳总结,以便进行大数据的分析。

有机器学习算法专家提出了一种大数据挖掘技术,即利用MapReduce实现并行的基于粗糙集的知识获取算法。

Hefeeda等人提出一种近似算法使基于核的机器学习算法可有效处理大规模数据集。当前的基于核的机器学习算法由于需计算核矩阵而面临可伸缩性问题,该算法在计算核矩阵时不仅能大幅降低计算和内存开销,而且没有明显影响结果的精确度。此外,由于传统的提升算法本身具有串行特点,不易获得好的扩展性。因此,需提出并行的提升算法来高效处理大规模数据。Palit等提出2种并行提升算法:ADABOOST.PL和LOGITBOOST.PL。它们可使多个计算节点同时参与计算并且可构造出一个提升集成分类器。该方法通过MapReduce框架来实现,在合成数据和真实数据集上的实验表明其在分类准确率、加速比和放大率方面都能取得较好的结果。

Kaiser等人还利用MapReduce框架分布式实现一系列核函数学习机训练,该方法适用于基于核的分类和回归。Kaiser还介绍了一种扩展版的从区域到点的建模方法,适应来自空间区域的大量数据。

Yan考虑潜在狄利克雷分配模型(Latent Dirichlet Allocation, LDA)的两种推理方法——塌缩吉布斯采样(Collapsed Gibbs Sampling, CGS)和塌缩变分贝叶斯推理(Collapsed Variational Bayesian, CVB)在GPU上的并行化问题。为解决GPU的内存限制问题,Yan提出了一种能有效降低内存开销的数据划分方案。这种划分方案也能平衡多重处理器的计算开销,并能避免内存访问冲突,使用数据流来处理超大的数据集。

针对在异构云中进行大数据分析服务的并行化问题,有机器学习算法专家提出了最大覆盖装箱算法来决定系统中有多少节点,哪些节点应该应用于大数据分析的并行执行。该方法可使大数据得到分配,使得各个计算节点可同步结束计算,并且使数据块的传输可以和上一个块的计算重叠,从而节省时间。实验表明,该方法相比其他方法可提高大约60%的性能。在分布式系统方面,中国科学院计算技术研究所智能信息处理重点实验室数据挖掘与机器学习组在2008年年底与中国移动合作,开发完成了分布式并行数据挖掘系统PDMiner,这是中国最早的基于云计算平台的并行数据挖掘系统之一。该系统提供多种并行数据转换规则和并行数据挖掘算法,已用于中国移动TB级实际数据的挖掘,并达到商用软件的精度。

还有机器学习算法专家提出了一个可伸缩的分布式系统——广义线性聚合分布式引擎(Generalized Linear Aggregates Distributed Engine, GLADE)。GLADE通过用户自定义聚合(User Defined Aggregate, UDA)接口并且在输入数据上有效运行来进行数据分析。作者从两个方面来论证系统的有效性:①展示如何使用一系列分析功能来完成数据处理。②将GLADE与两种不同类型的系统(用UDA进行改良的关系型数据库和MapReduce)进行对接。然后从运行结果、伸缩性及运行时间上与不同类型的系统进行对比。

综上所述,并行策略是将传统机器学习算法运用于大数据的典型策略之一,并且在一定范围内取得了一些进展,能处理一定量级的大数据。如何研究高效的并行策略以高效处理大数据也是当今的研究热点之一。

2.机器学习综述

笔者理解的AI是“算法+算力+数据”。也有人认为AI是由数据、机器学习和GPU硬件驱动的。这两种观点本质上是一致,下面我们从机器学习的历史、常见方法和应用的角度来看AI的本质是什么。

(1)机器学习的发展历史与相关要素。

机器学习属于AI中一个较为年轻的分支,大致可以分为以下三个发展阶段。

第一阶段:20世纪50年代中期至20世纪60年代中期,这一时期是机器学习的萌芽时期。人们试图通过软件编程来操控计算机完成一系列的逻辑推理功能,进而使计算机在一定程度上具有类似人类的智能思考能力。然而,这时期计算机推理出的结果远没有达到人们对机器学习的期望。通过进一步研究发现,只具有逻辑推理能力并不能使机器产生智能。研究者认为,使得机器拥有智能的前提是机器必须拥有大量的先验知识。

第二阶段:20世纪60年代中期至20世纪80年代中期,这一时期的机器学习处于发展时期。人们试图利用根据自身思维提取出来的规则教会计算机执行决策行为,主流是各式各样的专家系统,然而这些系统总会面临“知识稀疏”的问题,即面对无穷无尽的知识与信息,人们无法总结出万无一失的规律。因此,让机器自主学习的设想“浮出水面”。基于20世纪50年代对于神经网络的研究,人们开始研究如何让机器自主学习。

第三阶段:20世纪80年代至今,机器学习达到了一个繁荣时期。由于这一时期互联网大数据的发展以及GPU的出现,机器学习度过了瓶颈期。机器学习呈现爆发式发展,开始成为一门热门学科并且被应用到各个领域。各种机器学习算法不断涌现,而利用深层次神经网络的深度学习也得到进一步发展。同时,机器学习的蓬勃发展还促进了其他分支的出现,如模式识别、数据挖掘、生物信息学和自动驾驶等。

(2)机器学习的常见方法。

① 监督学习。监督学习表示机器学习的数据是带标记的,这些标记可以是数据类别、数据属性以及特征点位置等。这些标记作为预期效果,不断修正机器的预测结果。具体过程是:首先,通过大量带有标记的数据训练机器,机器将预测结果与期望结果进行比对;然后,根据比对结果修改模型中的参数,再一次输出预测结果;最后,将预测结果与期望结果进行比对⋯⋯重复多次直至收敛,最终生成具有一定鲁棒性的模型来使机器产生智能决策能力。常见的监督学习有分类、回归。分类是将一些实例数据分到合适的类别中,它的预测结果是离散的。回归是将数据归到一条“线”上,即为离散数据生产拟合曲线,因此其预测结果是连续的。

② 无监督学习。无监督学习表示机器学习的数据是没有标记的。机器从无标记的数据中探索并推断出潜在的联系。常见的无监督学习有聚类、降维。在聚类工作中,由于事先不知道数据类别,因此只能通过分析数据样本在特征空间中的分布,例如基于密度或是基于统计学概率模型等,从而将不同的数据分开,把相似的数据聚为一类。降维是将数据的维度降低。例如描述一个西瓜,若只考虑外皮色泽、根蒂形状、敲击回声、纹理、密度以及含糖率这6个属性,则西瓜的数据的维度为6。由于数据本身具有庞大的数量和各种属性特征,若对全部数据信息进行分析,将会增加训练的负担和存储空间。因此可以通过主成分分析等方法,考虑主要影响因素,舍弃次要影响因素,来平衡准确度与效率。

③ 强化学习。强化学习是带激励的学习,具体来说就是,如果机器的行动正确,将施加一定的“正激励”;如果机器的行动错误,会给出一个“惩罚”(也可称为“负激励”)。在这种情况下,机器将会考虑在一个环境中如何行动才能达到激励的最大化。例如,在贪吃蛇游戏中,贪吃蛇需要不断“吃”到“食物”来加分。为了不断提高分数,贪吃蛇需要考虑在自身位置上如何转向才能“吃”到“食物”,这种学习过程便可理解为是一种强化学习。强化学习最为火热的一个应用便是谷歌AlphaGo的升级品——AlphaGo Zero。相较于AlphaGo, AlphaGo Zero舍弃了先验知识,不再需要人为设计特征,而是直接将棋盘上黑、白棋子的摆放情况作为原始数据输入到模型中,机器使用强化学习来自我博弈,不断提升自己,最终出色地完成下棋任务。AlphaGo Zero的成功证明了在没有人类的经验和指导下,深度强化学习依然能够出色地完成指定任务。

(3)机器学习的应用。

由于近20年科技的迅速发展,机器学习已经成为一门活跃并且充满生命力的学科。机器学习具备了一定的解决实际问题的能力,被当作是一种基础服务技术,并和不同技术进行结合。我们通过几个具体的例子来进一步了解机器学习的优势。

① 标注问题。标注问题就是为数据标记类别,这些数据可以是图片、声音、文字等。例如,在下面这张图片中,图片包含的动物有猫和狗,因此,可以利用多标注将图片标注为“有猫并且有狗”。在现实中,需要标注的数据往往以百万甚至以亿计,此时人力标注就显得很吃力了;通过机器学习的自动标注可以节省大量的时间,提高工作效率。

猫和狗的图片

② 搜索与排序。搜索与排序研究的是如何对对象进行排序。例如,在检索信息时,我们常常关注如何把对象按照与检索目的的相关性进行排序。在AI时代,由于各种搜索引擎的流行,我们将目光聚集在如何对网页进行相关性排序。基于机器学习的网页排序可以根据用户喜好,智能并且个性化地呈现搜索结果。

③ 推荐系统。推荐系统与排序问题紧密相连,并被广泛应用于新闻网站、购物网站以及搜索引擎上。推荐系统的目标是将不同用户各自感兴趣的内容推荐给他们。例如Comcast公司(美国一家提供宽带网络、有线电视及IP电话服务的公司)利用机器学习技术分析了大量用户的历史购买记录,对每一个用户输出对应的品位描述,然后根据品位描述把顾客分成不同类别。对于不同类别的顾客,Comcast都能实时跟踪并推荐相关的最流行的节目内容。基于机器学习生成了更好的推荐系统,达到了更高的购买率,提高了顾客的满意度。

小结:机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

机器学习是人工智能的核心之一,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

3.1.5 GPU和其他设备

针对AI优化的GPU和其他设备的架构可以高效运行面向AI的计算任务。

图形处理器又称显示核心、显示芯片、视觉处理器,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像运算工作的微处理器。

GPU的用途是将计算机系统所需要的显示信息进行转换,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。

GPU是为了更快处理图像而诞生的。在20世纪90年代,一批工程师意识到:在屏幕上进行多边形图像渲染,本质上是处理并行的任务——对每个像素点的色彩都可以独立计算,而不需要考虑其他像素点。于是GPU诞生,成为比CPU更高效的渲染工具。简而言之,由于CPU在图像渲染方面的能力不足,GPU被发明出来分担这部分工作,此后就成了专门的硬件。凭借上千个更加简单的核心,GPU能高效处理让CPU十分吃力的任务。只要配合合适的代码,这些核心就能处理超大规模的数学运算,实现逼真的游戏体验。

GPU作为显卡的“大脑”,决定了该显卡的档次和大部分性能,同时GPU也是2D显示卡和3D显卡的区别依据。2D显卡在处理3D图像与特效时主要依赖CPU的处理能力,被称为“软加速”。3D显卡把三维图像和特效处理功能集中在GPU内,这就是所谓的“硬件加速”功能。GPU一般是显卡上最大的芯片。时下市场上的显卡大多采用NVIDIA和AMD-ATI两家公司的GPU。NVIDIA公司在1999年发布GeForce 256图形处理器时首次提出GPU的概念。从此NVIDIA的图形处理器就用GPU这个新名字来称呼。GPU使显卡减少了对CPU的依赖,并承担部分原本属于CPU的工作,特别是在处理3D图形时。

GPU能将3D模型的信息转换为2D的信息并进行表示,同时添加不同的纹理和阴影效果,所以,GPU在硬件里也是比较特殊的存在。从3D建模到最终显示在屏幕上,GPU渲染场景使用的是流水线操作。在早期,对流水线操作是不能做任何改动的,整个操作从读取三角形的顶点数据开始,GPU处理完相关数据后将图像信息放入帧缓冲区并准备发送给显示器。GPU也能对场景的某些特定效果进行处理,不过这些都是由工程师设计好的,能做的修改很少。

GPU在设计之初并非是针对深度学习而是针对并行计算。并行计算意味着可以同时处理运算,而不是一步一步地进行计算。复杂问题可以被分解为更简单的问题,然后同时进行处理。并行计算适用于HPC和超算领域所涉及的许多问题,比如气象模型、宇宙模型和DNA序列。但并不是只有天体物理学家和气象学家才能充分利用并行计算的优点。事实证明,许多企业应用也能从并行计算获得好处。这些应用包括数据库查询、密码学领域的暴力搜索、对不同场景的计算机模拟、机器学习/深度学习、地理信息可视化。

由于GPU在设计之初并非针对深度学习,而是针对图形加速,因此在NVIDIA推出CUDA架构之前,GPU并无太强的针对深度学习的运算能力。

截至2019年,NVIDIA提供了基于其GPU的从后端模型训练到前端推理应用的全套深度学习解决方案,普通开发人员也可以非常容易地上手使用GPU进行深度学习开发,或者高性能运算。开发CUDA架构耗费了NVIDIA巨大的人力、物力,可以说,正是因为有了CUDA这个中间层,开发者才真正爱上了GPU, NVIDIA胜在软件。但CUDA还不能被称为算法,它只是计算硬件与算法之间的桥梁。

在2012年,AlexNet利用“深度学习+GPU”的方案,一举赢得ILSVRL,并奇迹般地将识别成功率从74%提升到85%。NVIDIA敏锐地觉察到了这一趋势,并大力优化基于GPU的深度学习生态系统,在三年时间内将GPU的性能提升了65倍,从而奠定了自身的“王者”地位。

3.1.6 决策管理技术

智能决策支持系统(IDSS)将AI和决策支持系统(Decision-making Support System,后文简称DSS)相结合,应用专家系统(Expert System,后文简称ES)技术,使DSS能够更充分应用人类的知识(如关于决策问题的描述性知识、决策过程中的过程性知识、求解问题的推理性知识),通过逻辑推理来解决复杂的决策问题。

IDSS这个概念最早由美国学者于20世纪80年代提出,它既能处理定量问题,又能处理定性问题。IDSS的核心思想是将AI与其他相关科学成果相结合,使DSS具有智能。

较完整与较典型的IDSS的结构是在传统三库DSS的基础上增设知识库与推理机,在智能人机接口与子系统之间加入自然语言处理系统(LS),在四库(模型库、数据库、方法库、知识库)与自然语言处理系统之间插入问题处理系统(PSS)而构成新的四库系统结构,IDSS的结构如下图所示。

智能决策支持系统的结构

(1)智能人机接口。四库系统的智能人机接口接受使用自然语言或接近自然语言的方式表达决策问题及决策目标,这较大程度地改变了人机界面的性能。

(2)问题处理系统。问题处理系统处于IDSS的中心位置,是联系人与机器及所存储的求解资源的桥梁,主要由问题分析器与问题求解器两部分组成,其工作流程如下图所示。

问题处理系统的工作流程

问题处理系统是IDSS中最活跃的部件,它既要识别与分析问题,设计求解方案,还要为问题求解器调用四库中的数据、模型、方法及知识等资源,对半结构化问题或非结构化问题还要运用推理机作推理。

(3)自然语言处理系统能转换问题描述,由问题分析器判断问题的结构化程度,对结构化问题选择或构造模型,采用传统的模型进行计算、求解;对半结构化问题或非结构化问题,则采用规则模型与推理机制来求解。

(4)知识库子系统可分为三个部分:知识库管理系统、知识库及推理机。

① 知识库管理系统。它的功能主要有两个:一是回应知识库增、删、改知识的请求;二是回应决策过程中对知识的请求。

② 知识库。知识库是知识库子系统的核心。知识库中存储的是那些既不能用数据表示,也不能用模型方法描述的专家知识和经验,即决策专家的决策知识和经验知识,同时也包括一些针对特定问题的专门知识。知识库中的知识表示是为描述世界所做的一组约定,是知识的符号化。对于同一知识,可以有不同的知识表示形式,知识的表示形式直接影响推理方式,并在很大程度上决定着一个系统的能力和通用性。

知识库包含事实库和规则库两部分。例如:事实库中存放了“任务A是紧急订货”“任务B是出口任务”这样的事实。规则库中存放着“IF任务i是紧急订货,AND任务i是出口任务,THEN任务i最优先安排计划”“IF任务i是紧急订货,THEN任务i按优先安排计划”这样的规则。

③ 推理机。推理是指从已知事实推出新事实(结论)的过程。推理机是一组程序,它针对用户问题去处理知识库(规则和事实)。推理原理如下:若事实M为真,且有一规则“IF M THEN N”存在,则N为真。因此,如果事实“任务A是紧急订货”为真,且有一规则“IF任务i是紧急订货,THEN任务i按优先安排计划”存在,则任务A就应该优先安排。

智能决策支持系统包含以下6个特点。

① 基于成熟的技术,容易构造出实用系统。

② 充分利用了各层次的信息资源。

③ 基于规则的表达方式,使用户易于掌握、使用。

④ 具有很强的模块化特性,并且模块重用性好,系统的开发成本低。

⑤ 系统的各部分组合灵活,可实现强大的功能,并且易于维护。

⑥ 系统可迅速采用先进的支撑技术,如AI技术等。

由于在IDSS的运行过程中各模块要反复调用上层模块,比起直接调用底层模块的方式,其运行效率要低。但是考虑到IDSS只在高层管理者做重大决策时才运行,其运行频率与其他信息系统相比要低得多,况且每次运行时的环境条件差异很大,所以牺牲部分运行效率以换取系统维护的效率是完全值得的。

智能决策系统是管理信息系统应用概念的深化,是在管理信息系统的基础上发展起来的系统。DSS是用来解决非结构化问题、服务于高层决策的管理信息系统,按功能可分为专用DSS、DSS工具和DSS生成器。专用DSS是为解决某一领域问题而设计的DSS。DSS工具是指某种语言、某种操作系统、某种数据库系统。DSS生成器是通用决策支持系统,一般包括数据库(DBMS)、模型库(MBMS)、方法库、知识库和会话部件。DSS的数据库不同于一般的数据库,它有很高的性能要求,是在原基层数据库的基础上建立起来的专用数据库,一般由数据仓库充当DSS数据库,数据库为决策提供数据能力或资料能力。模型库为决策提供分析能力。会话部件又被称为接口部件,它是人和决策支持系统联系的接口。智能决策支持系统(IDSS)在一般DSS基础上增加了深度知识库,所以成了人工智能决策系统。

3.1.7 深度学习技术

深度学习是机器学习领域一个新的研究方向,近年来在语音识别、图像识别等多类应用中取得突破性进展。其目的在于建立模型模拟人类大脑的神经连接结构,在处理图像、声音和文本这些信号时,通过多个变换阶段对数据特征进行描述,进而给出数据的解释。以图像数据为例,灵长类的视觉系统中对这类信号的处理顺序为:①检测边缘和形状;②逐步形成更复杂的视觉形状。同样地,深度学习通过组合低层特征形成更加抽象的高层表示、属性类别或特征,给出数据的分层特征表示。

深度学习之所以被称为“深度”,是相对支持向量机、提升方法、最大熵方法等“浅层学习”方法而言的,在深度学习模型中,非线性操作的层级数更多。浅层学习依靠人工抽取样本特征,经网络模型学习后获得的是没有层次结构的单层特征;而深度学习通过对原始信号进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动学习得到层次化的特征表示,从而更有利于分类或特征的可视化。深度学习理论的另外一个理论动机是:如果一个函数可以用 k 层结构以简洁的形式表达,那么用k-1层的结构表达则可能需要增加指数级数量的参数(相对于输入信号),且泛化能力不足。

1.从技术角度讲解深度学习技术

深度学习的概念最早由多伦多大学的Geoffrey E.Hinton等人于2006年提出,指基于样本数据,通过一定的训练方法得到包含多个层级的深度网络结构的机器学习过程。传统的神经网络随机初始化网络中的权值,导致网络很容易收敛到局部最小值,为解决这一问题,Hinton提出使用无监督预训练的方法优化网络权值的初值,再进行权值微调的方法,拉开了深度学习的序幕。深度学习所得到的深度网络结构包含大量的单一元素(神经元),每个神经元与大量其他神经元相连接,神经元间的连接强度(权值)在学习过程中被修改并决定网络的功能。通过深度学习得到的深度网络结构符合神经网络的特征,因此深度网络就是深层次的神经网络,即深度神经网络(Deep Neural Network, DNN)。深度神经网络是由多个单层非线性网络叠加而成的,常见的单层网络按照编码、解码情况分为3类:只包含编码器部分;只包含解码器部分;既包含编码器部分也包含解码器部分。编码器提供从输入到隐含特征空间的自底向上的映射,解码器以重建结果尽可能接近原始输入为目标,将隐含特征映射到输入空间。深度神经网络分为以下3类,如下图所示。

深度神经网络的分类

① 前馈深度网络(Feed-Forward Deep Network, FFDN),由多个编码器层叠加而成,如多层感知机(Multi-Layer Perception, MLP)、卷积神经网络(Convolutional Neural Network, CNN)等。

② 反馈深度网络(Feed-Back Deep Network, FBDN),由多个解码器层叠加而成,如反卷积网络(Deconvolutional Network, DN)、层次稀疏编码网络(Hierarchical Sparse Coding, HSC)等。

③ 双向深度网络(Bi-Directional Deep Network, BDDN),通过叠加多个编码器层和解码器层构成(每层可能是单独的编码过程或解码过程,也可能既包含编码过程也包含解码过程),如深度玻尔兹曼机(Deep Boltzmann Machine, DBM)、深度信念网络(Deep Belief Network, DBN)、栈式自编码器(Stacked Auto Encoder, SAE)等。

(1)前馈深度网络。

前馈深度网络是最早的人工神经网络模型之一。在这种网络中,信息只沿一个方向流动,输入单元通过一个或多个隐藏层到达输出单元,在网络中没有封闭环路。典型的前馈深度网络有多层感知机和卷积神经网络等。

F.Rosenblatt提出的感知机是最简单的单层前向人工神经网络,但随后马文·明斯基等人证明单层感知机无法解决线性不可分问题,这一结论将人工神经网络的研究引入一个低潮期,直到研究人员认识到多层感知机可解决线性不可分问题,以及反向传播算法与神经网络结合研究的兴起,对神经网络的研究才重新开始成为热点。但是由于传统的反向传播算法具有收敛速度慢、需要大量带标签的训练数据、容易陷入局部最优等缺点,多层感知机的效果并不是十分理想。

1984年,日本学者K.Fukushima等人基于感受野(感受器受刺激而兴奋时,通过感受器官中的向心神经元将神经冲动传到上位中枢,一个神经元所支配的刺激区域就叫作神经元的感受野)概念提出的神经认知机可看作卷积神经网络的一种特例,Yann LeCun等人提出的卷积神经网络是神经认知机的推广形式。卷积神经网络是由多个单层卷积神经网络组成的可训练的多层网络结构。每个单层卷积神经网络包括卷积、非线性变换和下采样3个阶段,其中下采样阶段不是每层都必需的。每层的输入和输出为一组向量构成的特征图(Feature Map),第一层的原始输入信号可以看作一个具有高稀疏度的高维特征图。例如,输入部分是一张彩色图像,每个特征图对应的则是一个包含输入图像的彩色通道的二维数组(对于音频输入,特征图对应的是一维向量;对于视频或立体影像,特征图对应的是三维数组)。每个特征图对应的输出部分表示从输入图片所有位置提取的特定特征。

我们再来看由卷积、非线性变换和下采样3个阶段构成的单层卷积神经网络,如下图所示。

单层卷积神经网络的3个阶段

卷积阶段通过提取信号的不同特征实现对输入信号进行特定模式的观测。其观测模式也被称为卷积核,其定义源于D.H.Hubel等人提出的局部感受野概念。每个卷积核检测输入特征图上所有位置的特定特征,实现同一个输入特征图上的权值共享。为了提取输入特征图上不同的特征,使用不同的卷积核进行卷积操作。

卷积阶段的输入是由n1n2×n3大小的二维特征图构成的三维数组。每个特征图记为Xi。该阶段的输出Y也是个三维数组,由m1m2×m3大小的特征图构成。在卷积阶段,连接输入特征图Xi和输出特征图Yj的权值记为Wij,即可训练的卷积核(局部感受野),卷积核的大小为K2×K3。输出特征图如下。

Yj= Bj+ ∑Wij∗Xi

在上式中:* 为二维离散卷积运算符;bj是可训练的偏置参数。

在非线性阶段,对卷积阶段得到的特征按照一定的原则进行筛选,筛选原则通常采用非线性变换的方式,以避免线性模型表达能力不足的问题。非线性阶段将卷积阶段提取的特征作为输入,进行非线性映射R = hy)。传统卷积神经网络中非线性操作采用sigmoid、tanh或softsign等饱和非线性(Saturating Nonlinearities)函数,近几年的卷积神经网络多采用不饱和非线性(Non-Saturating Nonlinearity)函数ReLU。

在训练梯度下降时,ReLU比传统的饱和非线性函数有更快的收敛速度,因此在训练整个网络时,训练速度也比传统的方法快很多。4种非线性操作函数的公式如下。

sigmoid:R=1/(1+e-y

tanh:R=ey/(ey+e-y

softsign:R=Y/(1+ Y

ReLU:R= max(0, Y

其函数形态如下图所示。

4种非线性操作函数

下采样阶段对每个特征图进行独立操作,通常采用平均池化或最大池化的操作。平均池化依据定义的邻域窗口计算特定范围内像素的均值(PA),邻域窗口平移步长大于1(小于等于池化窗口的大小);最大池化则将均值替换为最大值(PM)输出到下个阶段。池化操作完成后,输出特征图的分辨率降低,但能较好地保持高分辨率特征图描述的特征。一些卷积神经网络完全去掉下采样阶段,通过在卷积阶段设置卷积核窗口使滑动步长大于1,以达到降低分辨率的目的。

卷积神经网络的结构如下图所示。

卷积神经网络的结构

将单层的卷积神经网络进行多次堆叠,前一层的输出作为后一层的输入,便构成卷积神经网络。其中每2个节点间的连线代表输入节点经过卷积、非线性变换、下采样3个阶段变为输出节点,一般最后一层的输出特征图后接一个全连接层和分类器。为了减少数据的过拟合,最近的一些卷积神经网络,在全连接层引入Dropout或DropConnect方法,即在训练过程中以一定概率 P 将隐藏层节点的输出值(对于DropConnect为输入权值)清零;而用反向传播算法更新权值时,不再更新与该节点相连的权值。但是这2种方法都会降低训练速度。在训练卷积神经网络时,最常用的方法是采用反向传播算法以及有监督的训练方式,算法流程如下图所示。

卷积神经网络的训练过程

网络中信号是前向传播的,即从输入特征向输出特征的方向传播,第1层的输入X,经过多个卷积神经网络层,变成最后一层输出的特征图O。将特征图O与目标标签T进行比较,生成误差E。通过遍历网络的反向路径,将误差逐层传递到每个节点,根据权值更新公式,更新相应的卷积核权值 Wij。在训练过程中,网络中权值的初值通常随机初始化(也可通过无监督的方式进行预训练),网络误差随迭代次数的增加而减少,并且这一过程收敛于一个稳定的权值集合,额外的训练次数呈现出较小的影响。对于卷积神经网络的任意一层L,其第i个输入特征Xi和第j个输出特征Yj之间的权值Wij的更新公式如下。

ΔWij=αδjXi

当第L层是卷积神经网络的最后一层时,结构如下图所示。

当第L层是最后一层时卷积神经网络的结构

δj=(TjYjHLXi)。Tj为第j个目标标签;h′(x)为非线性映射函数的导数;j =1,2, ⋯, NL

当第L层不是卷积神经网络的最后一层时,结构如下图所示。

当第L层不是最后一层时卷积神经网络的结构

NL+1 为第 L+1层输出特征的数目;m=1,2, ⋯, NL+1; Wjm为第L层的第j个输出(作为 L + 1层的第j个输入)与 L + 1层第 m 个输出之间的权值。

卷积神经网络的特点在于,采用原始信号(一般为图像)直接作为网络的输入,避免了传统识别算法中复杂的特征提取和图像重建过程。获取的观测特征与平移、缩放和旋转无关。卷积阶段利用权值共享结构减少了权值的数量进而降低了网络模型的复杂度,这一点在输入特征图是高分辨率图像时表现得更为明显。同时,下采样阶段利用图像局部相关性的原理对特征图进行子抽样,在保留有用结构信息的同时有效减少数据处理量。

(2)反馈深度网络。

反馈网络并不是对输入信号进行编码,而是通过解反卷积或学习数据集的积,对输入信号进行反解。前馈网络是对输入信号进行编码的过程,而反馈网络则是对输入信号进行解码的过程。

典型的反馈网络有反卷积网络、层次稀疏编码网络等,这里以反卷积网络为例进行讲解。M.D.Zeiler等人提出的反卷积网络和Yann LeCun等人提出的卷积神经网络的思想类似,但在实际的结构构件和实现方法上有所不同。卷积神经网络是一种自底向上的方法,该方法每层输入的信号经过卷积、非线性变换和下采样3个阶段的处理,进而得到多层信息。相比之下,反卷积网络的每层信息是自顶向下的,网络通过滤波器组学习得到卷积特征并重构输入信号。层次稀疏编码网络和反卷积网络非常相似,只是在反卷积网络中,分解图像采用矩阵卷积的方式,而在稀疏编码中,分解图像采用矩阵乘积的方式。

我们再来看单层反卷积网络。单层反卷积网络是通过先验学习,对信号进行稀疏分解和重构的正则化方法,其结构如下图所示。

单层反卷积网络

上图是一个单层反卷积网络,输入信号YK0个特征通道Y1, Y2, ⋯, YK0组成,其中任意一个通道YC可看作K1个隐藏层特征图ZK与滤波器组fK,C(个数为K0×K1)的卷积。

这个公式是一个欠定(未知数的个数多于方程个数)的函数,为了求得其唯一解,需要引入一个关于特征图 ZK的正则项,且该正则项使得特征图ZK趋于稀疏。

反卷积网络通过上面所述单层反卷积网络进行多层叠加,可得到反卷积网络,如129页的图所示。

反卷积网络的特点在于通过求解最优化输入信号分解问题计算特征,而不是利用编码器进行近似,这样能使隐藏层的特征更加精准,更有利于信号的分类或重建。

反卷积网络的结构

(3)双向深度网络。

双向深度网络由多个编码器层和解码器层叠加形成,每层可能是单独的编码过程或解码过程,也可能同时包含编码过程和解码过程。双向深度网络的结构结合了编码器和解码器2类单层网络结构,双向网络的学习则结合了前馈深度网络和反馈深度网络的训练方法,通常包括单层网络的预训练和逐层反向迭代误差2个部分,单层网络的预训练多采用贪心算法训练每层网络。网络结构中各层网络结构都经过预训练之后,再通过反向迭代误差对整个网络结构进行权值微调。其中单层网络的预训练是对输入信号进行编码和解码的重建过程,这与反馈深度网络的训练方法类似。而基于反向迭代误差的权值微调与前馈深度网络的训练方法类似。典型的双向深度网络有深度玻尔兹曼机、深度信念网络、栈式自编码器等。

2.从产品经理的角度讲解深度学习技术

上面笔者对深度学习的各种主要神经网络技术进行了解析,下面笔者用综述的语言对深度学习技术进行深入浅出的讲解。我们已经知道深度学习作为机器学习领域的一项新兴技术,其动机在于建立能够进行学习的神经网络。深度学习的本质是对观察到的数据进行分层特征表示,将低级特征表示抽象成高级特征表示。

深度学习主要借助神经网络技术,神经网络最基本的单元是神经元。对神经网络的研究开始得比较早,早期的感知器模型是神经网络的雏形,也被称为单层神经网络(无隐藏层)。然而,感知器只能做最简单的线性分类任务,甚至无法解决简单的异或问题。但是当网络增加一个计算层之后,不仅可以解决异或问题,而且具有非常好的非线性分类效果。1986年,Rumelhar和Hinton等人提出了反向传播(Back Propagation, BP)算法,解决了两层神经网络需要复杂计算的问题,从而带动了业界使用两层神经网络进行研究的热潮。

与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。也就是说,面对复杂的非线性分类任务,两层神经网络可以完成得很好。但是,神经网络仍然存在若干问题,尽管使用了BP算法,一次神经网络的训练仍然耗时太久,局部最优解仍是困扰训练优化的一个问题,这使得神经网络的优化较为困难。同时,隐藏层的节点数需要调参,使用起来不太方便,工程人员和研究人员对此多有抱怨,神经网络的研究再次进入低谷。

2006年,Hinton在Science和相关期刊上发表论文,首次提出“深度信念网络”概念。与传统的训练方式不同,深度信念网络有一个“预训练”过程,这可以让神经网络中的权值找到一个接近最优解的值,之后再使用微调技术对整个网络进行优化训练。这两项技术的运用大幅度减少了训练多层神经网络的时间。Hinton给多层神经网络相关的学习方法起了一个新名字——深度学习。

深度学习极大促进了机器学习的发展,受到了世界各国相关研究人员和互联网公司的重视,深度学习应用最广泛的三个领域是语音识别、图像识别和自然语言处理。

长期以来,语音识别系统大多采用高斯混合模型(GMM)来描述每个建模单元的概率。这种模型构造简单,方便使用大规模数据对其进行训练,且模型有较好的区分度训练算法,保证了该模型能够很好地被训练。但GMM实质上是一种浅层学习网络模型,特征的状态空间分布不能够被充分描述。而且,使用GMM建模,数据的特征维数通常只有几十维,这使得特征之间的相关性不能被充分描述。最后,GMM建模实质上是一种似然概率建模方式,一些模式之间的区别即使能够通过区分度训练得到,但是效果有限。

从2009年开始,微软亚洲研究院的语音识别专家开始和Hinton合作。2011年,微软推出基于深度神经网络的语音识别系统,这一成果将语音识别领域已有的技术框架完全改变。采用深度神经网络以后,样本数据特征间的相关性信息得以充分表示,连续的特征信息结合构成高维特征,科研人员可以通过高维特征样本对深度神经网络模型进行训练。由于深度神经网络模拟了人脑的神经架构,因此,通过逐层进行数据特征提取,最终可以得到适合模式分类的理想特征。

图像识别是深度学习最早尝试应用的领域之一。在2012年的ILSVRL中,Krizhevsky等人训练了一个大型的深度卷积神经网络AlexNet,它包含8个学习层(5个卷积层和3个全连接层)。Krizhevsky等人借助ImageNet这个足够大的数据集、GPU强大的计算能力、深层的CNN网络、随机梯度下降(SGD)和Dropout等优化技巧,最终赢得了2012年的ILSVRC,实现了Top 5的错误率为15.3%的好成绩。这一成绩震惊了机器学习领域,促使大量的研究人员开始进入深度学习领域。2013年,ZFNet将Top 5的错误率降到了11.2%。2014年,Christian Szegedy等人设计的GoogLeNet将Top 5的错误率降到了6.7%。2015年,微软亚洲研究院的何凯明等人设计了一个多达152层的ResNet,它比之前所有的深度神经网络都深,但却降低了复杂度,从而更易于训练,ResNet将Top 5的错误率降到了3.6%。而人类识别的错误率是5%~10%,深度学习在图像识别领域的分辨能力已经超过了人类。

自然语言处理是深度学习的另一个重要应用领域。数十年以来,自然语言处理的主流方法是基于统计的模型,人工神经网络虽然是基于统计方法的模型之一,但在自然语言处理领域却一直没有得到重视。美国NEC研究院最早将深度学习引入自然语言处理的研究中,其从2008年起采用将词汇映射到一维矢量空间和多层一维卷积结构去解决词性标注、分词、命名实体识别和语义角色标注四个典型的自然语言处理问题。NEC研究院构建了一个网络模型用于解决四个不同问题,都取得了相当精确的结果。总体而言,深度学习在自然语言处理上取得的成果还无法和其在图像识别、语音识别方面取得的成果相比。

深度学习主要利用了神经网络技术,因此,深度学习所面临的技术挑战主要来自神经网络所面临的问题。随着层数的不断增加,神经网络中的各种问题开始涌现,笔者在这里将问题总结为以下几点。

① 可用的、带标签的数据集较少。深度学习是一种监督学习,监督学习通过训练数据集学习得到一个分类模型,并将该分类模型应用到对未知数据(测试数据)的分类中去。因此,分类模型的好坏强烈依赖于训练数据集的数量和质量,一个好的训练数据集能够得到一个好的分类模型,从而能够对未知数据得到一个较好的分类结果。截至2018年,可用的、带标签的训练数据集仍比较少,这可能会限制深度学习的进一步发展。2012年的ILSVRL提供了包含超过22000个类别、1500万张高分辨率照片的数据集,这使得AlexNet的成功成为可能。但是随着深度神经网络的进一步加深(例如,2015年的ResNet已经达到惊人的152层),训练这样的一个深层的神经网络需要更大的数据集。

② 网络复杂度的上升和可解释性的降低。深度学习的一个很大的局限性是神经网络的可解释性不强,有人形象地把神经网络比喻成一个黑盒,就是因为它的内部知识的表示很不直观。因此,提取隐藏在训练数据集背后的知识以及如何表示这些知识也是一个很重要的研究方向。

③ 随着深度学习的进一步发展,神经网络的复杂度也在逐渐上升。2012年,AlexNet的层数达到了8层,而其参数和神经元的数量是巨大的,AlexNet具有6000万个参数和65万个神经元,其复杂度可想而知。并且,越来越多的参数不仅需要更大的数据集,还需要更强的计算能力,否则神经网络的训练时间将是不可忍受的。

④ 过拟合。训练神经网络的过程其实就是不断调整网络中神经元之间的连接权重,使得网络预测的输出值与实际值之间的误差最小化的过程,这种过程不断进行下去,直到权重收敛。在这个过程中,网络的训练误差不断减小,在未知数据上的测试误差也在不断减小,但当训练误差减小到某个值之后,预测误差反而增大,这说明模型的泛化能力降低,这就是神经网络的过拟合现象。最近几届ILSVRC中提出的深度神经网络都不同程度地对过拟合提出了解决方案,由此可见过拟合给神经网络带来的重大影响。

⑤ 在神经网络中,数据扩增和Dropout是两种常用的正则化方法。数据扩增其实就是获取更多的数据,然而,数据通常是难以获取的、昂贵的。在很多时候,收集更多的数据意味着需要耗费更多的人力、物力。在原始数据上做些改动,以获得更多的数据似乎是个不错的选择。以图片数据集为例,可以将图片做各种变换,比如将原始图片旋转一个角度、添加随机噪声、截取原始图片的一部分等。Dropout每次将一半的隐藏层随机删除,一直迭代,直到训练结束。可以这样解释,运用了Dropout的训练过程,相当于训练了很多个只有一半数量隐藏层的神经网络,每个这样的“半数网络”都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分“半数网络”都可以给出正确的分类结果,少数的错误分类不会对最终结果造成大的影响。

⑥ 局部最优解。神经网络的训练存在多个极小点,梯度下降不能保证求出全局最优解,为解决这个问题,许多专家提出了多种方案,如使用改进的BP算法、增加动量项、自适应学习率、和别的优化算法组合等。

⑦ 梯度消失现象。我们常常使用sigmoid作为神经元的输入、输出函数,对于幅度为1的信号,在反向传播梯度时,每传递一层,梯度衰减为原来的0.25。随着层数的增多,梯度指数衰减后,低层基本接收不到有效的训练信号,这就是梯度消失现象。对此,我们引入ReLU函数代替sigmoid函数。采用sigmoid等函数计算激活函数(指数运算)时,计算量大;用反向传播算法求误差梯度时,求导涉及除法,计算量也很大;而采用ReLU函数时,整个过程的计算量小很多。对于深层网络,sigmoid函数反向传播时,很容易出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。而ReLU函数会使一部分神经元的输出为0,这就造成了网络的稀疏性,并且减少了参数的相互依存关系,避免了过拟合问题的发生。

无监督学习因不需要带标签的训练数据集而被广泛应用,但是在深度学习中,它已经被监督学习的成功而覆盖。但是,无监督学习还是应该引起我们的关注,很多时候,人类的意识是基于对周围事物的观察,而不是基于训练。

3.1.8 生物特征识别技术

所谓生物特征识别技术就是将计算机技术与光学、声学、生物传感器和生物统计学原理等高科技手段密切结合,利用人类固有的生理特性(如指纹、人脸、虹膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。

身份认证在人类社会生活中早已有之。传统的身份认证方法(如使用身份证、护照、钥匙、智能卡、密码、口令等)存在携带不便、容易伪造、容易遗失、容易因使用过多或不当而损坏或不可读、密码易被破解等诸多问题,其安全性低、可靠性差。而每个人所固有的生物特征,具有与其他人不同的唯一性和在一定时期内不变的稳定性,而且不会丢失、不易伪造和假冒,所以被认为是终极的身份认证媒介。

生物特征识别在国家安全、公安、司法、金融等领域有着广泛的应用,如重要部门的合法进入、计算机网络的登录控制、信用卡持卡人的身份验证、犯罪嫌疑人的身份辨认等。早在20年前,IBM、微软等公司就成立了BioAPI联盟,其宗旨是制定生物特征识别应用程序接口的工业标准。生物特征识别技术备受世界各国的重视,“9·11”恐怖袭击事件发生之后,以美国为首的西方国家将生物特征识别技术作为关系国家安全的关键技术加以发展。美国连续发布了3个法案,强调在边境检查、执法、民用航空等领域应用生物特征识别技术。2003年6月,在国际民用航空组织(ICAO)发布的规划中,也建议其188个成员国在护照中加入生物特征识别模块,大部分西方国家已经立法支持ICAO的这项规划。从2005年开始,多个国家开始发放“生物特征护照”(又被称作“电子护照”),它存储了一些可用于识别旅客身份的生物特征信息。

仅在2015年,美国就发放了超过1550万本护照和护照卡。

2016年,荷兰的一位企业家在斯德哥尔摩使用植入式芯片成功登上了飞机。

截至2018年,护照标准仍由ICAO管控。2015年,ICAO在9303号文件的修订版中规定了可机读护照和生物特征护照的格式。未来,如果我们真的要把纸质护照换成植入式芯片之类的东西,主导这次转换的很可能还是ICAO。

我国幅员辽阔、人口众多,未来必将是生物特征识别技术的应用大国,开展生物特征识别技术的研究对信息安全和国家安全具有重要意义。

可供选择的人体所固有的生物特征有许多,能够用来认证身份的生物特征应该具有以下特性。

① 普遍性:每个正常人都应该具有这种特征。

② 唯一性:不同的人应该具有各不相同的特征。

③ 可采集性:所选择的特征可以定量测量。

④ 稳定性:所选择的特征至少在一段较长的时间内是不变的,并且特征的采集不随条件、环境的变化而变化。

在实际的生物特征识别系统中,还应考虑如下因素。

① 性能:识别的准确性、速度、鲁棒性以及为达到所要求的准确性和速度所需要的资源。

② 可接受性:使用者在多大程度上愿意接受这种生物特征识别系统。

③ 安全性:用欺诈的方法骗过系统的难易程度。

④ 理论依据:是否具有相关的、可信的研究作为技术支持。

⑤ 提取的特征容量、特征模板是否占用较小的存储空间。

⑥ 造价:价格是否在用户可接受的范围之内。

⑦ 隐私保护:是否具有非侵犯性。

用于身份认证的生物特征可以分为两类:生理特征和行为特征。生理特征与生俱来,多为先天的,包括指纹、掌纹、手形、脸型、虹膜、视网膜、耳郭、DNA(脱氧核糖核酸)等;行为特征则是习惯使然,多为后天的,包括笔迹、步态、击键动作等。

我们一起看看常见的生物特征识别技术。

1.指纹识别

指纹是指人的手指末端正面皮肤上凸凹不平产生的纹线。纹线有规律的排列形成不同的纹型。纹线的起点、终点、结合点和分叉点被称为指纹的细节特征点。指纹识别就是通过比对指纹的细节特征点来进行鉴别。由于指纹具有终身不变性、唯一性和方便性,几乎已经成为生物特征识别的代名词。

其实,我国古代就利用指纹(手印)来证明个人身份(画押)。随着计算机技术的发展,美国联邦调查局(FBI)和法国巴黎警察局于20世纪60年代开始研究开发自动指纹辨认系统(Automatic Fingerprint Identification System, AFIS)用于刑事案件的侦破。20世纪90年代,用于个人身份认证的自动指纹识别系统得到开发和应用。自动指纹识别系统通过特殊的光电转换设备和计算机图像处理技术,对指纹进行采集、分析和比对,可以自动、迅速、准确地鉴别出个人身份。指纹识别技术主要包括指纹图像增强、特征提取、指纹分类和指纹匹配几个部分。

① 指纹图像增强。一般包括规格化、方向图估计、频率图估计、生成模板、滤波等几个环节。Hong等人采用同时具有频率选择和方向选择的Gabor滤波器来增强指纹图像,能在指纹图像质量很差的情况下取得很好的效果,并减少了计算局部区域方向图的开销。

② 特征提取。最常用的细节特征的定义是由FBI提出的,它将指纹图像的最显著特征分为脊终点和分叉点,每个清晰指纹一般有40~100个这样的细节点。指纹特征的提取采用链码搜索法对指纹纹线进行搜索,自动指纹辨认系统依赖于这些局部脊的特征及关系来鉴别身份。

③ 指纹分类。常见的有基于神经网络的分类方法、基于奇异点的分类方法、基于脊线几何形状的分类方法、基于指纹方向图分区和遗传算法的连续分类方法。

④ 指纹匹配。指纹匹配是指纹识别系统的核心步骤,匹配算法包括图匹配、结构匹配等,但最常用的方法是用FBI提出的基于细节模型来做细节匹配(即点模式匹配)。

指纹识别是国际公认的应用广、造价低、易用性高的身份认证技术。市场上推出的产品有指纹门锁、指纹考勤机、指纹门禁机、指纹保险箱、指纹储物柜、指纹无线鼠标、指纹U盘,以及内置指纹识别装置的手机、平板电脑、笔记本电脑等。十多年前,把指纹识别技术同IC卡结合起来是最有前景的应用方向,到2018年,最有前景的应用方向是指纹支付、扫手开柜门取货等应用。

2.虹膜识别

虹膜是眼球前部含色素的环形薄膜,由结缔组织细胞、肌纤维组成。虹膜图像中含有极其丰富的结构和纹理特征,作为生物识别特征,虹膜具有如下优势。

① 虹膜在妊娠3个月的时候开始形成,整体结构在妊娠8个月的时候开始创建,大概在2~3岁的时候稳定,以后不随年龄的增长而变化。

② 每个人的虹膜纹理在人群中的分布是随机的或者说是混沌的,虹膜的形成依赖胚胎中胚层的初始条件,不受遗传的影响,即使拥有同样的基因型(例如同卵双胞胎,甚至是同一个人的两只眼睛),二者的虹膜也是不相关的,因此虹膜可以说是唯一的。

③ 虹膜的内部组织被水样液和角膜所包围,与外界环境隔离开来,不易受损。

④ 不易被假冒,一般的外科手术不能改变虹膜的纹理。

⑤ 在识别的过程中,不需要和被识别者物理接触,具有非侵犯性。

⑥ 虹膜具有活体组织的特点,由于虹膜肌肉间复杂的相互作用,瞳孔直径一直在小的范围内有规律地变化,且随光线强度变化而收缩,使得虹膜具有高度的防伪性。

1987年,Flom和Safir首先提出了自动虹膜识别的思想。1993年,剑桥大学的Daugman提出了基于2D Gabor变换的虹膜识别方法,其主要思想是:首先构造二维Gabor滤波器,然后用它对图像进行滤波,获得相位信息之后,根据相位所在的象限编成256字节的相位码。Daugman的开创性工作使得自动虹膜识别成为可能,商业虹膜识别产品的核心软件大多基于Daugman的算法。

近年来,越来越多的科研工作者正投身于虹膜识别产品国产化的研究中,虽然起步较晚,但是国内的部分研究成果已经达到了国际领先水平。中国科学院自动化研究所的模式识别国家重点实验室是国内最早从事虹膜识别研究的单位之一。2006年9月,模式识别国家重点实验室作为中国虹膜识别技术的权威,参加了由国际生物识别组织举办的生物识别技术测评,其虹膜识别算法的速度和精度得到了国际同行的认可。此外,模式识别国家重点实验室的虹膜图像数据库已经成为国际上规模最大的虹膜信息共享库。我国的虹膜识别系统从硬件到软件都拥有完全自主知识产权,突破了西方国家的技术垄断与封锁。

张鹏飞等虹膜识别专家提出了一种基于多纹理特征融合的新的虹膜识别方法。该方法对虹膜图像进行Gabor小波变换后提取不同分辨率、不同方向下的纹理特征作为虹膜的全局特征,在滤波后的子窗口图像上运用灰度级共现矩阵提取虹膜的局部特征。通过加权欧几里得距离和最小距离分别对全局特征和局部特征进行分类识别,设计了基于模糊推理系统的全局特征和局部特征融合方法,以提高虹膜识别系统的鲁棒性。

3.声纹识别

声纹是一项根据语音波形反映说话人的生理、心理和行为特征的语音参数。人类语言的产生是人体语言中枢与发音器官共同作用的一个复杂的生理物理过程,人在讲话时使用的发声器官(舌、牙齿、喉头、肺、鼻腔)在尺寸和形态方面各不相同,所以任何两个人的声纹图谱都有差异。每个人的语音声学特征既有相对稳定性,又有变异性。这种变异可能来自生理、病理、心理、模拟、伪装,也与环境干扰有关。尽管如此,由于每个人的发音器官都不相同,因此,在一般情况下,人们仍能区别不同的人的声音或判断某些声音是否属于同一个人。声纹识别也叫说话人识别,可以看作语音识别的一种。但它不同于语音识别,并不注重语音信号中的语义内容,而是希望从语音信号中提取人的特征。在处理方法上,语音识别力图对不同人说话的差别进行归一化,而说话人识别则力图强调不同人之间的区别。

声纹识别可分为与文本相关的声纹识别和与文本无关的声纹识别两种。与文本相关的声纹识别要求用户按照规定的内容发音,每个人的声纹模型被逐个精确地建立,而识别时也必须按规定的内容发音,因此可以达到较好的识别效果,但需要用户配合,如果用户的发音与规定的内容不符合,则无法正确识别用户。而与文本无关的声纹识别则不规定说话人的发音内容,建立模型比较困难,但用户使用方便,可应用范围较宽。根据特定的任务和应用,两种声纹识别方式具有不同的应用范围。比如,在银行交易时可以使用与文本相关的声纹识别,因为用户自己进行交易时是愿意配合的;而在刑侦或侦听中则无法使用与文本相关的声纹识别,因为你无法要求犯罪嫌疑人或被侦听的人配合。

声纹识别涉及两个关键问题:一个是特征提取,另一个是模式匹配。特征提取的任务是提取并选择说话人的可分性强、稳定性高的声学特征或语言特征。与语音识别不同,声纹识别的特征必须是“个性化”特征。虽然大部分声纹识别系统用的都是声学层面的特征,但是表征一个人特点的特征应该是多层面的,包括:①与人类发音机制的解剖学结构有关的声学特征(如频谱、倒频谱、共振峰、基音、反射系数等)、鼻音、深呼吸音、沙哑音、笑声等;②受社会经济状况、受教育水平、出生地等影响的语义、修辞、发音、言语习惯等;③或受父母影响的韵律、节奏、速度、语调、音量等特征。

从建模的角度出发,声纹识别模型可以使用的特征包括:①声学特征;②词法特征;③韵律特征;④语种、方言和口音信息;⑤声道信息等。

根据不同的任务需求,声纹识别还面临特征选用的问题。例如,在刑侦中,希望不使用声道信息,也就是说希望弱化声道对识别的影响,因为我们希望不管说话人使用什么声道,系统都可以辨认出来。而在银行交易中,希望使用声道信息,即希望声道对识别有较大影响,从而剔除录音、模仿等行为带来的影响。

总之,较好的特征应该能够有效区分不同的说话人,但又能在同一说话人语音发生变化时保持相对稳定;不易被他人模仿或能够较好地解决被他人模仿的问题;具有较好的抗噪性能等。当然,这些问题也可以通过模型方法去解决。对于模式匹配,有以下几大类方法。

(1)模板匹配方法:利用动态时间规整(DTW)进行对准训练和特征序列测试,主要用于固定词组的匹配(通常为文本相关任务)。

(2)最近邻方法:训练时保留所有特征矢量,识别时对每个矢量都找到训练矢量中最近的K个,据此进行识别。

(3)神经网络方法:有很多种形式,如多层感知、径向基函数(RBF)等,可以显式训练以区分说话人和背景说话人,其训练量很大,且模型的可推广性不好。

(4)隐马尔可夫模型方法:通常使用单状态的隐马尔可夫模型,或高斯混合模型,是比较流行的方法,效果比较好。

(5)VQ聚类方法:效果比较好,算法也不复杂,和隐马尔可夫模型方法配合可以得到更好的效果。

(6)多项式分类器方法:有较高的精度,但模型存储和计算量都比较大。

声纹识别需要解决的问题还有很多,如以下问题。

(1)有限的训练及测试样本问题,即在声音不易获取的应用场合,能否用很短的语音进行模型训练,而且用很短的时间进行识别。

(2)声音模仿(或播放录音)问题,即怎样有效区分开模仿的声音(录音)和真正的声音。

(3)在有多个说话人说话的情况下,怎样有效提取目标说话人的声纹特征。

(4)怎样消除或减弱声音变化(不同语言、内容、身体状况、时间、年龄、情绪等)带来的影响。

(5)鲁棒性问题,即怎样消除声道差异和背景噪声带来的影响等。

4.人脸识别

人脸识别具有主动性、非侵犯性和对用户友好等优点。

人脸识别系统主要包括四个组成部分,分别为:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取以及人脸图像识别与匹配。

(1)人脸图像采集及检测。

人脸图像采集:不同的人脸图像都能通过摄像机采集下来,比如静态图像、动态图像、不同位置的图像、不同表情的图像等都可以得到很好的采集。当用户在采集设备的拍摄范围内时,采集设备会自动搜索人脸并拍摄人脸图像。

人脸检测:人脸检测在实际中主要用于人脸图像的预处理,即在图像中准确标定出人脸的位置和大小。人脸图像中包含的模式特征十分丰富,如直方图特征、颜色特征、模板特征、结构特征及Haar特征等。人脸检测就是把其中有用的信息“挑”出来,并利用这些特征实现人脸检测。

主流的人脸检测方法基于以上特征并采用Adaboost算法。Adaboost算法是一种用来分类的方法,它把一些比较弱的分类方法组合在一起,形成新的很强的分类方法。

在人脸检测过程中使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器,再将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,以有效提高分类器的检测速度。

(2)人脸图像预处理。

对人脸图像的预处理基于人脸检测结果,对图像进行处理并最终服务于特征的提取过程。系统获取的原始图像由于受到各种条件的限制和随机干扰,往往不能直接使用,必须在图像处理的早期阶段对它进行灰度校正、噪声过滤等图像预处理工作。对于人脸图像而言,其预处理过程主要包括人脸图像的光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等。

(3)人脸图像特征提取。

人脸图像可使用的特征通常分为视觉特征、像素统计特征、人脸图像变换系数特征、人脸图像代数特征等。人脸图像特征提取就是针对人脸的某些特征进行的。人脸图像特征提取也被称作人脸表征,它是对人脸进行特征建模的过程。人脸图像特征提取的一种重要方法是基于知识的表征方法。基于知识的表征方法主要根据人脸器官的形状以及它们之间的距离特性来获得有助于人脸分类的特征数据,其特征分量通常包括特征点间的欧氏距离、曲率和角度等。

(4)人脸图像匹配与识别。

人脸图像匹配是指将提取的人脸图像的特征数据与数据库中存储的特征数据进行搜索匹配,并设定一个阈值,当相似度超过这一阈值时,就把匹配得到的结果输出。人脸图像识别就是将待识别的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断。这一过程又分为两类:一类是确认,即一对一进行图像比对的过程;另一类是辨认,即一对多进行图像比对的过程。

5.步态识别

步态识别是一个新的发展方向,它指从相同的行走行为中寻找和提取个体的步态特征,以自动地实现身份识别。在智能视频监控场景中已经广泛应用的自动步态识别系统,融合了计算机视觉、模式识别、视频/图像序列处理等技术。

首先,由监控摄像头采集人的步态,通过检测与跟踪获得包含步态的视频帧,经过对采集的视频帧进行预处理,分析提取该人的步态特征。即对图像序列中的步态进行运动检测、运动分割、特征提取等步态识别前期的工作。

其次,经过进一步处理,使其成为与己存储在数据库中的步态相同的模式。

最后,将新采集的步态特征与数据库中的步态特征进行比对、识别,匹配成功即进行报警;匹配失败则监控摄像机继续进行步态的采集。

因此,一个智能视频监控的自动步态识别系统,实际上主要由监控摄像机、计算机、一套性能良好的步态视频序列处理与步态识别算法组成。其中,最关键的是步态识别算法。

自“9·11”事件以来,远距离身份识别技术的相关研究备受关注。与其他生物特征识别技术相比,步态识别的突出特点是能远距离识别。因此,步态识别的研究已经越来越引起国内外学者的关注。己研究出的步态识别算法有如下几种。

(1)二维步态识别算法。

对于每个步态序列而言,一种改进的背景减除技术被用来提取人的空间轮廓。这些轮廓的边缘,按照逆时针方向展开为一系列相对于质心的距离模板特征。这些模板特征通过使用主元统计分析方法来训练,从而得出步态形状的变化模式在特征空间中的轨迹表达。识别时,采用时空相关匹配方法和基于归一化欧氏距离的最近邻规则,并引入个人的体形等生理特征,以用于必要的步态分类、校验。

(2)行走步态识别算法。

该算法源于“从行走运动的时空模式中可得到人体的外观”的观点。对每个序列而言,背景减除过程用来提取行人的运动轮廓,这些轮廓在二维空间中被描述为一个序列的复数配置,并随时间变化。利用Procrustes形状分析方法,从该序列的复数配置中获取主轮廓模型作为人体的静态外观特征。实验结果表明,该算法获得了令人满意的识别性能。

(3)时空轮廓分析算法。

该算法源于“行走运动导致人体轮廓随着时间的变化而变化”的直观想法。对于每个序列而言,背景减除与轮廓生成相关算法用于检测和跟踪行人的运动轮廓,这些随时间变化的二维轮廓形状被转换为对应的一维距离信号,可以通过特征空间变换来提取步态特征,并基于时空相关或归一化欧氏距离度量,以及标准的模式分类技术进行最终的识别。实验结果表明,该算法不仅获得了令人满意的识别性能,而且对计算能力的要求较低。

(4)基于模型的算法。

该算法源于“行走运动的关节角度变化包含着丰富的个体识别信息”的思想。首先,结合人体模型、运动模型和运动约束等先验知识,利用Condensation算法对行人进行跟踪。然后,从跟踪结果中获取人体主要关节的角度变化轨迹。这些轨迹经过结构归一化和时间归一化后,作为动态特征用于身份识别。

(5)基于Hough变换的算法。

这是一种基于新的特征提取方法的自动步态识别算法,该算法仅从腿部的运动进行身份识别。对于每个序列,用一种基于图像色度偏差的背景减除算法来检测运动对象。在经过后处理的二值图像序列中,利用边界跟踪算法获取对象边界,在对象边界图像上,局部应用Hough变换检测大腿和小腿的直线,从而得到大腿和小腿的倾斜角。用最小二乘法将一个周期内的倾斜角序列拟合成5阶多项式,把按傅里叶级数展开得到的相位与振幅的乘积定义为低维步态特征向量。在小样本的数据库上用Fisher线性分类器验证所研究算法的性能,正确分类率为79.17%,在步态数据库不是很理想的情况下,算法也取得了较好的识别率。

(6)基于三维小波矩理论的算法。

广义多尺度分析理论针对不同的应用图像或信号库,得到最优小波分解,并在人体步态识别中与二维小波矩结合进行应用。在三维物体的表示方面,三维小波矩理论作为三维物体的一种无冗余的描述和识别方法。与现存的方法相比,它不但具有平移、缩放和旋转不变的特性,在径向上还增加了多尺度分析的特性。可以根据不同的需要,提供多层次的特征描述,在引进球面调和函数加速算法和Mallat算法后,可以使小波矩的计算得到双重加速。有人计划搭建实用的三维物体检索平台,以便进一步完善该算法。

此外,有人基于“人体生物特征不仅包含静态外观信息,也包含行走运动的动态信息”的思想,提出了一种在判决级上融合人体静态特征和动态特征的身份识别方法。此方法在不同融合规则下的实验结果表明,融合后的识别性能优于使用任何单一模态的识别性能。

6.笔迹识别

笔迹是书写者自身的生理特征和后天学习过程的综合反映。笔迹识别也是人们进行身份认证的重要手段之一。

计算机笔迹识别主要分为脱机识别和联机识别两类。脱机笔迹识别的对象是写在纸上的字符,通过扫描仪、摄像机等设备将字符输入计算机以后,进行分析与鉴定;而联机笔迹识别则通过专用的数字板或数字仪实时采集书写信号,除了可以采集签名位置等静态信息,还可以采集书写速度、运笔压力、握笔倾斜度等动态信息。显然,较脱机笔迹识别而言,联机笔迹识别可利用的信息更多,同时识别难度也更大。

笔迹识别主要研究两类问题,即文本相关的笔迹识别问题和文本无关的笔迹识别问题。文本相关的笔迹识别对于书写内容有限制,因此相对容易解决,然而应用范围较窄;而文本无关的笔迹识别,由于对书写内容不加限制,问题变得更加复杂。截至本书完稿时,对于文本无关的笔迹识别,还没有准确而高效的识别系统投入市场。

7.生物特征识别系统的性能指标

衡量一个生物特征识别系统的两个重要性能指标是:误拒率(False Rejection Rate,简称FRR;或False Non-Match Rate,简称FNMR)和误认率(False Acceptance Rate,简称FAR;或False Match Rate,简称FMR)。FRR是指系统拒绝真正的生物特征拥有者的错误率;FAR是指系统将冒充者误认为生物特征拥有者的错误率。对于理想的系统来说,这两个错误率都应该是零。但在实际应用中,这两个指标是相关的,当FRR比较低时,FAR就会比较高;反之亦然。系统往往需要在FRR和FAR之间取一个平衡点。用ROC(Receiver Operating Characteristic)曲线能够很好地反映FRR和FAR之间的关系,ROC曲线如下图所示。

ROC曲线

曲线上的点表示在某个给定的匹配阈值下得到的FRR和FAR。在现有的技术水平下,无法使FRR和FAR同时达到最小,需要调整匹配阈值来满足不同应用的要求。我们把调整匹配阈值称为调整“操作点”。好的系统应该允许对操作点进行自由调整。

身份认证涉及身份辨认和身份验证两方面的应用。以指纹识别为例,身份验证就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一比对来鉴定身份的过程。作为验证的前提条件,指纹必须在指纹库中已经登记,且以一定的压缩格式存储,并与其姓名或其标识(如身份证号)联系起来,根据所提供的标识来鉴定身份的合法性。验证其实是回答“他是他自称的这个人吗?”这样的问题。在银行交易等安全性要求高的应用场合,用到的是身份验证。身份验证通常采取“宁漏勿错”的策略,因此应尽量减小FAR,而放宽FRR指标。身份辨认则是把现场采集到的指纹同指纹模板数据库中的指纹进行逐一比对,从中找出与现场指纹相匹配的指纹,这是“多选一”问题。身份辨认其实回答了“他就是我们要找的这个人吗?”这样的问题。在刑侦应用中,通常将一个身份不明的人的指纹与指纹库中有犯罪记录的人的指纹进行比对,以确定此人是否有犯罪记录,采取“宁错勿漏”的策略,此时应尽量减小FRR,而放宽FAR指标。FRR实际上也是系统易用性的重要指标。由于FRR和FAR是相互矛盾的,这就使得在应用系统中,要权衡易用性和安全性。对于指纹识别系统来说,一个有效的办法是比对两个或更多个指纹,从而在不损失易用性的同时,极大地提高系统的安全性。

8.多模式生物特征识别技术

迄今为止,还没有一种单独的生物特征识别技术可以满足所有实际的需求。单个生物特征有其固有的局限性,例如,一部分人是没有指纹的,此时单靠指纹识别就有问题,戴隐形眼镜的人不能单靠虹膜识别来认证,用人脸识别技术无法区分双胞胎,等等。而且,基于单个生物特征的身份认证系统所能达到的准确率是有限的。表1给出了几种生物特征识别技术所能达到的FRR和FAR,表2给出了实际应用所要求的FRR和FAR。

表1 几种生物特征识别技术所能达到的FRR和FAR

表2 实际应用所要求的FRR和FAR

许多学者致力于多模式生物特征识别技术的研究,通过融合多种生物特征,来提高识别的准确率、扩大应用范围,以满足实际的需求。Brunelli和Falavinga于1995年提出了利用多种特征进行个人身份认证的方法,并在匹配层次上整合了人脸识别和说话人识别,取得了较好的识别效果。该方法实现的难点在于需要准确构建正负样本集,选择若干映射参数,这在小样本情况下有很多困难。Kittler等人提出了融合理论框架,同时比较了加法准则和乘法准则等算法在融合中的优缺点。Jain等人于1998年提出将指纹识别与人脸识别的结果相融合,于2000年提出确定每个用户的特定参数的方法。

2005年,由清华大学电子系自主研制的“TH-ID多模式生物特征身份认证识别系统”通过教育部组织的专家鉴定。该系统包括两大部分内容:① 利用人脸、笔迹、签字和虹膜4种生物特征进行身份认证(识别和验证)的4个子系统;② 融合多种生物特征进行身份认证的系统。他们构建了基于统一数据库的人脸、笔迹、签字、虹膜4种生物特征的多模式生物特征融合的身份识别认证系统,可以对融合模式进行选择。例如,人脸与签字融合的身份识别/验证系统,人脸与虹膜融合的身份识别/验证系统等。这可以有效克服单一生物特征常有的缺陷,极大地提高身份认证的准确度,从而也为利用生物特征进行身份认证的实际应用打下了坚实的基础。这一技术已被香港伟清创新科技有限公司等数家公司支持并进入产品开发阶段,集成这一技术的人脸认证旅客自助通道系统已经在深圳罗湖口岸正式投入使用,通过率超过97%。

小结:在信息时代,如何准确鉴定一个人的身份、保护信息安全,已成为一个必须解决的关键的社会问题。传统的身份认证媒介由于极易伪造和丢失,越来越难以满足社会的需求,最为便捷与安全的解决方案无疑就是生物特征识别技术。它不但简单快速,而且利用它进行身份认定,安全、可靠、准确,同时更易于和公共安全、公安监控等系统整合,实现自动化管理。由于其广阔的应用前景、巨大的社会效益和经济效益,已引起各国的广泛关注和高度重视。

3.1.9 机器人技术

机器人技术是AI技术的一种,机器人是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编写的程序,还可以根据AI设备的行动纲领行动。它的任务是协助或取代人类的工作,例如生产业、建筑业中的高强度工作、危险的工作。

1.机器人的构成

机器人一般由执行机构、驱动装置、检测装置、控制系统、复杂机械结构等部分组成。

执行机构是机器人的本体,其臂部一般采用空间开链连杆机构,其中的运动副(转动副或移动副)常被称为关节,关节个数通常为机器人的自由度数。根据关节配置形式和运动坐标形式的不同,机器人执行机构可分为直角坐标式、圆柱坐标式、极坐标式和关节坐标式等类型。出于拟人化的考虑,常将机器人本体的有关部位称为基座、腰部、臂部、腕部、手部(夹持器或末端执行器)和行走部(对于移动机器人而言)等。

驱动装置是驱使执行机构运动的机构,它根据控制系统发出的指令信号,借助动力元件使机器人运动。它的输入是电信号,输出是线位移量、角位移量。机器人使用的驱动装置主要是电力驱动装置,如步进电机、伺服电机等,也有采用液压、气动等装置驱动的机器人。

检测装置是实时检测机器人的运动及工作情况的机构,其根据需要将情况反馈给控制系统,与设定信息进行比较后,对执行机构进行调整,以保证机器人的动作符合预定的要求。检测装置的传感器大致可以分为两类:一类是内部信息传感器,用于检测机器人各部分的内部状况,如各关节的位置、速度、加速度等,并将所测得的信息作为反馈信号送至控制器,形成闭环控制。另一类是外部信息传感器,用于获取机器人的作业对象及外界环境等方面的信息,使机器人的动作能适应外界情况的变化,使之达到更高层次的自动化,甚至使机器人具有某种“感觉”,向智能化的方向发展。例如,利用外部传感器给出工作对象、工作环境的有关信息,利用这些信息构成一个大的反馈回路,从而大幅提高机器人的工作精度。

控制系统有两种:一种是集中式控制,即机器人的全部控制工作由一台计算机完成。另一种是分散(级)式控制,即采用多台计算机来负责机器人的控制工作,当采用上、下两级计算机共同完成机器人的控制时,作为上级的主机常用于负责系统的管理、通信、运动学和动力学计算,并向下级计算机发送指令信息;作为下级的从机,各CPU分别对应一个关节,进行插补运算和伺服机构控制,以实现给定的运动,并向主机反馈信息。根据作业任务的不同,机器人的控制方式又可分为点位控制、连续轨迹控制和力(力矩)控制。

2.机器人技术的发展

随着智能控制、机械、通信、电子等技术的进步与发展,机器人技术及其产业在生活中的方方面面发挥着越来越重要的作用。人类对于机器人有着长期的刚性需求,这主要是由于以下原因:机器人是制造业发展的基石;在工业上应用机器人可以提升精度和效率;机器人可以渗透到医疗、教育、服务等生活的诸多方面;机器人产业具有重要的社会价值。在过去的几十年里,制造业得到了快速发展。但是,全球化经济模式已明显改变了制造业的格局。随着劳动力成本的提高,大量劳动密集型产业面临转型升级和区域性转移的挑战。工业机器人具有工作效率高、稳定可靠、重复精度好、能在高危环境下作业等优势,在传统制造业,特别是劳动密集型产业的转型升级中可发挥重要作用。

机器人的发展历史大体可以概括为三个阶段:第一个阶段的机器人只有手,即以固定程序工作,对外界的信息没有反馈能力;第二个阶段的机器人具有了一定的反馈能力,即有了感觉,如力觉、触觉、视觉等;第三个阶段是“智能机器人”阶段,这一阶段的机器人已经具有自行学习、推理、决策、规划等自主处理事务的能力。

第一代机器人一般可以根据编程人员所固化的程序,完成一些简单的重复性工作。这一代机器人从20世纪60年代后期开始投入使用,由于其操作简单、可靠性高、成本低廉,已经在很多中小型工厂中得到了普遍应用。

第二代机器人是感知机器人,即自适应机器人。该类机器人在前一代机器人的机械结构、电气结构的基础上增加了“感知”能力。这类机器人在制造汽车、航空器、船舶等产品的自动化生产线中得到了广泛的应用。其工作效率、工作能力较第一代机器人有明显提升。

第三代机器人将具有识别、推理、规划和学习等能力,它可以把感知和行动智能化地结合起来,因此能在非特定环境下作业,故被称为“智能机器人”。这类机器人还处于试验阶段,正在向实用化的方向发展。在过去的几十年里,机器人学和机器人技术的发展引人注目,具体体现在如下方面。

(1)机器人产业在全世界范围内迅速发展。

(2)机器人的应用范围遍及工业、农业、国防等各个领域。

(3)形成了新的学科——机器人学。

(4)机器人向智能化的方向发展。

(5)服务机器人成为机器人界的“新秀”。

机器人是先进制造技术及自动化装备的典型代表,是人造机器的终极形式。其需要的理论及实践知识包罗万象,涉及机械、电子、液压、传感器及其应用、自动控制原理、通信技术、网络技术、计算机、人工智能等多个学科及领域,是多种高科技技术理论的集成成果。其应用领域主要有两个:制造业领域和非制造业领域。这里对制造业机器人(即工业机器人)和非制造业机器人分别进行简述。

3.制造业机器人

“工业机器人”一词由美国《金属市场报》于1960年提出,美国机器人协会将其定义为:用来进行搬运机械部件或工件的、可编程的多功能操作器,或通过改变程序可以完成各种工作的特殊机械装置。这一定义已经被国际标准化组织所采纳。随着工业机器人的深度和广度的延伸及其智能化水平的提高,工业机器人已在众多领域得到了应用。工业机器人已广泛应用于汽车及汽车零部件制造业、机械加工行业、电子电气行业、橡胶及塑料工业、食品工业、木材与家具制造业等行业。在工业生产中,弧焊机器人、点焊机器人、分配机器人、装配机器人、喷漆机器人及搬运机器人等工业机器人都已被大量采用,并从传统的制造业领域向非制造业领域延伸,如采矿机器人、建筑机器人以及水电系统中用于维护、维修的机器人等。在国防军事、医疗卫生、食品加工、生活服务等领域,工业机器人的应用也越来越多。

下面介绍几种常见的工业机器人。

搬运机器人。为了提高自动化程度和生产效率,制造企业通常需要快速、高效的物流线来贯穿整个产品的生产及包装过程,搬运机器人在物流线中发挥着举足轻重的作用。搬运机器人一方面具有人类难以达到的精度和效率,另一方面可以承担大重量和高频率的搬运作业,因此被广泛应用在搬运、码垛、装箱、包装和分拣作业中。

打磨抛光机器人。机械零件形状不断向复杂化、多样化的方向发展,导致打磨抛光机器人少有统一的方案。在打磨抛光加工中,机器人的工作方式有两种:一种是机器人夹持被加工工件贴近加工工具(如砂轮、砂带等)进行打磨抛光加工;另一种方法是机器人夹持打磨抛光加工工具贴近工件进行加工。

移动式工业机器人。对于制造大尺寸产品,如航空航天产品,传统的工业机器人无法胜任。首先,大尺寸产品由于重量和尺寸较大,不易移动;其次,工业机器人相对产品而言尺寸不足,如果单纯地按比例放大,机器人的制造和控制成本将变得十分高昂。因此,移动式工业机器人是一个很好的解决方案。

码垛机器人。最早将工业机器人用于码放物体的国家是日本和瑞典。在20世纪70年代末,日本第一次将机器人用于码垛作业。1974年,瑞典ABB公司研发出全电控式工业机器人,主要应用于工件的取放和物料的搬运。此外,德国、意大利、韩国等国家的工业机器人的研发水平也相当高,如德国的KUKA等。

4.非制造业机器人

由于技术进步、制造成本下降,机器人正悄无声息地进入平常人的生活、学习和工作中。它们在家可以做家务,在战场上可以侦查,甚至还可以在医院自主进行精细的手术。在教育、医疗、军事和服务行业中,小型机器人正发挥着重要的作用。下面列举几个非制造业机器人的典型实例。

教育机器人。教育机器人是以激发学生学习兴趣、培养学生综合能力为目标的机器人成品套装或散件。它除机器人机体本身外,还有相应的控制软件和教学课本等内容。近年来,教育机器人逐步成为中小学技术课程和综合实践课程的良好载体。常见的教育机器人既有人形教育机器人,也有非人形教育机器人。青少年可以与机器人实现基本的互动交流,并可以对机器人的结构进行改装以扩展其功能。通过了解机器人的结构部件和所需知识等,操控者可以较为便捷地掌握机器人的基础功能,并开拓思维进行创新。

炒菜机器人。炒菜机器人不仅实现了煎、炒、炸等中式烹饪过程的智能化,还可以轻松做出意大利、希腊、法国等地的菜肴。只需轻轻一按,就可以享受到世界各地的地道美食,烹饪过程不粘、不糊、不溢,而且安全、节能、无油烟。

医疗机器人。随着机器人产业的快速发展,医疗机器人的发展已经得到了全世界的高度关注。随着我国人口老龄化程度的加剧和科技的发展,人们对生活各个方面的要求也在提高。以医疗机器人为代表的服务机器人蕴藏着极大的发展潜力,服务机器人未来的市场规模很可能会超过工业机器人。美国已经把治疗机器人、假肢机器人、康复机器人、心理康复辅助机器人、个人护理机器人、智能健康监控系统确定为未来的6大研究方向。

军事机器人。在立国之根本的国防业,机器人也已经在悄然发挥作用。军事机器人具有常规作战人员不具备的优点:灵敏度高、载重能力强、高续航能力、可在特殊场合进行特种作战等,最重要的是可以减少人员的伤亡。其在战场上可进行电子干扰、信息采集、侦查、突击、排雷、爆破、运输等任务。

小结:机器人产业发展迅猛,相关技术的发展也日新月异。因其适应能力不断增强,智能化程度不断提升,预计未来机器人会被应用在人类生活的方方面面,大到宇宙探索,小到衣食住行。届时,人类需要思考机器人大面积普及后的伦理、法律等社会问题。如人工智能会不会造成人类的大面积失业?智能化的最终结局会不会是人类的逐渐退化?机器人最终有无可能成为人类的敌人?这一系列的问题值得我们深思。

3.1.10 文本分析和自然语言处理

自然语言处理使用和支持文本分析,它借助统计学习方法和机器学习方法,为理解句子结构及其意义、情感和意图提供方便。

自然语言处理是文本挖掘的研究领域之一,此领域探讨如何处理及运用自然语言。

对于自然语言处理的发展历程,可以从哲学中的经验主义和理性主义说起。基于统计的自然语言处理是哲学中的经验主义,基于规则的自然语言处理是哲学中的理性主义。在哲学中,经验主义与理性主义的斗争源远流长,这种矛盾与斗争也反映在了自然语言处理上。

早期的自然语言处理具有鲜明的经验主义色彩。如在1913年,马尔科夫提出马尔科夫随机过程与马尔科夫模型的基础就是“手工查频”,具体工作是统计《欧根·奥涅金》长诗中元音与辅音的出现频率。1948年,香农把离散马尔科夫概率模型应用于语言自动机,同时采用手工方法统计英语字母的出现频率。

然而,这种经验主义方法到了乔姆斯基时代出现了转变。

1956年,乔姆斯基借鉴香农的工作,把有限状态机作为刻画语法的工具,建立了自然语言的有限状态模型,具体来说就是用“代数”和“集合”将语言转化为符号序列,建立了一大堆有关语法的数学模型。这些工作非常伟大,为自然语言和形式语言找到了一种统一的数学描述理论,催生了一个叫作“形式语言理论”的新领域。在这个时代,经验主义被全盘否定,理性主义取得“胜利”。

在20世纪50年代末至20世纪60年代中期,经验主义“东山再起”。学者普遍认为只有详尽的历史语料才能带来“靠谱”的结论,于是一些比较著名的理论与算法诞生,如贝叶斯方法、隐马尔可夫模型、最大熵算法、Viterbi算法、支持向量机等。世界上第一个联机语料库也于这个时期在布朗大学诞生。

但是总体来说,那个时代依然是基于规则的理性主义的天下,经验主义虽然取得了不俗的成就,却依然没有受到太大的重视。

20世纪90年代以来,基于统计的自然语言处理开始“大放异彩”。首先是在机器翻译领域取得了突破。1990年,在芬兰赫尔辛基举办的第13届国际计算语言学会议的主题为“处理大规模真实文本的理论、方法与工具”,研究的重心开始转向大规模真实文本,传统的仅仅基于规则的自然语言处理越来越不被重视。学者们认为,大规模语料至少是对基于规则的方法的有效补充。

1994年至1999年,经验主义开始空前繁荣。句法剖析、词类标注、参照消解、话语处理等算法几乎把“概率”与“数据”作为标准方法,成为自然语言处理的主流。

总之,理性主义在自然语言处理的发展史上是有重要地位的,也“辉煌”了几十年。但是,基于规则的理性主义在当下这个时代被提及得比较少,用得也比较少,主要是由于它自身存在以下几个缺陷。

(1)鲁棒性差。过于严格的规则导致对非本质错误“零容忍”。

(2)研究强度大,泛化能力差。一项研究需要语言学家、语音学家和各个领域的专家互相配合,且很难应用机器学习的方法,难以普及。

(3)实践性差。基于统计的方法可以根据数据集不断对参数进行优化,而基于规则的方法就不可以,这在当前数据量巨大的情况下,影响是致命的,因为前者常常可以通过增大训练集来获得更好的效果,后者则死板许多,结果往往不尽如人意。

但理性主义还是有很多优点的,同样,经验主义也有很多缺陷,两种方法各有所长、各有所短。一个学科通常有多个研究角度,某个角度在某个特定的历史时期对提高生产力“更有用”,所以重视的人更多。但“有用”不代表胜利,暂时的“无用”更不能说是科学层面上的失败,尤其是在中文自然语言处理的发展还不成熟的时期。笔者认为基于统计的自然语言处理在很多方面并不完美,基于规则的自然语言处理的发展空间还很大,需要更多的人去关注。

在结合深度学习进行自然语言处理的时候,笔者一直在思考一些问题,其中有一个核心问题:神经网络究竟是怎样让各种NLP任务被如此完美地完成的呢?数据在神经网络中到底发生了什么?词向量、分布式表示、word2vec、glove等名词分别代表什么?它们的具体关系是什么?它们是否是平级关系?

1.DeepNLP的核心:语言表示

最近有一个新名词——DeepNLP(DeepLearning+NLP=DeepNLP)开始流行。当常规的机器学习发展到了一定的阶段以后,风头慢慢地被后起的深度学习夺去。深度学习开始引领新一波高潮,因为深度学习有机器学习难以比拟的长处,当深度学习进入自然语言处理领域,自然要带来翻天覆地的变化。

先看一下数据特征表示问题。数据表示是机器学习的核心问题,在过去的机器学习阶段,特征工程大行其道,人工设计大量的特征以解决数据的有效表示问题。而到了深度学习时期,完全不用考虑如何标识数据特征,end2end(端到端)“一步到位”, Hyperparameter(机器学习模型中的超级参数)自动帮你选择关键的特征参数。

深度学习如何能在自然语言处理中发挥应有的作用呢?很明显,先不提如何设计出很强势的网络结构,不提如何在自然语言处理中引入基于神经网络的解决方案,首先需要把语言表示这一“关”过了——如何让语言表示成为神经网络能够处理的数据类型。

我们先看如何用数据表示图像、语音。

在语音处理中,由音频频谱序列向量所构成的矩阵作为前端被输入神经网络进行处理。在图像处理中,由图片的像素构成的矩阵展平成动态数组后,组成动态数组序列被输入神经网络进行处理。在自然语言处理中,将每一个词用一个向量表示出来。

在图像和语音领域,最基本的数据是信号数据,我们可以通过一些距离度量,判断信号是否相似。在判断两幅图片是否相似时,只需通过观察图片本身就能给出回答。而语言作为人类进化了几百万年所产生的一种思维信息的表达工具,其具有高度抽象的特征。文本是符号数据,两个词只要字不同,就难以刻画它们之间的联系,即使是“麦克风”和“话筒”这样的同义词,从字面上也难以看出这两者意思相同(语义鸿沟现象)。词语并不是文字简单地相加就能表示出来的,在判断两个词是否相似时,需要更多的背景知识才能做出回答。

根据上述内容可知:有效表示出句子是神经网络发挥出强大拟合计算能力的关键前提。

2.自然语言处理中词的表示方法

接下来将按照上面的思路,说明各种词的表示方法。截至本书完稿时,词的表示分为词的独热表示和词的分布式表示。

(1)词的独热表示。

自然语言处理中最直观、最常用的词的表示方法是词的独热表示。这种方法把每个词表示为一个很长的向量,这个向量的维度是词表大小,其中绝大多数元素为0,只有一个维度的值为1,这个维度就代表了当前的词。关于词的独热表示的资料很多,这里简单举个例子进行说明。

“话筒”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ⋯]。

“麦克风”表示为 [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 ⋯]。

每个词都是“茫茫0海”中的一个1。这种词的独热表示如果采用稀疏方式存储(也就是给每个词分配一个数字ID)会非常简洁。比如在刚才的例子中,话筒记为3,麦克风记为8(假设从0开始标记)。如果要编程实现的话,用哈希表给每个词分配一个编号就可以了。这个简洁的表示方法配合最大熵、SVM、CRF等算法已经能很好地完成自然语言处理领域的各种主流任务。

但是它也有不足之处:①向量的维度会随着句子中词的数量类型的增加而增大;②任意两个词之间都是孤立的,根本无法表示出语义层面上词与词之间的相关关系,而这一点是致命的。

(2)词的分布式表示。

传统的词的独热表示仅仅将词符号化,不包含任何语义信息。如何将语义融入词的表示中?Harris在1954年提出的分布式假说为这一设想提供了理论基础:上下文相似的词,其语义也相似。Firth在1957年对分布式假说进行了进一步阐述和明确:词的语义由其上下文决定。

基于分布式假说的词的表示方法,根据建模方式的不同主要可以分为三类:基于矩阵的分布式表示、基于聚类的分布式表示和基于神经网络的分布式表示。尽管这些不同的分布式表示方法使用了不同的技术手段获取词的表示,但由于这些方法均基于分布式假说,因此,它们的核心思想也都由两部分组成:①选择一种方式描述上下文;②选择一种模型刻画某个词(下文称“目标词”)与其上下文之间的关系。

在详细介绍词的分布式表示之前,需要将自然语言处理中的一个关键概念描述清楚:语言模型。语言模型包括文法语言模型和统计语言模型,一般我们指的是统计语言模型。

统计语言模型是把语言(词的序列)看作一个随机事件,并赋予相应的概率来描述其属于某种语言集合的可能性。给定一个词汇集合V,对于一个由V中的词构成的序列S=(w1, ⋯, wT)∈Vn,统计语言模型赋予这个序列一个概率P,来衡量S符合自然语言的语法和语义规则的置信度。

用一句简单的话来说就是:语言模型就是计算一个句子的概率大小的模型。这有什么意义呢?一个句子的概率打分越高,说明它越像人说出来的自然句子。

常见的统计语言模型有N元文法模型等。形式化地讲,统计语言模型的作用是为一个长度为m的字符串确定一个概率分布Pw1, w2, ⋯, wm),以表示其存在的可能性,其中,w1wm依次表示这段文本中的各个词。

① 基于矩阵的分布式表示。基于矩阵的分布式表示通常又被称为分布式语义模型,在这种表示下,矩阵中的一行对应词的表示,这种表示描述了该词的上下文分布。由于分布式假说认为上下文相似的词,其语义也相似,因此,在这种表示下,两个词的语义相似度可以直接转化为两个向量的空间距离。

常见的Global Vector模型(GloVe模型)是一种对“词—词”矩阵进行分解从而得到词的表示的方法,属于基于矩阵的分布式表示。

② 基于神经网络的分布式表示——词嵌入。基于神经网络的分布式表示一般被称为词向量、词嵌入。基于神经网络的分布式表示技术通过神经网络对上下文,以及上下文与目标词之间的关系进行建模。由于神经网络较为灵活,这类方法的最大优势在于可以表示复杂的上下文。在前面基于矩阵的分布式表示方法中,最常用的上下文是词。如果使用包含词序信息的n-gram作为上下文,当n增加时,n-gram的总数会呈指数级增长,此时会遇到维数灾难问题。而神经网络在表示n-gram时,可以通过一些组合方式对 n 个词进行组合,使得参数个数仅以线性速度增长。有了这一优势,神经网络模型可以对更复杂的上下文进行建模,以包含更丰富的语义信息。

前面提过,为了选择一种模型来刻画目标词与其上下文之间的关系,我们需要在词向量中捕获任意一个词的上下文信息。同时,上面提到了统计语言模型正好具有捕捉上下文信息的能力,因此,构建上下文与目标词之间关系的最自然的一种思路就是使用语言模型。

2001年,Bengio等人正式提出神经网络语言模型(Neural Network Language Model, NNLM),该模型在学习语言模型的同时,也得到了词向量。请注意:词向量可以被认为是用神经网络训练语言模型的副产品。

(3)神经网络语言模型与word2vec。

我们已经对分布式表示以及词嵌入概念的层级关系有了理性的认识,但这跟word2vec有什么联系呢?下面梳理一下相关概念。

① 神经网络语言模型。上文讲过,通过神经网络训练语言模型可以得到词向量,那么,究竟有哪些类型的神经网络语言模型呢?据笔者所知,大致有以下几种。

● Neural Network Language Model, NNLM。

● Log Bilinear Language Model, LBLM。

● Recurrent Neural Network based Language Model, RNNLM。

● C&W模型。

● CBOW模型和Skip-gram模型。

② word2vec与CBOW模型、Skip-gram模型的关系。这里我们引出一个术语:word2vec。上面5种神经网络语言模型只是逻辑概念上的东西,我们需要通过设计将其实现出来。其中,实现CBOW模型和Skip-gram模型的工具是word2vec,实现C&W模型的工具是SENNA。

统计语言模型就是给定几个词,在这几个词出现的前提下来计算某个词出现的概率。CBOW模型也是统计语言模型的一种,即根据某个词前面的C个词或者前C个连续的词来计算某个词出现的概率。而Skip-gram模型则相反,它是先确定某个词,然后分别计算在它前后出现某几个词的概率。

以“我爱魔都”这句话为例。假设我们现在关注的词是“爱”,那么,C=2时它的上下文分别是“我”“魔都”。CBOW模型就是把“我”“魔都”的独热表示作为输入,也就是把C个1×v向量,分别跟同一个v×n系数矩阵W1相乘得到C个1×n隐藏层,然后 C 个隐藏层取平均,只算一个隐藏层,再跟另一个 n×v 系数矩阵W2相乘得到1×v的输出层,这个输出层的每个元素代表的就是词库里每个词的事后概率。输出层需要跟“爱”的独热表示做比较计算。这里需要注意的是v通常是一个很大的数(比如几百万),计算起来相当费时间。除了“爱”那个位置的元素,其他元素肯定要算在loss里面。word2vec用基于赫夫曼编码的Hierarchical softmax筛选掉了一部分不可能的词,然后又用nagetive samping去掉了一些负样本的词,所以时间复杂度就从Ov)变成了O(logv)。Skip-gram的训练过程与此类似,只不过输入/输出刚好相反。

Word Embedding的训练方法大致可以分为两类:一类是无监督的预训练或弱监督的预训练;另一类是端对端的监督训练。无监督的预训练或弱监督的预训练以word2vec和Auto-Encoder为代表。这一类模型的特点是,不需要大量的人工标记样本就可以得到质量还不错的Embedding向量。不过因为缺少了任务导向,可能还无法解决我们要解决的问题。因此,我们往往会在得到预训练的Embedding向量后,用少量人工标注的样本去调整整个模型。

端到端的监督模型在近几年越来越受人们的关注。与无监督模型相比,端到端的监督模型在结构上往往更加复杂。同时,也因为有着明确的任务导向,端到端的监督模型学习到的Embedding向量往往也更加准确。例如,通过一个Embedding层和若干个卷积层连接而成的深度神经网络可以实现对句子的情感分类,可以学习到语义更丰富的词向量。

词向量既能够降低维度,又能够捕捉到当前词在上下文中的信息(表现为前后距离关系)。我们将其用来表示词语、句子并作为神经网络的输入是合适的。

小结:当你做某一项具体的自然语言处理任务时,如果要用到词向量,笔者建议你:①选择使用别人训练好的词向量(注意:需要使用相同语料内容的词向量);②训练自己的词向量。