AlphaGo最近很火,火得一塌糊涂,圈里圈外,是人都在谈AlphaGo。但是AlphaGo毕竟是特定型人工智能,和通用型人工智能还是有很大差别,离人工智能普及更差得很远。所以这么说,是因为之前做过几个特定型人工智能,有点成绩,对这东西有点了解,最近开始设计通用型人工智能。但是只是一个开头,很多东西还在琢磨、探索中,路能不能走通还是未知数。在此和大家说说,希望能抛砖引玉。
    先从人工智能本身说起。人工智能是啥?就是让计算机拥有类似人的思维能力,怎么拥有呢?学习!现在这已经是共识,就是把一大堆数据输进计算机,借助大数据,加上人对数据的分析理解,过滤掉里面的噪音,在大数据里形成一个相对准确的数据池。这个数据池,就成为计算机“思考”的源头。然后继续往里面加数据,这样数据池里的数据就会越来越多,计算机可以参考比较的内容也会越来越多,相应的分析判断能力就会越来越强,理论上,它就会越来越“聪明”。
    这个过程好比老师教孩子。小孩受本身条件限制,他的知识储备少,在成长过程中会接受错误信息,对某些问题不理解,或者对某些信息判断错误,老师在这时要及时发现纠正,灌输正确的知识,让孩子形成正确的认识。正确的东西学习重复多了,自然对错误的知识形成抗体,以后就不会再犯。
    再说特定型人工智能。特定型人工智能和通用型人工智能相比,它是专门为某一个领域准备的,比如说这次的AlphaGo,它只思考下围棋的事,别的事不用管,那么做为它的老师,“真正的人”,只管向它输入各种围棋棋谱,给它建立一个分析模型,考虑对手落子之后,怎么根据这个落子下出正确的棋路。在这个过程中,它可能会下错,不过有老师在,老师会给它纠偏,慢慢它的棋艺就会越来越高。
    相比之下,通用型人工智能就要复杂多了。因为我们面对的世界太庞大,上下五千年,东西两半球,小到柴米油盐,大到两次大战,啥事没发生过,还有人的各种感情问题,比如“你是风儿我是沙”这样卿卿我我的东西,让计算机能够理解,建立这样全方位的知识体系肯定难。
    到这儿,就要说我们设计的这个东西了:自编程。自编程不是让人写代码,也不是让机器写代码(机器写代码N年前就有了,现在好象也没啥进展)。是让机器模仿人的意图,主动建立一套识别分析模型。在这套模型里,根据不同的录入内容,再进行细分,逐渐具体到一个个单项上。
    打个比方,军坛里有很多人在讨论隐形飞机的事。这件事如果让机器做,那么应该这样处理:
    1.建立一个飞机的识别分析模型。
    2.在飞机的识别分析模型之下建立一个隐形飞机的识别模型。
    3.向隐形飞机的识别分析模型里加注各种相关的数据。

    如果有人问“世界上哪种隐形飞机最牛B”时,根据“最牛B”的语义,找到和“隐形飞机”关联的数据进行计算。得分高的自然就牛B。开始可能会有错,那就调整关联参数进行纠偏。这个工作开始一般是人做,训练多了让机器识别判断做。人工智能很关键的“深度学习”、“自我学习”实际就是这个。以后随着越来多人问,正确答案会受到越来越多人肯定,答案关联参数的权重就要增加,达到一定比例后,把正确的保留,错误的取消掉。
    这就是我们大体解决通用型人工智能的思路。归纳起来就是一个树形结构,先有“根”一级的识别分析模型,在“根”之下,有“子”一级识别分析模型,子还有“孙”,逐次递增,直到一个个具体单项。每一级识别分析模型都有各种属性与它建立关联。人机交互的时候,根据应用场景,与树形结构中的识别分析模型进行关联,找到最可能匹配的单项,再去寻找正确的答案。
    我们现在做的这个通用型人工智能仍然有很多困难,难点是建立各种识别分析模型后,要在里面建立各种分析判断。如果把地球上的各种问题都反映到计算机上,那么这个量实在太大了。而且每个识别分析模型个性需求都不一样,它们之间还会有互通的地方,也会有排斥的地方,需要建立太多关联,还要结合不同场景去理解和处理关联。用统一的规则处理肯定不行,比较靠谱的是针对几个识别分析模型,做一个相对统一的规则。不过也是尝试中。
    存储数据和计算数据现在倒不是难题,因为我们有一个超强的大数据系统,可以存储、计算PB、EB量级的数据。
    总之我们做的通用型人工智能还是个框架,很多东西在摸索、探索中。有兴趣的兄弟可以交流,希望哪位大神能给点灵感,来个突破!^_^!