CristianoJason 2017-06-20
(在高铁上闲来无事,用手机完成该文,欢迎讨论、批评和指正)
人工智能技术以及应用,近年来得到了很大发展,随着人工智能的火热,尤其是AlphaGo的出现,让很多人对人工智能产生了不切合实际的幻想。那么人工智能,究竟能做些什么呢?
马少平 中国人工智能学会(CAAI)副理事长、清华大学计算机系教授,博士生导师。
主要从事智能信息处理方面的研究工作,包括文本信息检索、网络用户行为分析、个性化推荐、社交媒体分析等。
人工智能能做的一定是一个可以定义的问题,并且这种定义是计算机可以处理的。这里所说的“定义”是广义的,并不是要求一定是形式化的定义,并且强调定义的计算机可处理性。
“什么是猫”,搜狗百科中是这么定义的:“头圆、颜面部短,前肢五指,后肢四趾,趾端具锐利而弯曲的爪,爪能伸缩。夜行性。以伏击的方式猎捕其他动物,大多能攀缘上树。”早期的做动物识别的专家系统,基本上就是按照这类定义实现的,把定义中的属性描述,人为转化为规则表示的知识,通过推理的方式进行识别。不过这里最大的问题是感知,机器很难识别出待识别动物前肢后肢是什么样子。所以当时的专家系统,需要人为的进行这些属性的识别,告诉机器,机器再根据规则推理出是什么动物。少了关键的属性识别,这样的系统很难说它是具有智能的。
不过在一些特殊的应用中,专家系统还是能很好地解决一些问题的。比如DEC公司(以前的一个著名的计算机公司)研发的R1系统,拥有一千多条规则,可以按照用户的订单配置计算机系统,就是一个成功的应用,每年可以为公司节省大量的开支。
IBM的深蓝,也可以列入“利用知识定义问题”的行列,他们雇佣了很多国际象棋大师帮助总结国际象棋的知识,用来判断棋局的局势,再通过α-β剪枝搜索算法,实现高水平的计算机国际象棋系统,最终战胜了国际象棋冠军卡斯帕罗夫。可以说是利用知识进行定义的典范。
但是并不是所有问题都可以通过知识进行定义的,计算机围棋也曾经试图走国际象棋的路线,但事实证明这是一条对计算机围棋不可行的路线。有关围棋,我们在后面会再详细说明。
还是回到前面说的有关猫的定义。虽然有这样的定义,但是我们人类识别猫时,没有人会具体看这些属性,都是一眼就认出了猫(对于一些稀有动物也许有可能会一个一个的确认各种属性)。这其实就是见多识广。对于计算机来说,就是用数据进行定义,从数据中学习。不需要告诉我猫的前肢后肢什么样,只要给我一些图片,并告诉我哪些是猫哪些不是猫即可。
用数据定义,也有两条路可走。其一是通过特征定义,其二是通过原始数据定义。
在统计学习时代,均采用特征定义的方法,人为定义计算机可以抽取的特征,再通过统计方法进行学习,无论是图像识别,还是语音识别都是一样的思路,试图找出能反应问题本质的特征,从而通过抽取了特征的大量数据定义问题。
用数据定义的另一条路线就是用原始数据定义,现在的深度学习走的就是这样的路线。直接提供给计算机大量的原始数据,通过原始数据定义问题,特征由深度学习系统自动抽取。比如还是识别猫,只要给出带有标注的大量的猫的照片就可以,至于使用什么特征,那是计算机自己的事。
前面提到过用深蓝的办法做围棋程序行不通,为什么行不通呢?很多人归于围棋状态多。我认为围棋的状态多只是问题的一方面,但不是问题的本质。围棋的本质问题还是对棋局的判断,之前没有找到一种行之有效的对围棋的棋局进行定义的方法。蒙特卡洛树搜索方法的引入,让计算机围棋的水平有了很大的提升,其关键就是通过蒙特卡洛模拟的方法定义棋局是否有利,为计算机围棋开辟了一个新路子。但是,蒙特卡洛树搜索搜索效率太低,在水平达到一定程度之后,就难以进一步发展了。而AlphaGo通过引入深度学习,进一步完善了围棋的棋局评估问题,利用策略网络减少了蒙特卡洛树搜索的宽度,利用估值网络,减小了蒙特卡洛树搜索的深度,通过大量的棋局数据定义了局势是否有利以及如何落子问题,再结合搜索技术,实现了高水平的围棋程序。
很多问题的数据并不是单一的,这时候完全依靠原始数据定义并不一定就是最好的选择,也可能需要人为的抽取一些能反应问题本质的加工后的数据出来才能更好的定义问题。以前我曾经用盲人摸象进行比喻。在使用数据时,既要全面考虑数据不能盲人摸象,又要针对具体的问题,盲人摸象,重点抽取有用的数据,这样才能针对问题有效地处理数据,得到好的系统性能。
人工智能是否能解决一个问题,就看该问题是否能定义出来,看定义的是否合理,以及目前的技术是否能比较好的处理。
一个问题能定义出来了,是否就能用于实际呢?这还要看具体的使用环境,不能单纯的看系统的指标。当然在同样条件下,肯定是指标越高越好,但不同的问题,对指标的要求是不一样的,关键是结合具体问题,设计一整套可行的方案。
比如以前我们做四库全书识别系统,识别率大概是95%,如果直接将识别结果用于出版,即便是识别率达到99%也是不符合出版要求的。那为什么我们用只有95%识别率的系统就很好地完成了四库全书的数字化呢?主要是结合识别系统给出了一个现实可操作的古籍数字化整套方法,从录入到校对,能确保出版质量的系统方案,最终以高的出版质量(错误率在万分之一以下)完成了四库全书的数字化。
再举一个例子。一个识别率只有80%的验证码识别系统是否可以用呢?初看这个识别率有些低,但是仔细分析一下,就会发现这个识别率也是可以用的。因为验证码不要求每次识别都对,万一出错了会让你重新输入。在几次输入中有一次对就可以。所以即便是一个不太高识别率的验证码识别系统,也是可以用的。
总之,人工智能能做什么,关键看是否可以给出在目前的技术范围内能处理的定义,同时还要看问题的使用环境是否能接受这种结果,能否给出一套与性能配套的处理方案,解决实际问题。
作者马少平
未经授权严禁转载及翻译
如需转载合作请向学会或本人申请
转发请注明转自中国人工智能学会