更改

无编辑摘要
第11行: 第11行:  
  下面,我们首先简单回顾一下人工智能的发展历史,着重指出这门学科遇到的一些瓶颈。接下来,我们将从一种人机交互的视角深入剖析智能程序的本质,并提出了一种新的思考范式,即将人与机器看作一个互动的整体。然而,将人与机器放到一起考虑并不是什么新鲜事儿,人机交互等学科也在讨论同样的问题。那么在第3节中我将说服你,与传统的人机交互理论不同,观察者理论试图构建一个非常简洁的模型:图灵机—观察者模型,并用量子概率——这门诞生于量子力学的数学分支来对人机互动系统进行描述。我们构建这样一个理论系统的目的是什么?第4节将回答,人-机交互系统要实现的目标其实有两个:从人的角度来说,人-机交互系统最终的目的就是要提高可玩性;而对于机器来说,人玩的力量——交互行为会为机器提供一种进化的可能,这种进化动力将会使得机器越来越智能——体现为计算系统越来越深的虚拟层次的构建。那么,我们的理论体系将试图定量化描述这两个目标。最后,我们将对理论前景进行一下大胆的展望,主要指出,这些年刚刚兴起的一个分支:人类计算(Human Computation)将为我们这套理论提供无限的应用平台。<br>
 
  下面,我们首先简单回顾一下人工智能的发展历史,着重指出这门学科遇到的一些瓶颈。接下来,我们将从一种人机交互的视角深入剖析智能程序的本质,并提出了一种新的思考范式,即将人与机器看作一个互动的整体。然而,将人与机器放到一起考虑并不是什么新鲜事儿,人机交互等学科也在讨论同样的问题。那么在第3节中我将说服你,与传统的人机交互理论不同,观察者理论试图构建一个非常简洁的模型:图灵机—观察者模型,并用量子概率——这门诞生于量子力学的数学分支来对人机互动系统进行描述。我们构建这样一个理论系统的目的是什么?第4节将回答,人-机交互系统要实现的目标其实有两个:从人的角度来说,人-机交互系统最终的目的就是要提高可玩性;而对于机器来说,人玩的力量——交互行为会为机器提供一种进化的可能,这种进化动力将会使得机器越来越智能——体现为计算系统越来越深的虚拟层次的构建。那么,我们的理论体系将试图定量化描述这两个目标。最后,我们将对理论前景进行一下大胆的展望,主要指出,这些年刚刚兴起的一个分支:人类计算(Human Computation)将为我们这套理论提供无限的应用平台。<br>
   −
