不管我们是否愿意,形形式式的人工智能早已深入日常生活。对违章车辆车牌的自动识别,网上搜索的自动推荐,懂得自己充电和探索地形的扫地机器人,还有会帮你自动排好日程的智能助理。这一切将人们从种种无趣的脑力劳动中解放出来,也带来了众多机遇和挑战。但鲜为人知的是,在背后支撑这些人工智能的,其实是一个个数学定理和计算机算法。
懂得推理的人工智能
思考向来是人类的专利。通过思考,我们获得了压倒一切其他动物的能力。自然,人们也想要造出能够辅助思考的机器,减轻自己的负担,这就是人工智能的起点。思考既然如此强大,要模拟它也就很困难,于是人们将起点放在其中比较简单的一部分:逻辑推理。逻辑推理的规则明确简单,自古希腊的亚里士多德起就为人所知。人工智能最初的一步,就是教会机器逻辑推理的方法,也就是具体的算法。
但在考虑算法之前,有一个更根本的问题:我们怎么知道逻辑推理一定正确,而正确的命题必定能通过逻辑推理得到?换句话说,真理是否相当于能被证明?这属于数理逻辑的范畴,对于不同的逻辑系统,答案也不一样。幸好,哥德尔证明了,在所谓“一阶谓词演算”的体系中,答案是肯定的。这个定理铺平了自动逻辑推理的道路。从上世纪六十年代开始,各种自动推理系统陆续出现,只要向它们输入以逻辑命题表达的某个领域的知识,它们就摇身一变,成为所谓的“专家系统”,能自动进行推理,回答人们提出的相关问题。自动安排任务的人工智能也基于类似的系统,在航空航天等领域得到了广泛的应用。
作为早期的人工智能技术,自动推理系统曾被寄予厚望,但人们逐渐发现它有不少弱点。先不说需要专家的宝贵时间来将知识整理成逻辑命题,就算是这些知识,也常常充满各种例外,难以用逻辑完全概括。勉强去概括的话,得到的就是一个头脑简单的“人工智能”,虽然能正确应对大多数情况,但面对少见的情况会束手无策甚至闹出笑话,所以目前它主要被用在一些相对狭隘简单的领域,比如数学和交通调度。怎样才能避免这个缺点呢?
分析数据的人工智能
专家系统的问题在于,它需要专家为它总结知识,但专家也是人,在整理自己的知识时,难免有疏漏,忽略某些罕见的情况,就像医生遇见感冒症状,并不会一下子想到心肌炎。但医生在结合其他少见的症状后,仍然能作出正确的诊断,这就是人的优势:懂得变通。能不能将这个优势移植到人工智能上呢?还是举医生的例子,让医生用自己的经验为人工智能编写一部教科书,这是个艰巨的任务,但医生的经验同样体现在诊断结果上。如果能直接从医生经手的病历中学到他们的经验,这不仅节省了时间,还不会漏掉那些不常见但确实会出现的病例。
为了做到这一点,计算机科学家依靠大量线性代数、统计学和概率论的知识,发明了各种各样的算法,从看似杂乱无章的海量数据中提取统计上有意义的规律,这就是统计学习和大数据分析的基础之一。人们利用这些算法,能从互联网无数页面之间的相互链接中推断某个网站的重要性,从而改善网络搜索;也能通过对大量病例的分析,为某些特定的疾病提供早期的发现和诊断;还能从互联网中海量的双语对照资料中,得知如何将一种语言翻译为另一种语言。大数据的应用可谓数不胜数,虽然这些算法本质上某种统计方法,做不到绝对的可靠,但在实践中它们表现十分出色。例如IBM研发的人工智能系统Watson,在阅读大量资料后,能摇身一变成为星级客服,回答顾客各种各样的提问。
但统计学习也有无法解决的问题。要判断一张照片中有没有猫,对于人类来说小菜一碟,但对于机器来说,图片包含的信息太多,即使对于统计学习,要利用这样的数据还是太棘手了。那么,人类的大脑又是怎么处理这些信息的呢?能不能将这种处理方法搬到机器上呢?
模仿大脑的人工智能
在大脑中,负责处理数据的是上千亿名为“神经元”的细胞。它们之间通过电脉冲互相传递信息,每个神经元受到一定阈值的刺激,就会向自身连接的其他神经元发送电信号,这些信号有的起到刺激作用,有的起抑制作用。这些信号纷繁复杂的舞蹈组成了人类的思维。人工智能的研究者尝试在计算机上重现类似的系统,试图模仿人类思维这一演化的奇迹。这就是所谓的“神经网络”。当然,我们现在仍然无法模拟整个大脑,但即使是数万个神经元组成的系统,能力已经非同凡响。
跟人一样,神经网络也需要利用相应的数据进行大量的学习,才能用于解决问题,而学习的方法会深刻影响最后的结果。目前神经网络的研究主要集中于所谓的“前馈神经网络”,数学家证明了它们在理论上足以解决所有问题。为了得到实用的神经网络,科学家利用数学分析中的知识,借鉴人脑的部分结构,设计了特殊的神经网络结构,还有配套的高速并行学习算法,能利用大型计算机、显卡以及专用芯片提供的大量计算能力,训练出优秀的神经网络以供应用。只要向训练好的神经网络输入数据,它就能输出相应的计算结果。
神经网络应用广泛,特别是在图像处理方面。之前提到的自动识别车牌就是实例之一,现在还出现了“刷脸支付”,只要在摄像头前点点头,神经网络就能识别出你的身份,自动记录你应付的账单。而神经网络最有名的应用,恐怕是击败世界围棋第一人柯洁的围棋人工智能AlphaGo。它的神经网络能将棋盘当作一幅图画,从中“看出”目前局势的优劣。再结合其他算法,AlphaGo得到了远超人类的围棋水平。这不是人类的造物第一次超过人类自身,但也许是最震撼的一次,因为我们其实并不完全理解AlphaGo为什么能下出如此犀利的围棋。
尽管人工智能现在已经能解决很多问题,但对它的研究才刚刚开始。之前提到的所有实现人工智能的方法,无不需要处理海量的数据,但反观人类自身,我们能举一反三,不需要阅读整个互联网的数据,就能学会一种语言或者一门学科。如何将这种触类旁通的能力移植到机器上,这是对人类智慧的又一个挑战。
新手~学习起来~~~~~