更改

跳到导航 跳到搜索
无编辑摘要
第39行: 第39行:  
  那么,我们所倡导的观察者理论思维范式是什么样子呢?计算机以及站在计算机前面的人——观察者是一个耦合的整体,不能分开。因此,真正的人工智能系统不能单单考虑对计算机程序的改进,更要考虑对人类观察者的改进。于是,'''与其说我们要构建的是一个非常聪明的所谓的智能系统,还不如说是一个能够蒙骗人类判断力的骗人程序!'''<br>
 
  那么,我们所倡导的观察者理论思维范式是什么样子呢?计算机以及站在计算机前面的人——观察者是一个耦合的整体,不能分开。因此,真正的人工智能系统不能单单考虑对计算机程序的改进,更要考虑对人类观察者的改进。于是,'''与其说我们要构建的是一个非常聪明的所谓的智能系统,还不如说是一个能够蒙骗人类判断力的骗人程序!'''<br>
 
'''''b.互动'''''<br>
 
'''''b.互动'''''<br>
  图灵测试带给我们的另外一个宝贵的启发就是互动。所谓的互动就是指人类观察者和计算机程序之间的一种实时的动态的,双向的交互行为,也就是说不仅仅机器要对人有输出,人也要对机器有输入。其实这个互动过程就是我们前面章节讨论过的广义的'''观察'''。<br>
+
  图灵测试带给我们的另外一个宝贵的启发就是互动。所谓的互动就是指人类观察者和计算机程序之间的一种实时的动态的,双向的交互行为,也就是说不仅仅机器要对人有1输出,人也要对机器有输入。其实这个互动过程就是我们前面章节讨论过的广义的'''观察'''。<br>
 
  互动性对于我们判断程序是否有智能来说是一个必不可少的要素。例如,当我们看到电视屏幕上的一个会走动、会思考、谈话的爱因斯坦时,我们一定不会把屏幕上的这个虚拟人物是有智力的,原因在于我们不能与它进行实时互动。因此,互动甚至可以看作是独立于平面、立体、时间的新的维度。<br>
 
  互动性对于我们判断程序是否有智能来说是一个必不可少的要素。例如,当我们看到电视屏幕上的一个会走动、会思考、谈话的爱因斯坦时,我们一定不会把屏幕上的这个虚拟人物是有智力的,原因在于我们不能与它进行实时互动。因此,互动甚至可以看作是独立于平面、立体、时间的新的维度。<br>
 
  在我们的观察者理论中,互动不仅仅是实现人工智能的必要因素,而且它还是一种'''重要的资源'''。正如前面反复强调的一个观点:观察者的观察不仅仅在被动地感受这个世界,它还可以主动地去创造世界。在人-机系统中,人类的互动(点击鼠标、敲击键盘)其实就是这种观察的具体体现,它完全可以形成一种观察之流注入到计算机中。这种观察之流就好比太阳辐照大地可以造就万事万物一样,它也可以创造出人工系统的复杂性,甚至高级的智能。可惜的是,以往的人工智能很少将人类的互动看作一种资源。总而言之,所谓的智能程序实际上应该是一种吃“互动”或者“观察”资源的程序。<br>
 
  在我们的观察者理论中,互动不仅仅是实现人工智能的必要因素,而且它还是一种'''重要的资源'''。正如前面反复强调的一个观点:观察者的观察不仅仅在被动地感受这个世界,它还可以主动地去创造世界。在人-机系统中,人类的互动(点击鼠标、敲击键盘)其实就是这种观察的具体体现,它完全可以形成一种观察之流注入到计算机中。这种观察之流就好比太阳辐照大地可以造就万事万物一样,它也可以创造出人工系统的复杂性,甚至高级的智能。可惜的是,以往的人工智能很少将人类的互动看作一种资源。总而言之,所谓的智能程序实际上应该是一种吃“互动”或者“观察”资源的程序。<br>