===人工智能之梦===
+
==人工智能之梦==
    
  人工智能的梦想完全可以追溯到19世纪末期巴比奇发明史上第一台会运算的机器(积分机),因为人工智能与计算机的目标相似:都是为了让机器可以部分或者全部实现人类的智能。计算机科学真正的大发展是20世纪初。那个时候,有多位数学家分别从递归函数论、集合论、数理逻辑、lambda-演算、图灵机等不同的侧面研究人类逻辑思维的形式化(请读者参考[http://www.swarma.org/vm/articles/turing.pdf 《图灵机与计算理论》])。这种数学上的定义不仅澄清了算法的概念,也为人类创造会计算的机器奠定了理论基础。<br>
 
  人工智能的梦想完全可以追溯到19世纪末期巴比奇发明史上第一台会运算的机器(积分机),因为人工智能与计算机的目标相似:都是为了让机器可以部分或者全部实现人类的智能。计算机科学真正的大发展是20世纪初。那个时候,有多位数学家分别从递归函数论、集合论、数理逻辑、lambda-演算、图灵机等不同的侧面研究人类逻辑思维的形式化(请读者参考[http://www.swarma.org/vm/articles/turing.pdf 《图灵机与计算理论》])。这种数学上的定义不仅澄清了算法的概念,也为人类创造会计算的机器奠定了理论基础。<br>
第20行: 第20行:  
  于是到了20世纪的末期,人工智能的发展陷入了僵局。一方面,人们开始放弃大而空的理论探讨,而越来越关心具体的技术。另一方面,基础理论则呈现出了群龙无首的局面。<br>
 
  于是到了20世纪的末期,人工智能的发展陷入了僵局。一方面,人们开始放弃大而空的理论探讨,而越来越关心具体的技术。另一方面,基础理论则呈现出了群龙无首的局面。<br>
 
  认知学派是若干基础理论中的姣姣者。该学派认为,之所以人工智能的梦想还远远没有实现,那是因为我们对自己的大脑和认知系统了解得还不够。于是,我们非常有必要先弄清楚自己大脑是如何工作的,在此实证的基础上,再去构建模型和算法。虽然这套思路的确比起其它思路来踏实了许多,而且可以从神经科学、心理科学等方面借鉴大量的实例,但是认知学派在基础理论方面的进展却极其缓慢。它会很容易陷入两个极端而不能自拔:一方面,由于人类的脑系统非常复杂,无论从分子生物学层次还是从神经细胞的层次,都有无数的细节。因此,构建能够模拟脑运作的计算模型往往需要假设非常多的参数,而最终实现的功能也是人类认知中非常小的一部分。另一方面,也有学者直接对人类的较高级的认知功能建模,然而这样的模型就更加缺乏实证的基础,也有更多的模型构建的任意性(包括机制和参数)。<br>
 
  认知学派是若干基础理论中的姣姣者。该学派认为,之所以人工智能的梦想还远远没有实现,那是因为我们对自己的大脑和认知系统了解得还不够。于是,我们非常有必要先弄清楚自己大脑是如何工作的,在此实证的基础上,再去构建模型和算法。虽然这套思路的确比起其它思路来踏实了许多,而且可以从神经科学、心理科学等方面借鉴大量的实例,但是认知学派在基础理论方面的进展却极其缓慢。它会很容易陷入两个极端而不能自拔:一方面,由于人类的脑系统非常复杂,无论从分子生物学层次还是从神经细胞的层次,都有无数的细节。因此,构建能够模拟脑运作的计算模型往往需要假设非常多的参数,而最终实现的功能也是人类认知中非常小的一部分。另一方面,也有学者直接对人类的较高级的认知功能建模,然而这样的模型就更加缺乏实证的基础,也有更多的模型构建的任意性(包括机制和参数)。<br>
  实际上,人工智能研究的一个非常重要的出发点就是:'''智能可以多重实现'''。也就是说,大自然可以用神经元细胞搭出一个会思考的脑,人类也可以利用01代码或者逻辑电路构造出另类的人工脑。这也就意味着,智能实际上是一种独立于具体硬件,甚至是软件计算方式的系统属性。因此,仅有认知科学和神经科学的事实依据还远远不够,我们还必须从这些特例中抽象出一般的系统属性。生物学家赫布(Hebb)解释的神经系统的Hebb学习律就是一个很好的范例。这些学习律不仅告诉我们神经系统如何学习,而且它是一种抽象的系统机制,我们完全可以用其它的硬件来实现同一套机制而完成学习。然而,近期的人工智能认知学派却没有给我们提供多少类似的结论。<br>
+
  实际上,人工智能研究的一个非常重要的出发点就是:'''智能可以多重实现'''。也就是说,大自然可以用神经元细胞搭出一个会思考的脑,人类也可以利用01代码或者逻辑电路构造出另类的人工脑。这也就意味着,智能实际上是一种独立于具体硬件,甚至是软件计算方式的系统属性。因此,仅有认知科学和神经科学的事实依据还远远不够,我们还必须从-1这些特例中抽象出一般的系统属性。生物学家赫布(Hebb)解释的神经系统的Hebb学习律就是一个很好的范例。这些学习律不仅告诉我们神经系统如何学习,而且它是一种抽象的系统机制,我们完全可以用其它的硬件来实现同一套机制而完成学习。然而,近期的人工智能认知学派却没有给我们提供多少类似的结论。<br>
 
  近年来兴起的“具身学派”(embodiment intelligence)认为,人类的智能与人类的身体密切相关(请参见:http://en.wikipedia.org/wiki/Embodied_cognition )。实际上,我们所能做、能思考的范围已经被我们这个特定的身体和环境深深制约了。例如,我们实际的人类决策并不完全取决于智力因素,而更多的则是情感、处境甚至包括身体状态等共同决定的。因此,传统的人工智能做法由于不可能把所有这些因素考虑进去,也就不可能实现真正的智能。<br>
 
  近年来兴起的“具身学派”(embodiment intelligence)认为,人类的智能与人类的身体密切相关(请参见:http://en.wikipedia.org/wiki/Embodied_cognition )。实际上,我们所能做、能思考的范围已经被我们这个特定的身体和环境深深制约了。例如,我们实际的人类决策并不完全取决于智力因素,而更多的则是情感、处境甚至包括身体状态等共同决定的。因此,传统的人工智能做法由于不可能把所有这些因素考虑进去,也就不可能实现真正的智能。<br>
 
虽然具身派的观点有很多值得称赞之处,但是,笔者认为该学派却不能提供更多具有实际指导意义的思想。当我们将因素不仅要归结为身体,甚至包括我们嵌入其中的复杂外界环境的时候,模型的那种抽象、指导实践的作用也会荡然无存。很有理由相信,沿着具身派的思路很难提出诸如图灵机这样的抽象而简洁的模型,因为具身派并没有告诉我们什么因素才是这些复杂环境中最重要,最应该抓住的东西!<br>
 
虽然具身派的观点有很多值得称赞之处,但是,笔者认为该学派却不能提供更多具有实际指导意义的思想。当我们将因素不仅要归结为身体,甚至包括我们嵌入其中的复杂外界环境的时候,模型的那种抽象、指导实践的作用也会荡然无存。很有理由相信,沿着具身派的思路很难提出诸如图灵机这样的抽象而简洁的模型,因为具身派并没有告诉我们什么因素才是这些复杂环境中最重要,最应该抓住的东西!<br>
 
  人工智能理论的发展还存在着相当多的分支,我们在这里就不一一点评了。其实笔者早在2000年左右跟随恩师贺仲雄教授开始写作科研论文的时候就稀里糊涂的一脚踏入了人工智能这个领域中,然而5年的学习下来,我看到了人工智能现有理论中的不足之处,于是2005年左右,我开始从人工智能中“出逃”。其目的就是想从更多其他学科之中借鉴新的思路。当我在复杂系统、人工生命、统计物理、量子物理等领域中遨游一番之后,已经渐渐地浮现出一条新的发展人工智能的思路。于是于2010年8月的今天写下了这篇文章。<br>
 
  人工智能理论的发展还存在着相当多的分支,我们在这里就不一一点评了。其实笔者早在2000年左右跟随恩师贺仲雄教授开始写作科研论文的时候就稀里糊涂的一脚踏入了人工智能这个领域中,然而5年的学习下来,我看到了人工智能现有理论中的不足之处,于是2005年左右,我开始从人工智能中“出逃”。其目的就是想从更多其他学科之中借鉴新的思路。当我在复杂系统、人工生命、统计物理、量子物理等领域中遨游一番之后,已经渐渐地浮现出一条新的发展人工智能的思路。于是于2010年8月的今天写下了这篇文章。<br>
 
  大概在2006年左右的时候,我的头脑中已经渐渐地独立浮现出人工智能具身派的思路。但是,与他们不同的是,我找到了智能系统所在环境之中最重要的因素,不是别的,正是一个用户或者玩家——这个观察者!于是,多条不同的思路开始汇聚于一处:观察者!<br>
 
  大概在2006年左右的时候,我的头脑中已经渐渐地独立浮现出人工智能具身派的思路。但是,与他们不同的是,我找到了智能系统所在环境之中最重要的因素,不是别的,正是一个用户或者玩家——这个观察者!于是,多条不同的思路开始汇聚于一处:观察者!<br>
 +
 +
==观察者分析范式==
 +
 +
  将观察者引进人工智能给我们提供了一种新的思维范式。所以,我们这里并不讨论人工智能具体的算法,而是将人与计算机程序作为一个整体来分析。<br>
 +
===从图灵测试说起===
 +
  关于什么是人工智能,人们并没有一个清晰的定义。不过,我们普遍认同的是一种被称为“图灵测试”(TuringTest)的测试方法。如下图:<br>
 +
[[File:xtzdgcz4_1.JPG|居中]]<br>
 +
<center>图4-1 图灵测试</center><br>
 +
  图灵测试具体是这样实施的,一个人作为检验者分别与两个小黑屋中的计算机和人进行交互。假如人与屋内的系统的交流方式有限,例如只能通过一个键盘+显示器这样的输入输出设备。在经过足够长的交互过程之后,如果这个测试者不能判断哪一个是人,哪一个是机器,则我们就称计算机具有了智能。<br>
 +
'''''a.观察者'''''<br>
 +
  注意,其实图灵测试中的这个检验者就是我们所说的观察者。因此,一切的判断都需要通过观察者做出,观察者分析范式其实早已经进入了人工智能之中。<br>
 +
  传统的人工智能总是把精力集中到计算机程序身上,人们思考最多的从来都是如何改进程序算法。不知不觉,这个问题的前景:计算机程序渐渐占据了主要视线,而问题的背景:做出判断的观察者却已经渐渐淡出。<br>
 +
  那么,我们所倡导的观察者理论思维范式是什么样子呢?计算机以及站在计算机前面的人——观察者是一个耦合的整体,不能分开。因此,真正的人工智能系统不能单单考虑对计算机程序的改进,更要考虑对人类观察者的改进。于是,'''与其说我们要构建的是一个非常聪明的所谓的智能系统,还不如说是一个能够蒙骗人类判断力的骗人程序!'''<br>
 +
'''''b.互动'''''<br>
 +
  图灵测试带给我们的另外一个宝贵的启发就是互动。所谓的互动就是指人类观察者和计算机程序之间的一种实时的动态的,双向的交互行为,也就是说不仅仅机器要对人有输出,人也要对机器有输入。其实这个互动过程就是我们前面章节讨论过的广义的'''观察'''。<br>
 +
  互动性对于我们判断程序是否有智能来说是一个必不可少的要素。例如,当我们看到电视屏幕上的一个会走动、会思考、谈话的爱因斯坦时,我们一定不会把屏幕上的这个虚拟人物是有智力的,原因在于我们不能与它进行实时互动。因此,互动甚至可以看作是独立于平面、立体、时间的新的维度。<br>
 +
  在我们的观察者理论中,互动不仅仅是实现人工智能的必要因素,而且它还是一种'''重要的资源'''。正如前面反复强调的一个观点:观察者的观察不仅仅在被动地感受这个世界,它还可以主动地去创造世界。在人-机系统中,人类的互动(点击鼠标、敲击键盘)其实就是这种观察的具体体现,它完全可以形成一种观察之流注入到计算机中。这种观察之流就好比太阳辐照大地可以造就万事万物一样,它也可以创造出人工系统的复杂性,甚至高级的智能。可惜的是,以往的人工智能很少将人类的互动看作一种资源。总而言之,所谓的智能程序实际上应该是一种吃“互动”或者“观察”资源的程序。<br>
 +
[[File:xtzdgcz4_2.JPG|居中]]<br>
 +
<center>图4-2 吃互动的程序</center><br>
 +
===一个机器和两个观察者===
 +
  现在就让我们从观察者的视角来剖析人工智能这个问题。可以说所有的人工智能系统,如果考虑了观察者因素都可以表示为下图:<br>
 +
[[File:xtzdgcz4_3.JPG|居中]]<br>
 +
<center>图4-3 一个程序和两个观察者</center><br>
 +
  首先,任何计算机程序都不可能凭空自己产生,必须要有一个观察者来创建它,这个观察者就是程序的构建者,也即程序员。<br>
 +
  其次,任何程序都需要有人类使用它,那么这个观察者就被称为玩家(Player,借鉴游戏中的说法)。本章所说的人工智能的背景主要是指这个观察者。<br>
 +
  当然,这种分类方法其实暗含了一个时间顺序在里面的,即程序员先要编写人工智能程序,然后再由玩家来玩。但是,传统的人工智能学科分析这个问题的时候,却把整个时间周期大大缩短了,也就是说,只有玩家玩的过程才是智能程序需要关注的过程。<br>
 +
  然而,当我们把时间尺度进一步扩大,如果玩家与这个人工智能程序互动之后,觉得不好了,这个时候,程序构建者就会反过来对人工智能程序进行改进,使得该程序能够进一步地满足玩家的需要。<br>
 +
  我们看到,无论这个程序是否是人工智能,当我们把观察者这个因素考虑进来之后,那么这个整体系统的运作就都可以归结为下面这两个步骤构成的无穷循环:<br>
 +
[[File:xtzdgcz4_4.JPG|居中]]<br>
 +
<center>图4-4 完整程序周期</center><br>
 +
  当我们判断某个程序具有智能的时候,其实是仅仅针对使用/玩这个步骤来说的。如果说一个程序P具有了智能,那么显然P需要独立运行,这个时候,它的创造者:程序员不能对程序进行改进。否则的话,我们就不能说这是计算机程序的智能,而仅仅是程序员的智能了。<br>
 +
  我们还是用图灵测试来举例,假如程序员A写好了一个程序P,让玩家B来测试。于是B提出了一个简单的问题给程序P:“请问你妈贵姓?”。<br>
 +
  P傻了,回答说:“&*&***——$#$$#$#$&*(*(&”。<br>
 +
  B显然很恼怒:“这是什么破程序呀!还智能呢!”<br>
 +
  这个时候,A坐不住了:“对不起,您让我来改写一下我的程序P吧。”<br>
 +
  B很宽宏大量,“好吧,允许你改一改!”<br>
 +
  这个时候,A把程序更改成了P’<br>
 +
  B又问:“你妈贵姓?”<br>
 +
  P’回答:“跟我一个姓,你猜我姓什么?”<br>
 +
  B:“不错,还挺聪明。那你姓什么?”<br>
 +
  P’:“&*&***——$#$$#$#$&*(*(&”<br>
 +
  A:“不行,老兄,我得再改改程序,再让它回答您的问题!”<br>
 
  ……<br>
 
  ……<br>
 +
  很显然,程序P完全不是人工智能,而P’的第一个回答好像挺智能的,但其实你也看出来了,P’第一个回答完全是程序员A更改的结果。因此我们不能说P或者P'具有智能,只能说程序员A具有智能。<br>
 +
  假如这回A把P进行了更大的改进,它至少可以像模像样地回答10000个问题,尽管这些问题仍然是A事先存储到计算机之中的,那么B在跟他进行有限次的问答之后,仍然有可能把P判断成有智能的。所以,我们看到,智能的判断就变成了一个时间长短的问题。也就是说,传统判断人工智能程序的一个关键的隐含因素就是:'''我们判断一个程序P是否具有智能,只能在它运行、被使用(玩)的阶段进行判断,而不能包括程序员对它进行开发/调试这个阶段。'''<br>
 +
  然而,我们马上会发现,问题没那么简单,因为在很多时候开发/调试阶段和使用/玩阶段是分不太清楚的。<br>
 +
===当玩家变成程序员===
 +
  下面,我们站在计算机程序的角度分析问题。对于计算机来说,无论是玩家与程序的交互,还是程序员更改程序其实都体现为键盘或者鼠标上面输入的电信号。也就是说,其实计算机程序从来都不区分玩家和程序修改这两个观察者,这种区分恰恰是我们人类做出来的。<br>
 +
  那么,我们就来做这样一个假设,既然玩家和程序员本质上没有任何区别,那有没有可能玩家就是程序员本身呢?这样,图4-3就可以变成了如下的样子:<br>
 +
[[File:xtzdgcz4_5.JPG|居中]]<br>
 +
<center>图4-5 化简的观察者与程序关系</center><br>
 +
  这里的玩家就是一种广义的玩家,他既是我们普通意义上的玩家(程序的使用者)又是普通意义上的程序员(程序的构建者/修改者)。进一步,从时间上来看,我们也就不再区分开发/调试与使用/玩这两个不同的步骤,于是图4-4就变成了下图:<br>
 +
[[File:xtzdgcz4_6.JPG|居中]]<br>
 +
<center>图4-6 化简的程序与人交互周期</center><br>
 +
  因此,所有的互动过程都简化为一个“玩”字。从观察者理论的角度来说,这个“玩”字正体现了我们所说的广义上的观察!<br>
 +
  从这个角度来说,传统意义上的人工智能程序的界定已经当然无存了,因为我们已经不能分割出来一个能够'''独立地脱离编程员设计的人工智能程序'''。取而代之的,我们应该考虑如何设计一个更好的平台作为初始的系统,使得'''观察者能够一直不停地在这个平台上“玩”下去'''。这才是从观察者理论角度理解的真正的人工智能!<br>
 +
  让我们还是用图灵测试为例来说明。我们要设计的其实不是一个多么强大、聪明的聊天程序,而是一个可以提供人和计算机进行交互的平台。在这个平台之中,玩家随随便便地聊天的话语,比如“你吃了吗?”,与程序员所写的冷冰冰的机器代码“Mov2b,Addc,…”没有本质上的区别。这样,玩家普通的聊天也可以变成对程序指令的修改,使得这个程序就能够在聊天使用中完成了自身结构的改变,这才是史上最强大的人工智能程序!<br>
 +
  再多说两句,其实当图灵等人发明了所谓的通用图灵机(UniversalTuringMachine)这种程序,前面设想的那个最强大的人工智能程序平台就已经存在了。因为无论是更改程序还是与机器聊天都可以被通用图灵机解释为机器代码。所以,从这个意义上来说,'''其实我们不应该发明什么人工智能程序,而是应该发现真正的智能'''!这就好比古人所讲的道,你就是找不到它在哪,但它的确早就在那里了。<br>
 +
  读到这里,也许你会说,这些分析没什么了不起。机器学习程序不就是这么干的吗?它就是在运行使用(玩)的时候调整自己的参数或者结构,并且让自己变得越来越聪明的。<br>
 +
  没错,可以这样说,具有学习功能的程序的确比传统意义上的人工智能程序更接近我们这里所理解的智能。然而,机器学习这门学科更多地是强调如何改进程序的算法和结构,使得在较短的学习周期之中达到用户的要求。也就是说,机器学习仍然是把图4-6所示的周期拆成图4-4的两个,而把重点放在如何设计/调试出一个程序使它能够在使用/玩的过程中表现更好。<br>
 +
  然而,我们这里所说的人工智能,更形象地说应该是一种“吃交互的机器”。它把每一次玩家的交互都看作一种资源来更新自己的结构,而不再区分这是程序的调试还是玩家的使用。所以,我们要做的理论突破并不在于程序本身上,而是在于如何更深入地理解究竟什么是玩家“玩”这个动作,以及如何去利用这种资源<br>
 +
  为了体现出“玩”这个动词不一样的特性,让我们来看一下EdwardCastronova的研究工作。他早先是一名不起眼的经济学家,后来因为他给Everquest这款网络游戏计算了GDP而一举成名。他的计算大体思路如下:首先,他发现有很多玩家将自己的虚拟角色或者物品拿到eBay上拍卖,并且,每当虚拟角色升级一次就可以多卖出13美元。其次,他估算出玩家让自己的角色升一级大概需要51.4小时,那么平均每个小时每个玩家就能创造13/51.4≈0.25美元的价值。每天Everquest游戏中都有60381个玩家在线,那么,整个游戏在一年创造出的价值,也就是GDP就是年均60381*24*365*0.25≈1亿3千万美元。<br>
 +
  Edward研究的重点就是将玩家所花的在线玩游戏的时间不看作一种消费,而是一种生产。这恰恰体现了我们所理解的:更本质的东西在于交互,因为它既可以被看作是使用/玩,也可以被看作是生产和创造。<br>
 +
  那么,真正的智能程序应该是一款伟大的游戏,它能让所有的玩家在玩它的过程中为它补充营养!我们会在第4节继续讨论这个问题,但是在此之前,我们需要对上面讨论的这些东西尽量进行形式化表述。<br>
    
[[category:旧网站]]
 
[[category:旧网站]]