业内瞩目的李世石与谷歌人工智能AlphaGo人机大战已经赛罢3局,李世石第一局认输之后,引起了全民关于人工智能的讨论,很多人担忧有一天人工智能将取代人类……此次人机大战,无论最后的赢家是谁,以AlphaGo为代表的人工智能已经从实验室逐步走向了商用道路,也开启了未来的万亿级的大市场。其实很多技术已经在日常生活中和普通人有了关系。人工智能在诸如智能穿戴设备、无人机、基于大数据的业务分析等领域得到应用,节省了大量人工成本,机器人的时代已经到来,这已经是无可避免的历程。今后机器人也将逐渐走进人类的生活中,甚至替代人类。虽然实体机器人短期无法普及到各个行业,但虚拟机器人接入简单,使用方便,机动性强。一旦开始应用,便会像病毒一样普及。。
智能机器人,是一种通过自然语言模拟人类进行对话的程序。通常运行在特定的软件平台上,主要功能是同用户进行基本沟通并自动回复用户有关产品或服务的问题,以实现降低企业客服运营成本、提升用户体验的目的。其应用场景通常为网站和手机终端。代表性的商用系统有:某新三板上市企业机器人"小x"、"风语者小懂机器人"等。
到底目前的智能机器人智能如何,优劣势在哪里?日前,笔者通过对同样以语义理解和人机交互为核心能力的两家黑马:风语者机器人"小懂"、某新三板上市企业机器人"小x"的技术进行对比,以让读者了解目前智能机器人发展的客观现状。
卷积神经网络与深度神经网络
" 小x"选用当今最流行的深度神经网络为主流技术,机器学习采用了有监督式学习模式(一些特别任务采用半自动化学习),知识库构建方面采用一种特殊的结构将知识按照不同的属性分类存储在数据库。风语者机器人小懂则采用更为先进的卷积神经网络技术,机器学习方面大量应用了无需人工干预的无监督学习技术,知识库方面则应用领域划分的到最小单位,以特定领域的特定任务为核心构建高性能知识库。卷积神经网络相比深度神经网络有何优势?有监督学习和无监督学习?小懂、小x在知识库构建有什么不同呢个?笔者对这三个问题,进行了更详细的分析:
深度神经网络是现在各家人工智能企业最为流行的技术,大到微软、 google这样的跨国大企业,小到创业中的图灵、智齿无一不打出深度神经网络的牌子。深度神经网络也逐渐各家企业泛化,人工智能的各个行业无论是语音识别、还是图形处理都号称应用了这一技术。"小x"使用深度神经网络也算跟上了时代的步伐,那么究竟什么是深度神经网络,它的效果究竟如何呢?上个世纪50 年代末,F·Rosenblatt设计制作了"感知机",它是一种多层的神经网络。这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。
神经网络设计灵感来源于对人类大脑的一种模拟。神经元,也叫做神经细胞,是一种专门负责处理和传输信息的细胞。为了互相交流,它们会释放出一种化学信号,或称为神经递质,利用突触在细胞间传递信号。这些化学物质会立刻被相邻的细胞接收,并转换为电信号,也叫动作电位。动作电位会沿着神经元细长的轴突进行扩散。当它到达细胞另一头时,电信号再次被转化为化学信号,释放到突触,准备再次启动整个过程。上述过程很像是计算机的信号传递,人工神经网络正式模拟了这个过程,我们似乎在这里看到了创造人工大脑的希望。
然而,这次人工神经网络的研究高潮未能持续很久,因为神经网络计算量很大,以当时的计算机技术基础模拟神经网络是完全不可能的。1968年一本名为《感知机》的著作中指出线性感知机功能是有限的,它不能解决如异或这样的基本问题,而且多层网络还不能找到有效的计算方法,这些论点促使大批研究人员对于人工神经网络的前景失去信心。60年代末期,人工神经网络的研究进入了低潮。
但很多科学家并没有放弃神经网络的研究,1986年,Rumelhart、Hinton和Williams提出了多层的误差反向传播(ErrorBackPropagation,BP)算法,即BP算法。神经网络经历了从低谷再到高潮的阶段,深度神经网络概念也在此时诞生。其实,所谓的深度的神经网络只是多加一些隐藏层,从下图可知单层网络只进行了一层计算,但多层网络进行了多次计算最终得出结果。
深度网络每层的作用是对上一层特征转换,即以另一种编码形式表示上一层的特征,同时应用上文提到的误差反向传播算法,以减少逐层传递的误差。最后一层是一个传统的分类器,大多数企业应用的是最大熵算法或支持向量机。虽然在本质上深度神经网络看似与传统神经网络没有区别,但是一方面由于硬件和具体算法水平的提高,另一方面由于反向传播算法的应用,使得深度神经网络技术大大优于传统神经网络。它首先被应用的到语音的识别中,此后逐渐在自然语言处理中发挥了作用。
与此同时,深度神经网络的问题也很多暴露在算法工程师目前,主要有以下几点:
1、如果训练样本足够充分覆盖未来的样本,那么学到的多层权重可以很好的用来预测新的测试样本。但是很多任务难以得到足够多的标记样本,这样的话深度神经网络的效果不仅比单层还差,甚至不如线性回归或者决策树的效果。
2、深度神经网络的计算量太大,对5层以上的深度神经网络计算速度已经达到了另人难以忍受的程度。
为了解决以上问题,小懂机器人提出了一个创造性的思路,将应用于图形分析的卷积神经网络技术应用于自然语言识别中。很多人会提出疑问了什么是卷积?卷积是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分的面积。这种数学表示可能对于大多数人来说并不好理解。
我们举一个图形例子,假设是做一个人脸识别的任务,我们的要用卷积操作提取图像的轮廓。我们首先把图像表示成一个0-255的矩阵(黑色和白色之间有255 种灰度)。我们用一个卷积8*8的卷积算子进行计算。计算方法:将中心点与其周围的8个点依次比较,发现有一个差值大于某值n(n=100)的值时,就判断其为轮廓线上的点并将之置为黑色;若其与周围8个点的比较值都小于某值n时,则其不在轮廓线上,置白色。
刚才的操作就是卷积操作,我们发现通过卷积操作我们成功减少原图的信息,可以在之后神经网络计算中减少计算量。虽然卷积后的图像信息比原图的信息有所减少,但是对于特定任务,我们可以过滤不要的信息,从而提取我们所需要关注的特征。说到这里有人可能又会疑问了这和自然语言理解有什么关系。我们把可以一句话抽象成为一个矩阵。具体方法是把一句话的每个词用一个词向量表示,词向量中的数值就是它的特征值。
有监督学习与无监督学习
上文看到,卷积网络在计算速度和效果上还是明显优于目前主流的深度神经网络。下面再来谈一下"小x"和"小懂"的机器学习方式。
机器学习方法是计算机利用已有的数据(经验),得出了某种模型(如:迟到的规律),并利用此模型预测未来(如:是否迟到)的一种方法。我们首先将数据(语料)通过机器学习算法进行处理,这个过程在机器学习中叫做"训练",处理的结果可以被我们用来对新的数据进行预测,这个结果一般称之为"模型"。机器学习的目标是我们不告诉计算机怎么做,而是让它(计算机)自己去学习怎样做一些事情。机器学习的方式有两种:有监督学习和无监督学习。
在有监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的类别。若所给的学习样本不带有类别信息,就是无监督学习。
再举一个通俗的例子就是,假设两个人去参加高考。一个人在平时练习的有习题集的答案,他所进行的就是有监督学习,另一个有习题集但是没有答案,那么他所做的就是无监督的学习。这时候有人会提出对于机器学习的分类问题,没有具体的标签我们怎么进行分类呢?实际上,我们在对事物进行分类的时候,即使不知道具体分类方法,我们仍能够将事物分成几类。比如:一个幼儿,可以将玩具进行分类,如:各类的汽车、小动物、水果、家具。对于幼儿来讲也许她并不知道某种具体的动物是什么,也不知道动物、汽车这些类属概念,但是她依然可以对一堆玩具进行分类。因为每一类玩具有其特性,如:动物都有腿,汽车都有轮子。
我们举一个自然语言处理中常见的词典制作的过程,来对比两种机器学习方式。假设我们制作一个人名的词典,要标注出这个人物是科学家、企业家、政治家、还是歌星、影星。我们原始语料就是北京晚报。在没有机器学习的模式下,这个词典只有自己去建立。雇佣一群人,大家一起看报纸,把各个人名抄写下来,之后写上每个人物的属性。这个方法需要耗费大量的人力成本,还有一问题就是你找到人需要有丰富的百科知识。比如:冯诺依曼,学习计算机的人都知道他是数学家、现代计算机的奠基人,不学这个学科的就未必知道了。
我们再来看一下有监督的学习是如何进行的,我们事先定义好人物的类别,比如分成10大类。我们再去定义每个类的特征,判断科学家的规则:
λ1(应用概率)X1:这个人名在科学文献中出现。
λ2(应用概率)X2:文章出现"发明"一词
λ3(应用概率)X3:与已有词典中某个科学家名词共同出现
。。。。。。
我们先要标注一部分的数据,去训练每个前面的参数λ,通过这个标签数据去学习出的规律,得出我们的模型(λ1,λ2….)。之后,之后再用这个模型去标注我们的北京晚报。这个过程显然比上面纯人工干活清松多了,但是这里面有几个问题。
对于人物的分类你是否可以想全?
对于科学家这个分类如何进行下面的分类,即:再分成植物学家、天文学家。天文学家是否还有下面的分类。
科学家这个分类的特征模型(规则模型)是否合理。
带着上面的问题我们再来看一下无监督的学习。与有监督学习不同,无监督学习不依赖预先定义的类或带类标记的训练实例。无监督学习是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。当然我们这里要有定一些文本的特征。我们不必给出具体的规则,我们只需要给出这个人名所在的文本特征,如文本类型(不用指出具体类型),前后词特征等。系统自动根据这些特征将科学家、企业家、政治家、艺术家等聚成不同的类,系统也可以继续将科学家分成天文学家、物理学家、化学家等。
行业知识库和任务知识库
最后谈一下知识库的问题,"小x"机器人在知识存储上的确有一些优势。号称可以通过业务知识分析,整理出业务知识公共属性的抽象集合,如:业务介绍、业务资费、业务办理方法、业务取消方法等属性。我们不禁对其知识库功效和构建方法产生几点质疑。
1、这些知识在数据库中能否形成推理,是否有足够的规则,并且这些规则直接是有联系,可以形成推理。我们对问题的推理往往基于假言三段论,即:P->Q;Q->R;P->R。.那么对于如此浩瀚知识网络,我们能否有P和R之间的桥梁Q。
2、更为重要的一点是知识库的构建需要耗费很多人力,同时需要大量的学科专家和语言专家的参与,建设周期长,对于小规模的数据效果很不好。
" 小懂"机器人将知识的构建缩小的一个相对集中的任务上,如:根据用户主诉病情推荐应做的检查、智能宠物完成主人特定的任务。任务中包含的实体概念相对集中,实体与实体的关系也相对清晰。病情库中的实体有:疾病、症状、时间、年龄、性别、检查等。对于“小x"机器人号称建立金融、交通几大行业的知识库,不知道它是真正的知识库还是把数据库包装了一个华丽的概念。在大家都在吹嘘行业知识库的时候,我们姑且将"小懂"机器人的知识库称为任务知识库,它针对一个特定任务而构建,能够非常准确的完成用户预定的任务。
综合评价
反观"小x"机器人,与"小懂"机器人相比,它则在走一条相对传统技术的路线上,虽然对深度神经网已再度兴起,但终究没有改进时间复杂度高的痛点问题。"小x"机器人的机器学习算法、知识库构方法需要进行人工标注、专家建库等大量的人工参与,实际应用中需要针对客户需求进行较长时间的二次研发。
可以说,"小懂"机器人是技术向商业转化的成果,输出的是产品。在很多技术方面,采用了独创性的方法,解决了当今人工智能领域的很多痛点问题。相信在不久的将来,一个能够让人们与之无所不谈的高"情商"智能机器人将走入我们的日常生活,成为我们的朋友、同事甚至是家人。让我们拭目以待。共同迎来智能机器人发展的黄金时代。