第124行: 第124行:  
  所以,在这个图灵机-观察者模型之中,我们看到了一种非常漂亮的对称关系,一种客观世界与人类心理世界的对称,这种对称由观察——即测量也就是玩家的选择——即玩连接到一起,更有意思的是,这种现实与心理世界之间的完美对称关系会被观察所打破!<br>
 
  所以,在这个图灵机-观察者模型之中,我们看到了一种非常漂亮的对称关系,一种客观世界与人类心理世界的对称,这种对称由观察——即测量也就是玩家的选择——即玩连接到一起,更有意思的是,这种现实与心理世界之间的完美对称关系会被观察所打破!<br>
 
  '''c.文献和实验的支持'''<br>
 
  '''c.文献和实验的支持'''<br>
  有相当的文献支持这种把人的决策甚至是自由意识描述为量子行为的做法(参见:Stapp H.P. Mindful Universe: Quantum Mechanics and the Participating Observer. Springer, 2007)。尤其是,人们在近期的一些行为学实验发现,人类的行为选择并不遵循传统的概率论解释,但是如果用量子概率体系进行描述,则可以解释很多行为试验中揭示出来的现象(参见:[http://www.swarmagents.cn/thesis/detail.asp?id=305 这里]和[http://mypage.iu.edu/~jbusemey/quantum/QIP_Tutorial_Prob.pdf 这里])。<br>
+
  有相当的文献支持这种把人的决策甚至是自由意识描述为量子行为的做法(参见:Stapp H.P. Mindful Universe: Quantum Mechanics and the Participating Observer. Springer, 20907)。尤其是,人们在近期的一些行为学实验发现,人类的行为选择并不遵循传统的概率论解释,但是如果用量子概率体系进行描述,则可以解释很多行为试验中揭示出来的现象(参见:[http://www.swarmagents.cn/thesis/detail.asp?id=305 这里]和[http://mypage.iu.edu/~jbusemey/quantum/QIP_Tutorial_Prob.pdf 这里])。<br>
 
  当然,将用户的选择用量子概率建模还仅仅是一个大胆的猜测,不过,我们完全可以通过行为试验的方式来对这个假设进行验证。<br>
 
  当然,将用户的选择用量子概率建模还仅仅是一个大胆的猜测,不过,我们完全可以通过行为试验的方式来对这个假设进行验证。<br>
 
  进一步,玩家从纸带上读取信息又可以建模成对用户心理量子态的酉变换。假如玩家当前的心理状态是[[File:xtzdgcz4_zm5.JPG]],那么当他读入了一个纸带上的信息a(=0,1),玩家的心理状态将发生变化:<br>
 
  进一步,玩家从纸带上读取信息又可以建模成对用户心理量子态的酉变换。假如玩家当前的心理状态是[[File:xtzdgcz4_zm5.JPG]],那么当他读入了一个纸带上的信息a(=0,1),玩家的心理状态将发生变化:<br>
第134行: 第134行:     
===图灵机+玩家=宏量子===
 
===图灵机+玩家=宏量子===
当我们用图灵机描述计算机,用量子概率来描述玩家的选择行为,那么整个图灵机-观察者模型就可以看作是一个宏观的量子系统了。
  −
经典的图灵机计算理论关注的是问题的可求解性,经典的量子力学关注的是如何准确地描述微观粒子行为。而我们的玩家+图灵机模型不再关注这些问题,我们关心的是一种被称为测量网的抽象结构的宏观性质。
  −
我们知道,计算机程序除了用图灵机表述以外还可以用流程图来表示。在图灵机-观察者模型中,玩家的选择也需要考虑进去,因此,流程图不再是普通意义上的流程图,而应该是包含了玩家选择的图,我们称这样的图为测量网,例如:
  −
如图所示,从宏观上,人类玩家和机器之间的互动就可以构成这样一个我们称之为“测量网络”的模型,其中有两类节点,圆圈表示的节点就是由机器展开的节点,太阳表示的节点则是由玩家的选择展开的节点。每个节点对应的连线就相当于不同的选择路径。例如,从节点A展开两条路径对应的是玩家的两种不同的选择。同样,由计算机展开的节点也可以表示相应的程序判断,不同的判断可以导致不同的路径。
  −
在模型中,由于图灵机的行为是我们事先确定好的,因此,用户的测量行为起到了相对重要的作用。我们知道,由于每个测量节点都可以用量子概率来表达,所以,这些测量节点导致了整个测量网络本质上是一个量子系统。
  −
例如在A节点为根的子网络就是一个量子系统。在实施A点的测量之前,这个子系统处于一种量子叠加态之中。也就是说,程序会从灰色路径走还是从右边的黑色路径走是不确定的叠加态(或者说在测量之前,系统既可以走灰色路径又可以走黑色的路径)。当程序执行到了A点,那么玩家做出了向左走(0)或者向右走(1)的选择,于是量子叠加态便会在瞬间坍缩成确定的路径,例如用户最终选择了从A点向右走,那么左侧的灰色路径就会在瞬间消失,系统凝固到右侧黑色的路径上。
  −
另外,在测量网络上,我们可以在不同的点设置不同的测量节点(由玩家展开的选择)。那么这些节点有可能构成前后不同的顺序,例如图中所示的A和B两个节点,显然A的选择有可能会影响B的选择。也就是说在A处的测量会影响到B处选择往左走还是往右走的量子叠加态。本质上说,A测量和B测量构成了相互影响的不兼容的测量(参见《当概率变成复数——量子概率简介》),正是由于不兼容测量对在这个测量网络上的大量存在,才使得整个系统必须用量子概率而非经典概率来描述。
  −
那么,我们进行所谓的游戏设计(或者交互式程序的设计)本质上讲就是要设计出一个复杂的测量网络,设计者需要把测量节点(用户的选择)放置到网络中的不同位置上,从而导致网络整体呈现出完全不同的宏观属性,这正是测量网络最有趣的地方所在。
  −
另一方面,对于整个测量网络来说,由于它本质上讲是一个量子系统,所以我们也可以把整个量子系统看作一台量子计算机。于是,我们甚至可以设计适当的测量网络,使得整个系统完成某种任务的量子计算。我们知道,经典的量子计算需要用到实际存在的量子比特(比如自旋粒子),由于量子资源的获取仍然比较困难,这就导致量子计算目前仍然处于理论阶段。但是,根据我们这里的分析,实际上一台计算机加上可以操作计算机系统的人就是一台可以执行量子计算的计算机。可以说,我们很容易就能获得廉价的量子计算。这也为后面我们将要提到的人类计算(HumanComputation)提供了可能性。
  −
最后,我们知道,量子计算在很多方面已经超越了普通的图灵机,因此,整个玩家-图灵机系统就是一个可能超越图灵计算的系统。
  −
4、最终的目标
  −
虽然上文所述的测量网络有很多诱人的性质,但是,这个模型还仅仅停留在描述阶段。衡量一个模型成功与否的标准一个是它能够抽象而又不失一般性地描述真实系统,另一方面,就是它能够帮助我们把一些很难说清楚的性质从模型的角度刻画出来。
  −
我们提到的图灵机-观察者模型以及测量网络模型也必须同时满足这两个标准。我们已经用图灵机-观者模型较好地描述了原始系统,那么,我们就要向下一个目标进军,也就是希望把一些本来说不清楚的定性概念,在该模型框架下给出定量的表述。尽管在这方面我们还没有取得任何实质性的进展,但是我们至少已经提出了非常清晰的目标。
  −
(1)、玩家的目标——可玩性
  −
首先,从人类玩家的角度来说,程序必须具备可玩性。说到一个程序是否好玩,我们马上会联想到很多因素,例如,游戏的画面是否好看,游戏的情节设计是否有趣,等等,似乎很难下手。但是,当我们抛开这些纷繁的复杂性,我们便会发现,其实可玩性的本质并不是由这些表面因素制约的,而是由游戏的规则决定的,而且这种规则也不一定非常复杂,可以是非常简单的。比如,我们都玩过的俄罗斯方块游戏,它的规则异常简单,但是可玩性却非常高,因此它是一个经典的游戏。
  −
当我们从规则角度出发来考虑,也有很多因素制约着可玩性。例如,游戏的平衡性,游戏的难度等等。联系到我们这里的测量网络,我们提出另外一个大胆的猜想,也就是游戏本身的可玩性完全由测量网络的结构以及测量网络上面的各种参数决定的。这就为我们从网络的角度优化游戏的可玩性提供了可能。
  −
我们举几个例子来说明这个问题。假如我们在一个测量网络中同一条路径上设置了过多的测量节点,这就意味着玩家做完了一个选择之后,马上就要做出下一个选择。那么,可以想象,玩家玩这样的游戏就会容易疲劳。反过来,如果测量节点在整个网络上安排得过于稀疏,则玩家的参与感就会下降。因此,测量节点密度显然就会影响整个程序的可玩性。我们便找到了一种可玩性与测量网络结构之间的联系。
  −
另外,在测量网络中,有很多机器展开的节点。这些节点不允许玩家进行判断,但是可以允许玩家读到这些节点的信息。而在前一节中,我们已经提到,玩家读信息可以看作是对玩家的心理状态进行某种酉变换,这种酉变换显然又会影响到下一个测量节点的测量情况。而每个酉变换都至少由一个参数:变换的复数角来决定,所以,整个测量网络不仅仅跟结构有关,也与这些参数有关。例如,在俄罗斯方块中,尽管测量节点在每一个周期都相继展开,但是,由于游戏的每个不同状态显然会影响玩家的心理状态(例如方块在底端构成的堆积的平衡性),那么这些酉变换便决定了俄罗斯方块这个游戏是否好玩。
  −
在本篇文章,我们不打算给出具体的刻画游戏可玩性的定量指标。但是,笔者隐约感到游戏的可玩性这个概念其实和一些非常深刻的物理概念有着各种各样的联系。我们知道,整个测量网络其实就是一个量子系统,而量子系统中存在着一种被称为“量子芝诺效应”的现象也许会跟可玩性有着深刻的联系。所谓的量子芝诺效应是说,如果观察者反复不停地测量一个量子系统,那么这种观测就会使得量子系统的变化速度减慢。比喻到游戏系统之中,也就是对玩家反复不断地测量(让玩家相继做出一系列连续的判断)就有可能使得玩家所经历的心理时间变慢。而这种现象很常见,当你全身心地投入地去玩一个游戏的时候,你通常会感觉到你的心理时间才过了10分钟,但是实际的时间已经过去了2个小时,那么这种现象很有可能可以用量子芝诺效应来解释。
  −
但是我们前面举过例子,连续不断地测量也许会给玩家造成疲劳感,而不是心理时间变慢,这两者似乎存在着冲突。因此,在这里,也许我们需要重新定义时间这个概念,如果我们不用客观时间定义时间,而是用信息量的变化来定义时间,那么持续不断地测量的本质并不在于时间间隔的长短上,而是在于每两次测量的间隔中,由于测量所引起的信息量的变化。这就联系到了上一章所提到的熵概念。我们知道,任何封闭的系统都会熵增。翻译成观察者的语言也就是,一个封闭系统给观察者所带来的信息增量会越来越少。这样,我们设计的测量网络必须在每一次测量之中都尽量给玩家带来更多的信息,这样才会使得玩家产生很好的粘性。
  −
进一步,可玩性其实跟我们通常所说的复杂性也有着千丝万缕的联系。我们都会有这样的感觉:当双眼盯着MediaPlayer所显示出来的各种复杂的花纹的时候,我们会感觉这种动画有一种深深的吸引力,我们会不知不觉地将注意力完全投向那些花纹。因此,这些花纹似乎就可以称得上是“吃注意的机器”,因为你的注意力已被他深深地吸引。可玩性强的程序也有这种特点,因此,复杂性甚至可能就是在没有交互情况下的可玩性。
  −
(2)、程序的目标——不断加深的虚拟层次
  −
下面我们站在计算机程序的角度来讨论我们这个理论最终需要解决的问题目标。让我们再次回忆前面讨论过的计算机程序和两个观察者的问题。我们提到,这两个观察者分别是程序设计者和玩家,那么联系这些观察者和程序就需要完成如图4-4的程序开发周期:
     −
 
+
  当我们用图灵机描述计算机,用量子概率来描述玩家的选择行为,那么整个图灵机-观察者模型就可以看作是一个宏观的量子系统了。<br>
这张图说明,玩家在使用/玩程序的时候如果发现了不如意的地方,就会反馈给程序的开发者,开发者就会对程序进行调试、修改甚至再开发,然后再次交付玩家去使用。然而,按照本文所提到的观点,其实,站在机器的角度来看,开发者和玩家是一回事儿,因为无论是程序的调试、修改还是玩家的使用/玩交互最终都体现为键盘或者鼠标上面输入的电信号。
+
  经典的图灵机计算理论关注的是问题的可求解性,经典的量子力学关注的是如何准确地描述微观粒子行为。而我们的玩家+图灵机模型不再关注这些问题,我们关心的是一种被称为测量网的抽象结构的宏观性质。<br>
所以,我们便可以把这个周期的不同阶段压缩成一个阶段:“玩”,如图4-6。
+
  我们知道,计算机程序除了用图灵机表述以外还可以用流程图来表示。在图灵机-观察者模型中,玩家的选择也需要考虑进去,因此,流程图不再是普通意义上的流程图,而应该是包含了玩家选择的图,我们称这样的图为测量网,例如:<br>
然而,读者也许会很纳闷,既然对于计算机来说开发/调试和使用/玩都是一回事儿,那为什么我们人类却感觉到这两个周期完全不同呢?至少没有哪一个玩家会义务给游戏开发生更改程序!
+
[[File:xtzdgcz4_13.JPG|居中]]<br>
如果读者稍微懂一些计算机的基本原理,就会非常清楚,虽然程序员的代码修改和玩家的使用/玩最终都会体现为给计算机输入的电信号,但是这两类电信号却有着非常本质而重要的区别:程序员的电讯号输入给的是编译程序,这种编译程序在运行以后可以生成一个运行中的游戏程序;而玩家的电信号恰好输入给这个运行中的程序。
+
<center>图4-9 测量网络</center><br>
也许从图灵机和通用计算的角度会把这个问题说得更清楚一些:程序员的信号输入给的是一台通用图灵机(计算机编译系统),而玩家的信号输入的是这台通用图灵机上面的模拟的一个虚拟图灵机。这样,只要你这个程序中没有Bug,那么无论玩家如何输入各种具有破坏性的电信号,它都不可能对那个通用图灵机造成影响,因为这两个图灵机分别运行在不同的虚拟层次上。换句话说,玩家运行的那个程序是处在比程序员面对的那个程序更深的虚拟层次之上。
+
  如图所示,从宏观上,人类玩家和机器之间的互动就可以构成这样一个我们称之为“测量网络”的模型,其中有两类节点,圆圈表示的节点就是由机器展开的节点,太阳表示的节点则是由玩家的选择展开的节点。每个节点对应的连线就相当于不同的选择路径。例如,从节点A展开两条路径对应的是玩家的两种不同的选择。同样,由计算机展开的节点也可以表示相应的程序判断,不同的判断可以导致不同的路径。<br>
提到虚拟层次,也许大家会感觉到陌生,但实则这是一个非常常见的概念。比如大家都熟悉的故事里面的故事、电影中的电影等等。现在还有一些软件,就叫做虚拟机软件,例如下图所示:
+
  在模型中,由于图灵机的行为是我们事先确定好的,因此,用户的测量行为起到了相对重要的作用。我们知道,由于每个测量节点都可以用量子概率来表达,所以,这些测量节点导致了整个测量网络本质上是一个量子系统。<br>
 
+
  例如在A节点为根的子网络就是一个量子系统。在实施A点的测量之前,这个子系统处于一种量子叠加态之中。也就是说,程序会从灰色路径走还是从右边的黑色路径走是不确定的叠加态(或者说在测量之前,系统既可以走灰色路径又可以走黑色的路径)。当程序执行到了A点,那么玩家做出了向左走(0)或者向右走(1)的选择,于是量子叠加态便会在瞬间坍缩成确定的路径,例如用户最终选择了从A点向右走,那么左侧的灰色路径就会在瞬间消失,系统凝固到右侧黑色的路径上。<br>
这张图就表示在一个WinXP系统之上运行的一个虚拟机,而在这台虚拟机上又跑了一个WinXP的程序。那么我们说跑在虚拟机上面的WinXP就比在真实计算机上运行的WinXP处于更深的虚拟层次。使用过虚拟机的朋友都会感觉到这种虚拟层次的好处有很多,比如说病毒对更深一层的程序的破坏完全不会影响到上一层。
+
  另外,在测量网络上,我们可以在不同的点设置不同的测量节点(由玩家展开的选择)。那么这些节点有可能构成前后不同的顺序,例如图中所示的A和B两个节点,显然A的选择有可能会影响B的选择。也就是说在A处的测量会影响到B处选择往左走还是往右走的量子叠加态。本质上说,A测量和B测量构成了相互影响的不兼容的测量(参见[http://www.swarmagents.cn/bs/files/jake201086154814.pdf 《当概率变成复数——量子概率简介]》),正是由于不兼容测量对在这个测量网络上的大量存在,才使得整个系统必须用量子概率而非经典概率来描述。<br>
那么,我们说,真正的智能程序是会把程序员的调试以及玩家的玩看作一种统一的资源,因此程序就会把玩的各种交互作为对自身程序的改进,从而更新自身。那么,从虚拟层次的角度来考虑也就意味着我们所说的智能程序其实已经把深一层次的输入信号(给程序的)和浅一层次的输入信号(给编译程序的)混淆了。这样,我们就有可能做到将玩家的输入作为一种资源来促使整个系统的结构改进。
+
  那么,我们进行所谓的游戏设计(或者交互式程序的设计)本质上讲就是要设计出一个复杂的测量网络,设计者需要把测量节点(用户的选择)放置到网络中的不同位置上,从而导致网络整体呈现出完全不同的宏观属性,这正是测量网络最有趣的地方所在。<br>
然而,对于一个真实的程序来说,我们如何做到这种层次的混淆呢?尤其是,如果我们已经按照传统的设计方式设计了两层程序,那么我们又怎么可能让程序对比它高一层次的程序进行修改呢?这样做的确很困难,但是存在着另外一种解决方案,那就是再构造一层更深的虚拟层,如下图:
+
  另一方面,对于整个测量网络来说,由于它本质上讲是一个量子系统,所以我们也可以把整个量子系统看作一台量子计算机。于是,我们甚至可以设计适当的测量网络,使得整个系统完成某种任务的量子计算。我们知道,经典的量子计算需要用到实际存在的量子比特(比如自旋粒子),由于量子资源的获取仍然比较困难,这就导致量子计算目前仍然处于理论阶段。但是,根据我们这里的分析,实际上一台计算机加上可以操作计算机系统的人就是一台可以执行量子计算的计算机。可以说,我们很容易就能获得廉价的量子计算。这也为后面我们将要提到的人类计算(Human Computation)提供了可能性。<br>
 
+
  最后,我们知道,量子计算在很多方面已经超越了普通的图灵机,因此,整个玩家-图灵机系统就是一个可能超越图灵计算的系统。<br>
如图所示,我们将玩家的交互视做一种资源流,那么我们所要设计的程序P就要引导这股资源流(虚箭头)。传统的程序修改周期是引导这股资源流往更高的层次走(在编译系统中修改程序源代码,从而修改游戏程序),但是,这种修改通常是不可能由玩家作出的。但是,有可能程序P将玩家的交互流向另一个方向引领,这就是往更深的虚拟层引领。这样我们可以将利用玩家的各种交互在现有的程序P平台上构造出一台新的虚拟机,并且显然,我们可以把程序P自身在这台虚拟机上做一个拷贝形成P’(就好比在虚拟机上再跑一个同样版本的WinXP一样)。同时,让程序的输出表现是由更深一层的虚拟机P’实现的。由于玩家根本区分不出是哪一个层次给出的反馈信息,于是,玩家就会出现玩这个程序的同时已经更改了这个程序本身的假象。就这样,一个可以不断修改自身的程序就可以实现了!
+
==最终的目标==
如果说程序P是支持通用计算的,那么很显然它自身在更深层次的拷贝P'自然也支持,于是,我们还可以在P’之下再构造一个更深的虚拟层,并做出更深层次的拷贝P’’,这个过程还可以继续重复下去„.。
+
  虽然上文所述的测量网络有很多诱人的性质,但是,这个模型还仅仅停留在描述阶段。衡量一个模型成功与否的标准一个是它能够抽象而又不失一般性地描述真实系统,另一方面,就是它能够帮助我们把一些很难说清楚的性质从模型的角度刻画出来。<br>
可想而知,这样一个可以不断构建自身、同时又可以修改自身的程序会表现出一些非常可贵的品质:它不需要程序员的修改,就可以自动从玩家的交互中不断修改自身,构建出越来越深的复杂性。难道我们不能称这样的程序是智能的吗?
+
  我们提到的图灵机-观察者模型以及测量网络模型也必须同时满足这两个标准。我们已经用图灵机-观者模型较好地描述了原始系统,那么,我们就要向下一个目标进军,也就是希望把一些本来说不清楚的定性概念,在该模型框架下给出定量的表述。尽管在这方面我们还没有取得任何实质性的进展,但是我们至少已经提出了非常清晰的目标。<br>
问题难就难在,我们将如何让上面所表述的整个构建越来越深的虚拟层次这件事儿在玩家的交互过程中自动地发生?目前,我们不打算在这篇文章中给出具体的答案,但是笔者相信,从上面介绍的量子概率和测量网络方面有可能给出这个问题很好的解答。最终,我们期望能够提高玩家可玩性的测量网络也是一个可以不断构造更深虚拟层次的测量网络!
+
===玩家的目标——可玩性===
至此,我们看到的已经不再是与玩家分离的人工智能程序,也不再是没有计算机辅助的人类进化,我们看到的是一个人与机器协同进化的场景。在这个场景下,机器为人提供的是无限的可玩性,而人给机器则提供了进化以及不断构建虚拟层次的动力。而连接机器和人的纽带不是别的,正是观察(玩、交互)——这个非常重要的资源!
+
  首先,从人类玩家的角度来说,程序必须具备可玩性。说到一个程序是否好玩,我们马上会联想到很多因素,例如,游戏的画面是否好看,游戏的情节设计是否有趣,等等,似乎很难下手。但是,当我们抛开这些纷繁的复杂性,我们便会发现,其实可玩性的本质并不是由这些表面因素制约的,而是由游戏的规则决定的,而且这种规则也不一定非常复杂,可以是非常简单的。比如,我们都玩过的俄罗斯方块游戏,它的规则异常简单,但是可玩性却非常高,因此它是一个经典的游戏。<br>
5、展望
+
  当我们从规则角度出发来考虑,也有很多因素制约着可玩性。例如,游戏的平衡性,游戏的难度等等。联系到我们这里的测量网络,我们提出另外一个大胆的猜想,也就是游戏本身的'''可玩性完全由测量网络的结构以及测量网络上面的各种参数决定的'''。这就为我们从网络的角度优化游戏的可玩性提供了可能。<br>
本章从人工智能作为切入点,深入谈及了人机关系、人机结合的问题。我们首先提出人工智能这个目标应该被我们废问。所谓的废问并不是说人工智能永远不可能实现,而是说当我们对计算机的了解越来越深入,人工智能这个早期的目标:模拟人类的智力变得越来越不重要。正是在废问人工智能这个问题的同时,我们看到了另外一个真正重要的主题浮现:人机结合。也就是说,现在当务之急并不是要开发出大而全的人工智能程序,而是从理论上解决如何让人和计算机的交流更加顺畅!
+
  我们举几个例子来说明这个问题。假如我们在一个测量网络中同一条路径上设置了过多的测量节点,这就意味着玩家做完了一个选择之后,马上就要做出下一个选择。那么,可以想象,玩家玩这样的游戏就会容易疲劳。反过来,如果测量节点在整个网络上安排得过于稀疏,则玩家的参与感就会下降。因此,测量节点密度显然就会影响整个程序的可玩性。我们便找到了一种可玩性与测量网络结构之间的联系。<br>
正是在这废问的过程中,我们看到了另外一个被忽略的角色:坐在计算机面前的玩家观察者。这个角色虽然一直隐藏在阴暗的背景中,但在目前的社会中已经扮演着越来越重要的角色。不夸张地说,对于大多数的都市白领,每天就有将近1/3的时间是在面对各种各样的屏幕,无论是计算机、电视还是手机。看看有那么多用户将自己宝贵的时间花费在开心网,花费在QQ上,我们便知道,我们已经将大量的宝贵资源:人类的观察力、注意力浪费在这些程序之中。
+
  另外,在测量网络中,有很多机器展开的节点。这些节点不允许玩家进行判断,但是可以允许玩家读到这些节点的信息。而在前一节中,我们已经提到,玩家读信息可以看作是对玩家的心理状态进行某种酉变换,这种酉变换显然又会影响到下一个测量节点的测量情况。而每个酉变换都至少由一个参数:变换的复数角来决定,所以,整个测量网络不仅仅跟结构有关,也与这些参数有关。例如,在俄罗斯方块中,尽管测量节点在每一个周期都相继展开,但是,由于游戏的每个不同状态显然会影响玩家的心理状态(例如方块在底端构成的堆积的平衡性),那么这些酉变换便决定了俄罗斯方块这个游戏是否好玩。<br>
(1)、人类计算
+
  在本篇文章,我们不打算给出具体的刻画游戏可玩性的定量指标。但是,笔者隐约感到游戏的可玩性这个概念其实和一些非常深刻的物理概念有着各种各样的联系。我们知道,整个测量网络其实就是一个量子系统,而量子系统中存在着一种被称为'''“量子芝诺效应”的现象也许会跟可玩性有着深刻的联系'''。所谓的量子芝诺效应是说,如果观察者反复不停地测量一个量子系统,那么这种观测就会使得量子系统的变化速度减慢。比喻到游戏系统之中,也就是对玩家反复不断地测量(让玩家相继做出一系列连续的判断)就有可能使得玩家所经历的心理时间变慢。而这种现象很常见,当你全身心地投入地去玩一个游戏的时候,你通常会感觉到你的心理时间才过了10分钟,但是实际的时间已经过去了2个小时,那么这种现象很有可能可以用量子芝诺效应来解释。<br>
将大量在线的人类玩家视作一种宝贵的资源并不是新鲜事儿,美国卡耐基梅隆大学计算机系的学者LuisvonAnn就认为当我们看到Internet上有那么多人将自己的时间浪费在无谓的打怪升级上,为什么不设计出巧妙的机制将这些浪费的资源重新利用上呢?于是,Luis开始设计出很多的游戏,让玩家在玩游戏的过程之中,不自觉地已经帮助工程师们解决了某类艰难的计算问题,Luis将这一研究领域称为“人类计算”(HumanComputation)。
+
  但是我们前面举过例子,连续不断地测量也许会给玩家造成疲劳感,而不是心理时间变慢,这两者似乎存在着冲突。因此,在这里,也许我们需要重新定义时间这个概念,如果我们不用客观时间定义时间,而是用信息量的变化来定义时间,那么持续不断地测量的本质并不在于时间间隔的长短上,而是在于每两次测量的间隔中,由于测量所引起的信息量的变化。这就联系到了上一章所提到的熵概念。我们知道,任何封闭的系统都会熵增。翻译成观察者的语言也就是,一个封闭系统给观察者所带来的信息增量会越来越少。这样,我们设计的测量网络必须在每一次测量之中都尽量给玩家带来更多的信息,这样才会使得玩家产生很好的粘性。<br>
2008年9月,Luis在著名科学杂志《Science》第321卷发表了一篇题为:《reCAPTCHA:Human-BasedCharacterRecognitionviaWebSecurityMeasures》的文章就给出了一个具体的用人类计算解决实际问题的例子。
+
  进一步,可玩性其实跟我们通常所说的复杂性也有着千丝万缕的联系。我们都会有这样的感觉:当双眼盯着Media Player所显示出来的各种复杂的花纹的时候,我们会感觉这种动画有一种深深的吸引力,我们会不知不觉地将注意力完全投向那些花纹。因此,这些花纹似乎就可以称得上是“吃注意的机器”,因为你的注意力已被他深深地吸引。可玩性强的程序也有这种特点,因此,复杂性甚至可能就是在没有交互情况下的可玩性。<br>
我们每个人都有过在网站上输入验证码的经验,计算机生成了一个模糊不清的图片,让你在其中认出隐藏的字母或者数字出来,从而让程序认为你是一个真正的人,而不是一个爬虫程序。我们知道,人类的模式识别能力远远高于人工智能程序。
+
===程序的目标——不断加深的虚拟层次===
那么,我们能不能反过来利用人类的这种能力,而帮助我们解决实际的模式识别问题呢?Google公司刚好要做一个庞大的工程,就是把大量的英文古文献数字化放在网站上。但是在数字化古文献的过程中,人们发现,有很多字符由于年代久远,很难被模式识别程序识别,所以,我们只能依靠人来完成这一任务。但是,由于不能识别的字符非常多,如果雇佣人来做,既需要花费大量的时间、金钱,又不能保证识别的正确性。
+
  下面我们站在计算机程序的角度来讨论我们这个理论最终需要解决的问题目标。让我们再次回忆前面讨论过的计算机程序和两个观察者的问题。我们提到,这两个观察者分别是程序设计者和玩家,那么联系这些观察者和程序就需要完成如图4-4的程序开发周期:<br>
于是Luis突发奇想,我们为什么不把这些未识别的字符混在那些验证码之中,让Internet上的玩家帮助我们完成字符的识别呢?也就是说,用户在输入验证码的过程中,大部分验证码都是机器生成的字符,用户输入对了才允许进入,而也有偶然的机会,当玩家通过验证码之后,系统会用古书上未识别出来的字符跳出来要求玩家输入,这样,玩家们就帮助我们完成了识别工作。当然,为了保证输入的正确性,Luis还想出了各种办法来进行校验(例如同一个字符要两个以上的用户输入完全相同的内容之后才存储到数据库中)。因此,Luis巧妙地利用了人类的能力完成了由计算机程序很难解决的问题。
+
[[File:xtzdgcz4_14.JPG|居中]]<br>
这个叫做reCAPTCHA的识别古书上的英文字符的程序仅仅是若干人类计算中的一例。Luis还设计出各种各样有趣的游戏巧妙地利用人类玩游戏这个资源来实现各种各样的计算。可以说,Luis是将用户的玩看作一种重要资源的实干家。
+
  这张图说明,玩家在使用/玩程序的时候如果发现了不如意的地方,就会反馈给程序的开发者,开发者就会对程序进行调试、修改甚至再开发,然后再次交付玩家去使用。然而,按照本文所提到的观点,其实,站在机器的角度来看,开发者和玩家是一回事儿,因为无论是程序的调试、修改还是玩家的使用/玩交互最终都体现为键盘或者鼠标上面输入的电信号。<br>
(2)、理论的突破
+
  所以,我们便可以把这个周期的不同阶段压缩成一个阶段:“玩”,如图4-6。<br>
虽然我们的目标与Luis的人类计算有相通的地方,但是笔者更加关注的是人类计算背后是否存在着一般性的理论?
+
  然而,读者也许会很纳闷,既然对于计算机来说开发/调试和使用/玩都是一回事儿,那为什么我们人类却感觉到这两个周期完全不同呢?至少没有哪一个玩家会义务给游戏开发生更改程序!<br>
本文就试图为这样一种人-机交互现象提供一个理论分析框架。这个理论框架刚好和我们的观察者理论深深关联在一起。因此,本章所叙述的有关人工智能的问题恰恰是观察者理论的一个应用平台。
+
  如果读者稍微懂一些计算机的基本原理,就会非常清楚,虽然程序员的代码修改和玩家的使用/玩最终都会体现为给计算机输入的电信号,但是这两类电信号却有着非常本质而重要的区别:程序员的电讯号输入给的是编译程序,这种编译程序在运行以后可以生成一个运行中的游戏程序;而玩家的电信号恰好输入给这个运行中的程序。<br>
理论不能完全脱离实践,而本章所讨论的人-机交互问题恰恰是可以很方便地用实验的手段来研究、充实的。好在我们已经有了一些最基本的理论框架,尽管它还不完善,但是已经为我们进一步的实验工作提供了启发。
+
  也许从图灵机和通用计算的角度会把这个问题说得更清楚一些:'''程序员的信号输入给的是一台通用图灵机(计算机编译系统),而玩家的信号输入的是这台通用图灵机上面的模拟的一个虚拟图灵机'''。这样,只要你这个程序中没有Bug,那么无论玩家如何输入各种具有破坏性的电信号,它都不可能对那个通用图灵机造成影响,因为这两个图灵机分别运行在不同的虚拟层次上。换句话说,'''玩家运行的那个程序是处在比程序员面对的那个程序更深的虚拟层次之上'''。<br>
首先,在理论中,最关键的一点就是可以用量子概率来表示、建模人类玩家的选择。在《当概率变成复数》一文中,我们已经指出,首先,量子概率可以涵盖经典概率的所有内容,其次,量子概率与经典概率最大的不同就在于不可兼容测量对的存在。因此,如果人类玩家可以被量子概率建模,那么问题的关键就是如何设计出来一些人类选择试验使得这些实验结果很好揭示出量子概率而不是其他的理论可以很好地描述人类的选择行为。这种实验便成为我们这个理论首当其冲的问题。
+
  提到虚拟层次,也许大家会感觉到陌生,但实则这是一个非常常见的概念。比如大家都熟悉的故事里面的故事、电影中的电影等等。现在还有一些软件,就叫做虚拟机软件,例如下图所示:<br>
其次,在本章叙述的观察者理论中,另外还有一个非常关键的概念,就是可玩性。然而,笔者目前还没能找出对可玩性完好的理论刻画。而直觉告诉我,可玩性这个问题实际上跟量子芝诺效应以及熵这些问题深刻联系在一起。那么,究竟这种联系是否存在?我们还需要做出更多的工作。
+
[[File:xtzdgcz4_15.JPG|居中]]<br>
最后,我们也希望这套理论并不是一个空中楼阁,它应该能够指导实际工作,尤其是能够指导游戏设计师设计出可玩性很高,同时还能完成某种宏大的人类计算。这便需要有经验的游戏设计师提出更多的宝贵意见。
+
<center>图4-10 WinXP之中的WinXP</center>
(3)、通向智能之路
+
  这张图就表示在一个WinXP系统之上运行的一个虚拟机,而在这台虚拟机上又跑了一个WinXP的程序。那么我们说跑在虚拟机上面的WinXP就比在真实计算机上运行的WinXP处于更深的虚拟层次。使用过虚拟机的朋友都会感觉到这种虚拟层次的好处有很多,比如说病毒对更深一层的程序的破坏完全不会影响到上一层。<br>
最后,让我们再次回到人工智能这个古老的问题上来。笔者为什么坚信将人工智能问题废问,同时指出人类观察者和计算机的结合才是真正重要的理论问题呢?说来很有意思,这主要来源于我在冥冥之中看到的一种非常漂亮的对称性,如下图所示:
+
那么,我们说,真正的智能程序是会把程序员的调试以及玩家的玩看作一种统一的资源,因此程序就会把玩的各种交互作为对自身程序的改进,从而更新自身。那么,从虚拟层次的角度来考虑也就意味着我们所说的智能程序其实已经把深一层次的输入信号(给程序的)和浅一层次的输入信号(给编译程序的)混淆了。这样,我们就有可能做到将玩家的输入作为一种资源来促使整个系统的结构改进。<br>
 
+
  然而,对于一个真实的程序来说,我们如何做到这种层次的混淆呢?尤其是,如果我们已经按照传统的设计方式设计了两层程序,那么我们又怎么可能让程序对比它高一层次的程序进行修改呢?这样做的确很困难,但是存在着另外一种解决方案,那就是再构造一层更深的虚拟层,如下图:<br>
 
+
[[File:xtzdgcz4_16.JPG|居中]]<br>
程序世界始终是和人类世界存在着某种美丽的对称关系的。那么,人工智能——这个非常不同的程序如果在程序世界中浮现,人类世界也必然会对称地发生某种巨大的变化,这种变化很可能就是人类最终真正进入了一个可玩性极高的虚拟世界。最后,我们用《哥德尔、埃舍尔、巴赫》这本奇书中最后一段对话《无插入赋格》的部分节选来结束本章。
+
<center>图4-11 虚拟层次的构建</center>
 +
  如图所示,我们将玩家的交互视做一种资源流,那么我们所要设计的程序P就要引导这股资源流(虚箭头)。传统的程序修改周期是引导这股资源流往更高的层次走(在编译系统中修改程序源代码,从而修改游戏程序),但是,这种修改通常是不可能由玩家作出的。但是,有可能程序P将玩家的交互流向另一个方向引领,这就是往更深的虚拟层引领。这样我们可以将利用玩家的各种交互在现有的程序P平台上构造出一台新的虚拟机,并且显然,我们可以把程序P自身在这台虚拟机上做一个拷贝形成P’(就好比在虚拟机上再跑一个同样版本的WinXP一样)。同时,让程序的输出表现是由更深一层的虚拟机P’实现的。由于玩家根本区分不出是哪一个层次给出的反馈信息,于是,玩家就会出现玩这个程序的同时已经更改了这个程序本身的假象。就这样,一个可以不断修改自身的程序就可以实现了!<br>
 +
  如果说程序P是支持通用计算的,那么很显然它自身在更深层次的拷贝P'自然也支持,于是,我们还可以在P’之下再构造一个更深的虚拟层,并做出更深层次的拷贝P'',这个过程还可以继续重复下去……。<br>
 +
  可想而知,这样一个可以不断构建自身、同时又可以修改自身的程序会表现出一些非常可贵的品质:它不需要程序员的修改,就可以自动从玩家的交互中不断修改自身,构建出越来越深的复杂性。难道我们不能称这样的程序是智能的吗?<br>
 +
  问题难就难在,我们将如何让上面所表述的整个构建越来越深的虚拟层次这件事儿在玩家的交互过程中自动地发生?目前,我们不打算在这篇文章中给出具体的答案,但是笔者相信,从上面介绍的量子概率和测量网络方面有可能给出这个问题很好的解答。最终,我们期望能够提高玩家可玩性的测量网络也是一个可以不断构造更深虚拟层次的测量网络!<br>
 +
  至此,我们看到的已经不再是与玩家分离的人工智能程序,也不再是没有计算机辅助的人类进化,我们看到的是一个人与机器协同进化的场景。在这个场景下,机器为人提供的是无限的可玩性,而人给机器则提供了进化以及不断构建虚拟层次的动力。而连接机器和人的纽带不是别的,正是观察(玩、交互)——这个非常重要的资源!<br>
 +
==展望==
 +
  本章从人工智能作为切入点,深入谈及了人机关系、人机结合的问题。我们首先提出人工智能这个目标应该被我们废问。所谓的废问并不是说人工智能永远不可能实现,而是说当我们对计算机的了解越来越深入,人工智能这个早期的目标:模拟人类的智力变得越来越不重要。正是在废问人工智能这个问题的同时,我们看到了另外一个真正重要的主题浮现:人机结合。也就是说,现在当务之急并不是要开发出大而全的人工智能程序,而是从理论上解决如何让人和计算机的交流更加顺畅!<br>
 +
  正是在这废问的过程中,我们看到了另外一个被忽略的角色:坐在计算机面前的玩家观察者。这个角色虽然一直隐藏在阴暗的背景中,但在目前的社会中已经扮演着越来越重要的角色。不夸张地说,对于大多数的都市白领,每天就有将近1/3的时间是在面对各种各样的屏幕,无论是计算机、电视还是手机。看看有那么多用户将自己宝贵的时间花费在开心网,花费在QQ上,我们便知道,我们已经将大量的宝贵资源:人类的观察力、注意力浪费在这些程序之中。<br>
 +
===人类计算===
 +
  将大量在线的人类玩家视作一种宝贵的资源并不是新鲜事儿,美国卡耐基梅隆大学计算机系的学者[http://www.cs.cmu.edu/~biglou/ Luis von Ann]就认为当我们看到Internet上有那么多人将自己的时间浪费在无谓的打怪升级上,为什么不设计出巧妙的机制将这些浪费的资源重新利用上呢?于是,Luis开始设计出很多的游戏,让玩家在玩游戏的过程之中,不自觉地已经帮助工程师们解决了某类艰难的计算问题,Luis将这一研究领域称为“人类计算”(Human Computation)。<br>
 +
  2008年9月,Luis在著名科学杂志《Science》第321卷发表了一篇题为:《reCAPTCHA: Human-Based Character Recognitionvia Web Security Measures》的文章就给出了一个具体的用人类计算解决实际问题的例子。<br>
 +
  我们每个人都有过在网站上输入验证码的经验,计算机生成了一个模糊不清的图片,让你在其中认出隐藏的字母或者数字出来,从而让程序认为你是一个真正的人,而不是一个爬虫程序。我们知道,人类的模式识别能力远远高于人工智能程序。<br>
 +
  那么,我们能不能反过来利用人类的这种能力,而帮助我们解决实际的模式识别问题呢?Google公司刚好要做一个庞大的工程,就是把大量的英文古文献数字化放在网站上。但是在数字化古文献的过程中,人们发现,有很多字符由于年代久远,很难被模式识别程序识别,所以,我们只能依靠人来完成这一任务。但是,由于不能识别的字符非常多,如果雇佣人来做,既需要花费大量的时间、金钱,又不能保证识别的正确性。<br>
 +
  于是Luis突发奇想,我们为什么不把这些未识别的字符混在那些验证码之中,让Internet上的玩家帮助我们完成字符的识别呢?也就是说,用户在输入验证码的过程中,大部分验证码都是机器生成的字符,用户输入对了才允许进入,而也有偶然的机会,当玩家通过验证码之后,系统会用古书上未识别出来的字符跳出来要求玩家输入,这样,玩家们就帮助我们完成了识别工作。当然,为了保证输入的正确性,Luis还想出了各种办法来进行校验(例如同一个字符要两个以上的用户输入完全相同的内容之后才存储到数据库中)。因此,Luis巧妙地利用了人类的能力完成了由计算机程序很难解决的问题。<br>
 +
  这个叫做reCAPTCHA的识别古书上的英文字符的程序仅仅是若干人类计算中的一例。Luis还设计出各种各样有趣的游戏巧妙地利用人类玩游戏这个资源来实现各种各样的计算。可以说,Luis是将用户的玩看作一种重要资源的实干家。<br>
 +
===理论的突破===
 +
  虽然我们的目标与Luis的人类计算有相通的地方,但是笔者更加关注的是人类计算背后是否存在着一般性的理论?<br>
 +
  本文就试图为这样一种人-机交互现象提供一个理论分析框架。这个理论框架刚好和我们的观察者理论深深关联在一起。因此,本章所叙述的有关人工智能的问题恰恰是观察者理论的一个应用平台。<br>
 +
  理论不能完全脱离实践,而本章所讨论的人-机交互问题恰恰是可以很方便地用实验的手段来研究、充实的。好在我们已经有了一些最基本的理论框架,尽管它还不完善,但是已经为我们进一步的实验工作提供了启发。<br>
 +
  首先,在理论中,最关键的一点就是可以用量子概率来表示、建模人类玩家的选择。在《当概率变成复数》一文中,我们已经指出,首先,量子概率可以涵盖经典概率的所有内容,其次,量子概率与经典概率最大的不同就在于不可兼容测量对的存在。因此,如果人类玩家可以被量子概率建模,那么问题的关键就是如何设计出来一些人类选择试验使得这些实验结果很好揭示出量子概率而不是其他的理论可以很好地描述人类的选择行为。这种实验便成为我们这个理论首当其冲的问题。<br>
 +
  其次,在本章叙述的观察者理论中,另外还有一个非常关键的概念,就是可玩性。然而,笔者目前还没能找出对可玩性完好的理论刻画。而直觉告诉我,可玩性这个问题实际上跟量子芝诺效应以及熵这些问题深刻联系在一起。那么,究竟这种联系是否存在?我们还需要做出更多的工作。<br>
 +
  最后,我们也希望这套理论并不是一个空中楼阁,它应该能够指导实际工作,尤其是能够指导游戏设计师设计出可玩性很高,同时还能完成某种宏大的人类计算。这便需要有经验的游戏设计师提出更多的宝贵意见。<br>
 +
===通向智能之路===
 +
  最后,让我们再次回到人工智能这个古老的问题上来。笔者为什么坚信将人工智能问题废问,同时指出人类观察者和计算机的结合才是真正重要的理论问题呢?说来很有意思,这主要来源于我在冥冥之中看到的一种非常漂亮的对称性,如下图所示:<br>
 +
[[File:xtzdgcz4_17.JPG|居中]]<br>
 +
<center>图4-12 观察与两个世界</center>
 +
  程序世界始终是和人类世界存在着某种美丽的对称关系的。那么,人工智能——这个非常不同的程序如果在程序世界中浮现,人类世界也必然会对称地发生某种巨大的变化,这种变化很可能就是人类最终真正进入了一个可玩性极高的虚拟世界。最后,我们用《哥德尔、埃舍尔、巴赫》这本奇书中最后一段对话《无插入赋格》的部分节选来结束本章。<br>
 
注:螃蟹、巴比奇、阿基里斯、乌龟都是这篇对话中的人物。巴比奇号称自己发明了一个比自己聪明六倍的计算机(在文章中称为灵笨机)程序,这个程序叫做“图灵”,他于是领着螃蟹、阿基里斯等人走到了一台机器前面,这台机器安装了传声筒和电视摄像机作为输入,装了扬声器作为输出。
 
注:螃蟹、巴比奇、阿基里斯、乌龟都是这篇对话中的人物。巴比奇号称自己发明了一个比自己聪明六倍的计算机(在文章中称为灵笨机)程序,这个程序叫做“图灵”,他于是领着螃蟹、阿基里斯等人走到了一台机器前面,这台机器安装了传声筒和电视摄像机作为输入,装了扬声器作为输出。
 
……
 
……

导航菜单