换个思路做AI
朋友们别想歪了,不是拼音AI,是AI,Artificial Intelligence,对,人工智能。现在的人工智能做法和思路,总觉得有点别扭,而且是循环往复,永远没有尽头。
拿自然语言处理,NLP,Natural Language Processing来说,现在的做法是,人类要表达,要总结,写文章,做交流,定规矩,都是用的是自然语言。自然语言的好处是人类已经习惯了,而且自从人类有了语言,都是这么来做的。然后有了计算机,人类把计算机也当做某种“人”,然后用人类传统的思维和做法,让计算机去理解自然语言,并且让计算机去生成自然语言来表达。然而,自然语言的特点是表达丰富,不管是从结构来说,还是从语义来说,反而给人类和计算机造成了许多困扰。
从结构来说,比如中文,词序千变万化,表达的是同一个意思,有人看得懂,有人费脑子。看看这个例子:
烧饼一块钱一个
烧饼一个一块钱
一块钱一个烧饼
一块钱烧饼一个
一个烧饼一块钱
一个一块钱烧饼
各种组合排列,基本都可以用来表达,而且意思基本接近,但有的人会很困扰,特别是被人类当成“人”的计算机。
从语义来说,歧义是和语言的表达丰富性天生具有的。比如,苹果是一种水果,还是一个公司。再看一个复杂一点的:
原来喜欢一个人,现在喜欢一个人
可以理解为,过去喜欢上了一个人,而现在喜欢自己一个人过生活。也可以理解为,过去喜欢上了一个人,而现在喜欢上了另外一个人。还可以解释为,过去喜欢自己一个人待着,而现在喜欢上了一个人。不看上下文,很难确定是哪种。有时,有上下文,不问说的人,也不得而知。
这里只是举了两个例子来说明人类自己来用自然语言交流有多难,而且这种方式的问题可能永远无解(就如不问说的人,是猜不对的)。那么用计算机来处理和理解自然语言就更困难了,而现在却想用深度学习,或是规则引擎等AI算法来让计算机来理解,可能永远没有尽头来达到人类满意的水准。对于历史积累的大量自然语言数据,计算机都很难,也许不可能。而人类还在持续的用自然语言来产生新的文章,对话,这不是循环往复,看不到尽头。可能有人会说,AI算法可以一点点提升,最后就能接近完美了,从现在深度学习用于图像识别来看,是有瓶颈的,到了一定程度就会浮瓢效应,摁住一个,另一个起来了,一定会有一个平衡点,而这个平衡点,让AI技术很难满足人类和计算机沟通的需求。况且有种情况是只有说的人,写的人,才知道具体表达什么,听的人,看的人都是猜。
这让我们不得不思考,现在的这种做AI的思路,是不是应该换一换。那怎么换呢?
自从有了计算机,人类就在尝试和计算机沟通交流,让计算机能理解人类需求,完成人类交给的任务。早期经典的聊天机器人是 ELIZA (1966)与 PARRY (1972),就在尝试用自然语言和计算机沟通,但效果不好,满足不了人类的需求。
而另外一种思路,在计算机诞生之初,人类用“计算机的语言”对计算机发出指令,写一串串由“0”和“1”组成的指令序列交由计算机执行,这种计算机认识的语言,就是“机器语言”。“机器语言”要求编程人员要首先熟记所用计算机的全部指令代码和代码的含义,处理每条指令及每一数据的存储分配和输入输出,等等,这是一件十分繁琐的工作。并且,这种二进制的指令代码,直观性差又容易出错,修改也困难。此外,不同型号的计算机的“机器语言”是不相通的,在一台上执行的程序,要想在另台上执行,必须另编程序,造成重复工作。
为了克服“机器语言”难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了“汇编语言”。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
不论是“机器语言”还是“汇编语言”都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称“高级语言”。高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的“高级语言”的编译或解释程序,则用该高级语言编写的程序就可以通用。如今被广泛使用的高级语言五花八门,有Java、Python、Go、Javascript、C、C++、SQL、OWL等等。
人类现在可以,而且已经习惯了用“高级语言”和IDE开发工具来取代自然语言来与计算机交流,当然,“高级语言”通过互相读懂各自写的程序,也能实现程序员和程序员之间的交流。
到此为止,朋友们是不是已经看出怎么换个思路做AI了。如果没有,直截了当的说,就是设计一种机制,类似计算机语言和开发工具,让人类能用自然语言表达的东西,直接用这种新的机制来表达,这样就不用像现在一样,把AI算法作为自然语言和计算机沟通的一种中间手段,而是直接把人类的知识,用人类和计算机都能理解的方式,互相沟通交流。正如前面描述一样,这种机制是一种:
“与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的知识表达和推理语言”。
这种知识表达和推理语言,虽然给人类初期使用带来一点负担,就像初期的计算机语言,但长久来说,给人类带来的方便和好处是无量的,就如现在的软件行业一样,不但创造了一个行业,一种程序员职业,和一个巨大的IT生态。
这种知识表达和推理语言,实际已经在发生中。
比如,思维导图,就是某种形式的初级体现,虽然有很多问题,但很多人已经习惯用它来交流了。
比如语义网络语言,RDF,OWL,知识图谱,但是人们还在习惯于用AI算法来将存在的自然语言文档和对话来抽取(实体和关系抽取),转化,融合,关联,等,而不是像计算机语言的发展历史一样,别写自然语言的东西了,把你要做的事情直接用知识表达和推理语言和相应的开发工具来完成。
不说文学作品,要强调的是情感的交流,但对政府,机构,企业,个人,很多的工作,原来用自然语言来做的东西,完全可以用这种新的方式来实现。甚至现在的元宇宙,物种之间也需要用这种语意确定、规则明确、自然直观的方式来沟通交流。至于好处,想想计算机语言带来的好处,就不用赘述了。
换一种思路做AI,将会给人类带来一种全新的感受,一个五彩缤纷的充满活力的未来。
微信扫码关注该文公众号作者