声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3410|回复: 21

[人工智能] [转贴]模拟智能的整体思路

[复制链接]
发表于 2007-12-24 10:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
一、自编程序
    1、自编程序的基本要点。
  下面我们看一看现在所有人工智能程序整体的不足:它们是采用由研究人员分析人类智能的特点,然后把这些特点模型化、算法化,有时还采用一些数学理论进行处理,最后编成程序。一旦程序编成,系统就会按程序固定的方式进行智能处理工作。既不灵活又受编程人员对智能认识的限制。
  而人类智能是灵活的,它可以随情况的变化想出新的处理方式来。先不考虑这个“想出”的来源,就是这种现象也表明人类智能不是按某些固定的方式进行操作的。我们首先要由此开始模拟人类智能。
  智能的本质是大脑的某类操作能力,某些对信息的操作能力,在计算机中,操作是由程序实现的。因此我们首先把智能与计算机某些程序对应起来(我们先不要在它们是那些程序上考虑),人类智能不断出现新的处理方式,相当于计算机不断自己编写新的程序。于是我们模拟人类智能的思想先(仅仅是“先”,还有很多“后”,否则智能问题就太简单了)要解决计算机自编程序问题。
  如果从目前计算机程序语言考虑,问题就麻烦了。比如我们用C++语言自编程序,就会出现如何让计算机理解语言、语法?如何设计程序?如何调试程序?而这些则首先需要计算机有较高的智能才能做到,我们便陷入一个不能前进的死胡同。
  但是我们观察我们肢体活动的过程,就会发现那不过是一些小动作的直接连接。按照这种观察。我们可以得到这样一种编制程序的方法,首先编写一些成功运行的小程序块,然后用把它们前后连接的方式组成大程序。这就是我们需要的自编程序的方法。
  循环怎么办?条件转移怎么办?我们还以肢体活动为参考,肢体活动是在大脑指挥下工作的,肢体活动程序是按大脑指挥调用的,这与计算机程序不同。计算机程序一旦运行,程序便取得完全的控制权,没有另外的东西监视控制它,必须由程序中的循环、转移语句控制程序的流向。我们模拟人类智能,也要另设一个控制运行的系统,因此自编程序中不需要有循环和转移存在,这样就不必考虑程序编写时由这些语言造成的死机问题。
  到此,我们已经解决了计算机模拟人类智能的自编程序功能的程序结构和编写方式问题。预先设置一些小程序作为自编程的原料料,然后用把它们连接到一起的方式编写程序。(其实我们使用的高级计算机语言,也是预先编制好很多小程序,用高级计算机语言调用它们,我们写的高级语言源程序也是对那些小程序的一种连接。)
  但是我们这样还不能真正的让计算机自编出程序来,因为还有一些重大问题我们没有解决,程序将如何产生?程序产生后将如何调试?我们以后再介绍。

来自:http://www.21ai.com/showtopic.asp?TOPIC_ID=107&Forum_ID=20
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-12-24 10:22 | 显示全部楼层
一、自编程序
    2、这里自编的程序与原来计算机程序的异同比较。
    通过上面的叙述,我们可以看出这里的自编程序与目前计算机的程序有很大差别,也有相同的地方。
    首先看相同的地方:这里的程序也是由计算机执行的,因此它的基本元素还是计算机语言。
    但是这里的程序还有很多与计算机程序不同的地方。a、在这种程序的基本单元是建立在计算机语言之上的小程序,这些小程序必须能够独立的成功的运行。b、编写程序只需要对小程序进行简单的连接,编写程序是不需要高智能的参与。c、在这种自编程序中没有流向控制,因此程序不会因为流向问题而出现死机。d、因为程序中没有流向控制,程序的流向还要由主系统控制,编写后的程序不象目前计算机程序那样可以获得对计算机的完全控制权,而是在主系统的监视和控制下执行程序。
    由于这种自编程序的这个特点,因此它的能力就完全受到小程序的性能的限制,只要小程序选择的适当,很难出现失控(计算机的运行超出控制者的控制)的情况。当然由于程序的控制权在主系统程序手中,主系统的编写会使智能系统具有主动性和自主性,然而这正是我们需要的。担心系统会失控要从主系统的编写(它是人编程序)入手。
 楼主| 发表于 2007-12-24 10:22 | 显示全部楼层
一、自编程序
  3、自编程序母程序的选择。
  自编程序是一种基本技术,它可以应用在各种形式的智能系统之中,这就是我们这里要介绍的自编程序的目标选择。可以这样说,目前的任何一种人工智能程序,加入我们介绍的自编程序技术,都可以使该智能系统的智能得到在工作中的改善提高的效果。表面看,我们用一些已经成功运行的人工智能程序(如一些专家系统程序、一些推理机程序、一些人工神经网络程序)加入自编程序技术,进行程序的改进和提高,比较容易见成效。然而由于他们的程序在原理上与我们的自编程序有所不同,往往很难从他们的程序中分解出直接连接不用流向控制的小程序(这里的小只是相对于自编程序而言,有时并不真小)。因此无法实现我们意义的自编程序,以改进这些人工智能系统的性能。
  另外,很多人工智能系统程序都有自己的专利保护和加密措施。我们把他们的程序改进为自编程序的系统及会遇到侵犯人家专利的问题,又会受加密的影响而无法掌握人家程序的核心,从而使我们的改进措施无效。所以我以为,虽然在目前的人工智能系统上添加自编程序技术以改进和提高它们的性能,是最简便易行的方法,但是实行起来的难度却是最大的。
  因此我们可以以语言系统为目标,构建以自编程序技术为核心的智能系统是目前较为简单的方法。它是以各种语言为处理对象,以自编程序为处理语言的程序。以实现图灵检测似的人际交流,并在收集人类知识的基础上提出自己见解和观点为智能目标的强人工智能系统。表面上看,这种强人工智能除去野心比目前的自然语言理解系统大以外,没有多少差别。但是实际情况却不同。由于自编程序技术的基点是系统自己生成能力,因此在编写系统程序时,我们根本不必考虑系统的词汇库问题,不必考虑系统的语法和语言逻辑问题。这些问题完全由系统在学习中自己解决。我们在编制系统程序(它一定要由人来编写)只考虑系统的理解能力、表达能力、提出解决问题能力、自主决策能力是怎样来的,而不必为系统考虑理解能力、表达能力、提出和解决问题能力、自主决策能力的程序是什么样子。大家应该注意到,这是一个与现在编程思想绝对不同的一种新编程思想。
  我们还可以以神经元信息为目标,构建智能系统。它比以语言为目标的系统要复杂一些,但是它与人类智能更加接近。因为神经元信息中包含着感觉信息,这就使我们的智能系统可以实现由感觉到提出理论的全面的类似人类智能的模拟。也就是说,我们的可以使我们模拟的强人工智能由感觉获得的信息一直到把它们加工为科学理论。
  在以神经元信息为目标的构建智能中又有以模拟反射为基础和以模拟神经元网络为基础两种,以模拟反射为基础与模拟神经元为基础的区别在于,反射只考虑大脑神经联系的起点与终点,不考虑中间的传递过程。神经元网络则需要考虑信息传递的所有中间过程。
 楼主| 发表于 2007-12-24 10:23 | 显示全部楼层
一、自编程序
  4、自编程序的产生和检验。
  我们前面已经指出,用自编程序作为切入点可以解决智能系统的灵活性问题。同时我们也已经对程序的结构进行了新的解释,使我们现在的程序可以方便地由计算机自编。但是程序的是怎样产生的和程序产生后如何调试的问题还没有解决。显然这两个问题不解决,你就是把自编程序吹得天花乱坠,也不能解决智能问题。
  但是我们也应该看到,我们现在确定的程序是由一些能够成功运行的小程序直接连接而成的,在这种程序的结构中,没有控制程序流向的转移和循环。这样一种程序可以再无智能或智能很低的情况下编制和调试。这也是为什么我们如此限制自编程序的结构的主要原因。
  下面我们首先介绍一种没有智能情况下自编程序的过程。
  我们考虑这样的情况,我们面前已经有一些能够成功运行的小程序。如何把它们连结成大程序呢?我们可以用一个随机组合操作。随便地把一个小程序与另一个小程序连接起来,这种随机地连接当然不需要什么智能。它是连接出来的东西也不能够正确的执行什么任务。我们就把这种操作作为自编程序的第一步。
  第二步是把连接的东西记录下来,以便使系统知道已经做过那些连接。我们把这种记录叫做印象程序。
  第三步是把这个程序拿去执行,并有人或系统自身(有人监视的系统功能比较简单,但是自动化程度差。资深坚实的自动化程度高,但是系统的结构会几倍的复杂。)监视程序的执行,把执行结果统治给系统。
  第四步是把成功的印象程序保存为最后的程序,这种程序叫做经验程序。
  如果连接的程序执行不成功,就进入第五步。那时就返回第一步重新随机连接小程序,重新形成印象程序。同时把不成功的程序纪录为负经验程序,也就是失败的印象程序。在重返第一步随机组成新程序后先把新组成与负经验程序比较,如果相同,就把它否定掉,不进入第二步(纪录为新印象程序)。只有那些与负经验程序不同的才被记录为新印象程序。然后继续执行第二、第三、第四步。如果再次不成功,就再次返回第一步。直到找出一种成功的随机连接后的程序。
  上述过程也是一个计算机程序,它就是系统程序的一个核心部分,它是自编程序的母程序。我们可以把上述过程作为一个流程为计算机编写自编程序的母程序。这个母程序可以同时完成自编程序的编写和调试工作。
  上述过程的核心操作是随机连接,因此完全不需要有智能的参与,就可以自编出新程序来。因此可以成为我们由无智能状态产生出智能的基本系统程序。有关智能的操作,都可以有这个无智能的自编程序系统编出。
  当然我们也可以看出,这个自编程序的方式产生一个新程序的速度会很慢。它要在大量随机连接中通过试运行选择出能够运行的新程序。如果我们的模拟智能系统的全部能力都靠这种方式编写程序,那么系统生成智能的速度就会太慢了。因此我们还要通过其他方式为我们的模拟智能系统实现自编程序。
  我们把我们的模拟智能系统自编程序已产生新的能力的过程叫做学习过程。
 楼主| 发表于 2007-12-24 10:24 | 显示全部楼层
一、自编程序
  5、组合不爆炸。
  在计算机理论中流传着一种组合爆炸的说法,这种说法是组合就会引起组合出的东西无限增加,最后导致组合成为计算机无法承受的操作。人们把这种计算机无法承受的组合叫做组合爆炸。
  在上面我们介绍的无智能自编程序过程中,核心操作是随机组合,于是有些人又会提出组合爆炸的老问题。但是凡事都需要具体事情具体分析。如果组合时的元素(组合所用材料)数量很少,组合就不会爆炸。
  因此在自编程序随机组合小程序时,如果选择的小程序是围绕找一个目标进行的,而不是漫无边际的选择小程序,那么组合采用的元素就会很少,就不会出现组合爆炸。这就是组合不爆炸。
  在上述自编程序的母程序设计中,我们设计了印象程序,负经验程序,也是为了减少在自编程序时,重复那些不成功的组合。加快随机组合的时间。这一切都会使我们的随机组合不连带着组合爆炸。
 楼主| 发表于 2007-12-24 10:25 | 显示全部楼层
二、模拟智能系统的学习过程。
    1、模拟智能系统的学习是完全不同于计算机学习理论的学习。计算机学习理论沿用人编智能程序的老思想。他们提出学习理论也是为了让计算机模拟的智能更灵活,解决问题更好。有时用人力来解决问题费时费力,想发挥计算机的高速特点。因此初衷不是坏的。但是他们定义的学习把方向搞偏了。他们为了计算机理论的方便主观的定义了学习,学习成了一种解决问题的过程。成立一个搜索问题解的过程。因此我“称赞”他们是对学习概念的强奸。
  那么什么是学习呢?学习是学习主体通过与学习客体相互作用,获得学习对象的过程。学习主体也叫学习者,它可以是人、动物和一切具有学习能力的设备。学习客体也叫学习环境,它包括环境对学习主体的一切作用。学习对象是学习中获得的东西。它包括能力和资料两大类。以往的学习理论都很轻视能力的学习,包括教育理论研究的学习也是这样。而我们认为学习中获得能力是智能的关键。智能是一些能力,它在人类个体出生时是没有的或不健全的(动物也是这样),就是靠在学习中不断获得智力操作的能力而使智能产生的,使智能发展的。而对于计算机系统来说,在学习中获得能力与该计算机能够自编程序是一个含义。
  计算机学习理论定义的学习,是把计算机作为一个单纯的工具,让计算机替编程者解决问题,这种计算机的能力是研究者或程序员编写进去的。使计算机有一定的学习能力,也是为了解决问题的方便。然而这种对学习概念的强奸,就扼杀了学习的最最主要的功能,也就是在学习中自编程序(获得能力)的功能。其性质的恶劣与强奸女人扼杀她们做正常女人的功能是异曲同工的。
 楼主| 发表于 2007-12-24 10:25 | 显示全部楼层
二、模拟智能系统的学习过程。
  2、自主学习过程。
  我们在前面所说的由随机连接小程序来自编程序的流程,我们叫做自主学习过程。这种学习过程的在人类遇到前所未遇的问题时,也会采用这种方式,比如有些问题拟按规律考虑不出结果,你就可能瞎猜,这种瞎猜就类似于前面的随机连接。
  自主学习过程是有实验基础的学习。它就是桑代克迷笼实验。
  桑代克实验是最早使动物自己学会动作的实验。在当时引起很大的轰动。他能够让猫自己学会打开笼子,那时是很稀罕的事情。
  这个实验现在看来就不再那么神奇。不过桑代克当时能够想出这个实验的确不简单!桑代克准备好一个装有看门机关的笼子,这个笼子后来叫做迷笼。他把饥饿的猫放到笼子里,关好门,笼外放上食物。然后观察猫的动作。起初,猫胡乱的动作,根本无法打开笼门的插销。经过很长时间后,猫偶然碰到笼门的插销,把门打开。观察者统计这段动作的时间。
  然后把同一只猫在饥饿时再次放到笼中重复这个实验。观察猫的动作并统计时间。可以看到猫继续用胡乱的动作试图出笼。并最终偶然打开笼门出笼吃食物。这个过程进行多次后,就会发现,猫的错误动作越来越少,从放入笼子到出笼的时间越来越短。最后,猫可以在一放到笼子以后,马上打开笼门,跑出笼子吃食物。这表明猫已经通过大量的胡乱动作,经过学习学会了打开笼门的动作。
  这个实验的重要在于它是猫在没有任何模仿或引导的情况下,自己学会了打开笼门。由于这个学习完全是胡乱加偶然,显然是不需要任何智能的学习,而形成的经验是比较复杂的操作。它为我们指出了人类个体完全可以通过这样的方式学习,从无智能到有智能,从无意识到有意识。我对婴儿动作学习的观察,也证实了这一点。
  我们应该看到,猫学会打开笼门的动作完全是自己独立学习而成的。人为的实验条件只是对猫学习的环境设置,在实验中人不能通过任何方式引导或诱导猫学会动作。因此猫在学习中完全是自主的。我在我的学习理论中,一直把桑代克类型的学习过程叫做自主学习过程。
  为什么叫它为自主学习过程呢?桑代克实验表现出的学习,是在机体对一件事情毫无经验的情况下进行的。没有经验,它就用胡乱加偶然的方式学习经验,形成应付环境的操作方法。这个过程没有任何其它什么来教它,甚至不用同种类的生物来教它,显示了系统完全的自主性。
  这个实验提示我们,如果要求一个系统摆脱人编程序的限制,就必须让它能够学习,这种学习不是为了求某种解的答案,而是学会一种解决问题的操作,并且以后不断使用这个操作解决问题。这种学习是一种能够自编程序的学习。而自主学习过程是系统自主独立的一种模式。一个计算机系统,如果其底层的程序不编写任何智能,而是靠自主学习积累经验,自编程序,那它就会发展出智能,并进而发展出高级智能。计算机通过这种模式,其系统可以不用人编智能程序,而在遇到原来没有遇到的事物时,通过胡乱加偶然,形成新的程序。于是系统就可以摆脱人编程序,自主地产生出智能了。
  当然,如果所有后天性的程序都用胡乱加偶然的方式,系统每形成一个程序都会很慢,要系统学会人类智能是不可能的。其实这并不是问题,人类个体如果脱离人类社会,独立通过胡乱加偶然的方式学习,也不会产生人类智能。狼孩、野生儿、囚禁儿不能产生人类智能,就是这个道理。胡乱加偶然的方式只是系统的一个独立自主的方式,完全掌握人类智能,还需要学习人类的知识和经验。
 楼主| 发表于 2007-12-24 10:26 | 显示全部楼层
二、模拟智能系统的学习过程。
    3、自主学习过程在自编程序中的发动机制(需要机制与奖惩机制之争)。
  我们在前面已经片断地介绍了由自主学习过程实现电脑自编程序的母程序流程。它并不完整,因为它没有发起和终止程序编写的部分。
  我们知道,传统的计算机程序都是由程序操作人员或用户来发动它的每一个程序的运行的。而人类只能则不可能是由其它人来发动的。它是大脑自主发动的。是什么东西是大脑自主地发动它的活动呢?我们认为是大脑自主发动活动的是需要机制,需要机制的初级形式是欲望,也就是说需要与欲望是一回事,欲望是一种低级需要而已。
    在这个智能系统的驱动力问题上,我发现人们有很大的争执,不少人认为这个发动机制应该是奖惩机制。于是我们对智能系统自编程序的讨论,不得不转向对系统驱动力的研究。
    首先我们回忆一下奖惩理论的来源。
  在桑代克迷笼实验成功以后,他对自己的实验提出解释。他把这个实验的过程叫做尝试错误学习。他认为猫学会动作的原因是奖励,也就是猫在打开迷笼后获得食物,获得了食物的奖励。而这种奖励使猫学会的动作得到渐渐的巩固。就此他提出尝试错误的驱动力是奖励与惩罚,并确立了自己的奖励与惩罚理论。
    他的奖励与惩罚理论由于迷笼实验和一系列白鼠走迷津实验的支持,在当时很有影响。但是后来被认知学派的托尔曼用实验证伪。
  托尔曼设计了一个实验,他让两组白鼠学习走迷津。迷津中设置着较复杂的道路,在其中一个地方放有食物(每次都放到同一地点)。学习的目的是让白鼠学会从迷津中迅速的找到食物。所以采用一组(即不止一只)白鼠,就是为了计算学习所需时间,取统计的结果。这两组白鼠一组是对照组,这一组从实验一开始就在迷津中放好食物。另一组是主要实验组,开始在迷津中不放食物,这样白鼠会没有奖励地在迷津中白跑。到实验中期再在迷津中放入食物,让白鼠进行找到食物的学习。
  如果桑代克理论成立,奖励是学习的关键因素,那么主实验组的白鼠会因为最初没有奖励,什么也学不到,它们的学习时间等于比对照组的少。显然最后学会的时间要比对照组长(把白跑的时间也计算在内)。
  然而托尔曼实验的最后结果是主实验组比对照组的学习时间要短。这说明在白跑过程中,尽管没有奖励,白鼠也在学习迷津里的道路情况。从而证明奖励不是学习的关键因素。推翻了桑代克理论。
  托尔曼是认知学派的,他的解释是在白鼠最初的学习中,头脑中形成了对道路的认知地图。至于为什么形成这个地图,他认为这是白鼠本来的欲望。
  我认为托尔曼实验的意义就在于它推翻了奖励是学习的关键因素。
  但是,奖惩理论并没有因为托尔曼实验对他的证伪而退出心理理论。这是因为桑代克属于心理学行为学派,托尔曼属于心理学认知学派,两派谁也不服谁,各自坚持各自的说法。他们的观点又分别带到人工智能理论中来。于是在一些人工智能理论中,奖惩理论还有它的市场。
  由于托尔曼对他的实验解释得也不好,我就用需要机制来代替托尔曼的认知地图理论解释托尔曼实验。需要机制理论是这样:机体发动活动(活动的驱动力)是有需要机制完成的。当机体产生需要后,便会在机体内寻找经验进行活动以实现需要,如果没有相应经验,就会发动学习活动积累相应的经验。
 楼主| 发表于 2007-12-24 10:27 | 显示全部楼层
二、模拟智能系统的学习过程。
    4、需要机制的计算机模拟。有很多人认为计算机不可能有自己的欲望,这是一种对计算机的误解。不是计算机不可能有自己的欲望,而是编程者不想让计算机有自己的欲望。我的这种说法绝对不是我个人的想象,请看下面的证据。
    在现在的计算机程序中已经表现出程序的一些需要。例如当程序需要你输入一些指示时它会提醒你,并等待你的输入,你输入的东西满足它的要求后再继续后面的运行。你输入的东西不满足它的要求,它就拒绝运行或再次提示你。当然,这种程序的需要,是编程人员为了自己程序目标设置的需要,不是计算机自身的需要。但是既然我们可以在编程时为程序的目标设置需要,也就可以在编程时考虑计算机自己的需要是什么,为计算机设置自己的需要。这就会使计算机具有了自己的欲望。当然这里所谓的计算机自己的需要还是靠程序模拟出来的,而不是计算机自己生长出来的。
    从理论上讲,计算机模拟的自己的需要,可以完全与人类一致。比如人们往往最常用来调侃的问题就是:计算机能够有性欲吗?其实从理论上是完全可能的。它也可以分不同层面的模拟。比如仅在语言层面上模拟,你可以分别编制女性程序和男性程序。你可以使不同程序在不同性需要的驱动下,对异性语言感兴趣,愿意与异性(人或程序)交谈。也可以进一步为机器人编制不同性别的程序,完善它们的外设结构,使它们可以在性需要的驱动下与异性交往。当然,理论上的可能必须与实际的需要相一致才能转化为商品。如果实际上我们并不需要有性别的计算机,那么它们就不会出现在市场上。
    那么在程序中需要机制是什么样的结构呢?简单的需要机制就是一些专门设置的双值变量,我叫做需要变量。一个值表示需要的满足,另一个值表示需要的不满足。一个计算机系统具有多种需要,就为它设置多个需要变量。需要由模拟感觉机制或一般的计算机输入系统激发(激发方式根据程序目标确定),激发时把需要变量置“1”,表示需要的不满足。再由这个不满足态发动系统内的相关程序以满足需要的活动。(例如我们设计这样一个有趣的小程序,设置一个饥饿需要,当外部输入一种食品词汇时,就激发了这个饥饿需要,饥饿需要的1值就会搜索并调出系统中一些有关食品的词,当调用完成后,程序自动把饥饿需要置0,此项需要终止。如果我们为这个程序设置多种需要,我们用不同词汇引诱这个程序,就会看到程序在自己的需要的驱动下,为我们调用出不同满足需要的词汇来。)
  复杂的需要变量应该是一个多值不连续的变量,不同值表示不满足或满足的不同程度,它们也相应表示出该需要激发后调用程序的优先响应级别。
  更复杂的需要机制应该能够以基本需要(原始欲望)为基础,产生出一些高级需要,组成由低级到高级的需要层次。这种复杂的需要机制,有一个专门的理论支持,那就是“需要在学习中生成理论”,我们在较后的时候再作详细介绍。
 楼主| 发表于 2007-12-24 10:28 | 显示全部楼层
二、模拟智能系统的学习过程。
  5、需要机制与奖惩机制有什么区别?
  如果简单的分析,把需要的满足于奖励对应起来,把需要的不满足于惩罚对应起来,那么需要机制与奖惩机制几乎一样。问题是这样的分析有一个缺点,它忽视了惩罚只是需要不满足的一种形式。惩罚不等于没有得到需要。惩罚往往是得到了与需要相反的东西。而相反的东西作为惩罚,虽然会起到禁止机体的一些行为的作用,但有时也会起到机体反抗行为的作用。用奖惩机制代替需要机制,就会使我们的模拟智能系统失去模拟后一种现象的机会,就会使模拟系统显得太乖了!不能具有强烈的个性。
  另一个问题是托尔曼实验指出的事实,在需要没有得到满足的学习中,系统也能够通过大量的反复得到一些与需要满足无关的东西,这些东西可能暂时满足不了此需要,但是日后会满足另外的需要。因此用需要机制作为系统的内驱力,系统会显示出一种无意识的“远见”。而用奖惩机制代替需要机制,没有奖励,学习即告失败,它就会使系统呈现出一种无意识的“短见”。从发展前途看,显然有“远见”的系统比“短见”的系统获得的能力更多。
  因此我认为有些人以为两种机制差不多的看法是错误的,就以上的分析看,从将来的程序结构看,需要机制不会比奖惩机制复杂,但是从能力看,需要机制的系统就会比奖惩机制的系统强很多。因此我主张采用需要机制作为系统的内驱力,而反对用奖惩机制作为系统的内驱力。
 楼主| 发表于 2007-12-24 10:28 | 显示全部楼层
二、模拟智能系统的学习过程。
  6、完整的自主学习过程。
  我们在花费一些篇幅讨论了系统活动的内驱力以后,就可以回过头来继续讨论系统的自主学习能力问题。自主学习能力是由人编程序完成的,它是我们说的母程序中的一部分。这种能力与人类出生后的先天性能力相当。它本身不是系统自编程序的一部分。
  从我们前面的介绍的学习过程流程可以看出,自主学习能力是一个具有循环结构的程序,因此它也不具有我们提出的可自编程序的特征。完整的自主学习能力程序基本就是按前面介绍的流程编写的,只是要在那个流程的前面增加一个需要机制中需要变量发动学习,每一次学习成功,要由成功信息为需要变量置零,由需要变量的满足终止一次学习。由多次学习确认自编程序的完成,形成可调用的自编程序。
  自主学习能力是一个循环反馈程序,其循环性我们可以从前面的介绍中看出。其反馈性是由输入信息来确定自编程序运行的效果。反馈机制的结构要看计算机的结构确定,如果计算机只是一台家用微机,那么只好靠人用键盘或鼠标来输入反馈信息。如果计算机系统有模拟感觉的机制,那么就可以自行获得反馈信息来进行学习了。显然后者与人类智能更加相像。我们在提出理论是并不具体要求使用计算机的形式,就是为了使我们的模拟人类智能系统有更强的适应性,使他在任何情况下都能够表现出较好的智力水平。
  这里大家要注意一个概念的使用,我们一直把程序叫做自主学习能力程序,而不叫做自主学习过程程序。因为学习过程是由具有学习能力的学习主体和学习环境共同作用的过程,在我们的学习过程理论中,没有学习过程程序。学习过程也不是个程序。更清晰地说,学习过程是一个比程序大得多的概念。而计算机学习理论是把学习编写成程序的,这也是我们的学习过程理论与计算机学习理论完全不同之处。
  自编程序的调用是由系统程序(它也是人编程序,涵盖着母程序)实现的。在需要产生时(需要变量被输入信息置1时)系统程序首先发动检索自编程序的操作,如果有自编程序可以满足需要,就优先调用自编程序。如果没有自编程序满足需要,就发动自主学习活动自编满足需要的程序。系统程序的这一部分,就保证了自编程序的调用。其结构显然非常简单。
 楼主| 发表于 2007-12-24 10:30 | 显示全部楼层
二、模拟智能系统的学习过程。
  7、自主学习过程的进一步完善。
  A、基本途径说明。在上面的讨论中,有一点我们要非常清楚,自主学习过程虽然可以自编程序,但是其编程效率非常最低。如果我们的系统只有这一种学习能力,其发展到人类智能很有可能要经历人类智能发展史所需要的时间,这是我们绝对不能忍受的。因此系统的学习能力要进一步完善。这里我们首先要讨论在自主学习过程基础上的完善。
  这个完善途径有两条。一条是在原来自编程序的方式基础上的提高。另一条是增加伴随学习过程。
  B、在原来自编程序方式上提高。在原来自编程序方式上提高,还有两个途径:一条是提高小程序的级别,另一条是充分利用负经验。
  C、什么是提高小程序的级别?小程序是人编程序,它们是我们经过充分考虑编写出的生成思维和意识的基本程序。在初步的自主学习过程中,这些小程序连接起来,成为自主学习过程自编出的程序。这些程序不仅可以用来实现特定的需要,也可以被自主学习能力中的随即操作调用来执行其它任务,通过效果检验确定能否成功。这种随即调用来执行其它任务是在模拟心理活动中的经验移用(把一种经验用到其他方面)。移用是一种重要的心理活动现象,它对于智能的形成具有非常大的意义。
  自主学习能力的随即操作还可以把自编成的程序作为小程序来使用,把它们连结为更大的程序。这样,自编程序使用的小程序已经不是原来意义的小程序,而包括已经自编出的程序了。这样既扩大了编程时用小程序的数量,也提高了编成的灵活性。我们所说小程序级别的提高,就是说原来意义的小程序提高为自编程序。这个提高可以反复,也就是说凡是以前自编出的程序,不管它是由基本小程序组编的,还是有自编程序再次组编的,都可以继续组变成更大的程序。这种组编也不会出现组合爆炸的现象。因为对失败程序的负经验纪录,排除了大量不合理组编的出现。
 楼主| 发表于 2007-12-24 10:33 | 显示全部楼层
二、模拟智能系统的学习过程。
  7、自主学习过程的进一步完善。
  D、充分利用负经验。充分利用负经验,是把负经验纪录的失败程序作为禁止的组合,这样就会在无智能的情况下,使胡乱的组合变得有序一些。同时会减少大量重复组合出失败的程序的浪费。但是也会出现一个问题:就是失败的组合有时只是在一种条件下失败,在另一种条件下还会成功,禁止它再次出现,就会使这种组合失去在相应条件下成功的机会。这在无智能情况下是不可两全的事情,要么不惜浪费时间,要么牺牲一些组合方式。这种情况在有智能情况下也难免,如果我们清楚一个程序失败的条件和成功的条件,就可以两全;如果我们不清楚程序的成功条件和失败条件,也会面临不能两全的局面。我们的程序选择牺牲失败程序的方法。但是并不绝对禁止,留待智能生成后再去分析条件,再启用一些有潜力的失败程序组合。
  E、加入伴随学习能力。
  伴随学习现象是由托尔曼实验证明的,我们在前面介绍托尔曼实验时只介绍该实验对奖惩理论的证伪作用,没有解释白鼠在没有奖励的情况下,反而学习更好的原因。在托尔曼实验中,白鼠学习的更快肯定是它们在没有奖励的情况下对迷宫中道路有了深刻地认识的结果。依托尔曼的解释,在白鼠的大脑中有一个认知地图,是它使白鼠认识迷宫中道路的。在进一步解释中托尔曼认为,这种认知地图就是类似于人类意识的东西。因为认知学派也不研究意识,所以托尔曼的解释也就到此为止。
  我是反对动物有意识的。而且我以为不用认知地图足可以解释白鼠对迷宫道路认识的形成。由于得不到食物的奖励,实验组白鼠要比对照组白鼠更多的奔跑,奔跑中就会反复经过迷宫中的道路,只参考巴甫洛夫试验,就可以知道这些道路的情况会因此(大量的反复)建立起条件反射联系,因此产生白鼠对迷宫道路的认识。而对照组白鼠,因为得到食物的奖励,经过迷宫道路的次数反而少,建立对道路认识的条件反射要慢,因此学习就慢。这里丝毫不用引入有意识嫌疑的认知地图,就可以解释实验组白鼠学习快的原因。
  我把这种与需要发动的学习有关,但不是直接满足需要的学习叫做伴随学习。简单地说,在某一需要发动的学习过程中,那些经常反复出现的刺激或感觉或活动方式,都能够作为学习结果保存在记忆中,这就是伴随学习。
  在我们原来的系统中,人编程序中只为自主学习能力编写了程序,显然在增加伴随学习能力时,还要为系统增加人编的伴随学习能力程序。这个新增程序结构很简单,只要是经常反复接受的感觉和其它刺激(例如键盘输入),就会被记录为认识资料。只要是经常进行的活动组合,就会被记录为新编程序(这仍旧是系统在自编程序)。
  显然,再加入伴随学习能力以后,系统地认识量和自编程序量都会大大增加。这就减少了对胡乱进行的自主学习能力的依赖,提高了系统学习的速度。
 楼主| 发表于 2007-12-24 10:33 | 显示全部楼层
二、模拟智能系统的学习过程。
  7、自主学习过程的进一步完善。
  F、自主学习的几个层次。
  我们在C段介绍了提高自主学习能力的级别问题。这种提高就是自主学习也具有了几个不同层次。我们下面就对比人和动物的实际情况说明自主学习的各个层次。
  甲、纯随机层次(相当于人和动物在毫无经验时的学习)。在人和动物由需要发动的活动找不到相应经验时,就发动纯随机层次的自主学习。这时人和动物用自己的纯本能动作组织成尝试性动作。在我们的自编程序系统中,就是把人为系统编写的小程序胡乱组织成大程序。
  乙、经验层次。在人和动物有了一些经验的时候,往往就会把一些经验作为新动作产生的基础。在桑代克的迷笼实验中,如果关入笼子的是一支具有丰富捕鼠经验的猫,你就会观察到猫大量使用捕鼠动作尝试打开笼门。在我们的自编程序系统中,就是用系统已经自编出的程序再次联结为新程序。如果连接组合的元素为一,那就是把一种经验胡乱的应用于另一种需要。前面我们把它单独叫做移用。移用对于智能的生成有非常大的意义。
  丙、混合经验层次。在人或动物积累一定量负经验后,经验表明它应该怎样做,负经验则表明压不应该怎样做。它的行为就受到经验的双向限制。这种“应该与不应该”并不是由思维实现的,因为我们的这个自编程序系统还没有任何思维能力,它的全部功能就是自编程序、检验程序、调用成功程序(禁用失败程序)。但是我们可以看到,通过自主学习到了混合经验层次,系统已经变得懂事了很多。
  显然一个有胡乱连接小程序的系统(它相当于一个毫无经验的人或动物)仅在自主学习能力的作用下,经过自主学习过程的三个层次,就已经显得懂事了。这虽然还不表明智能已经形成,但是会为我们对构造更懂事的智能充满信心!     
  G、自主学习的几个层次对智能生成的长远意义。
  在前面的分析和程序设计中,我们给出了自编程序模型的自主学习算法。并根据对这种算法的分析,指出它会使自主学习过程出现三个层次。应该指出,每出现一个新层次,人编程序(系统程序)就要增添一些新的东西。但是增加量不大。例如为了实现自编程序中的移用功能,我们需要为人编系统程序增加一个小程序独自组合的功能。这在编程时只需要调整一下程序对初始组合量(由二变成一)的控制就可以了。再例如,为了实现对自编程序的再组编,就需要增加原来系统程序的这个功能。方法却很简单,只要把胡乱连接小程序的人编程序组编对象的地址扩大到自编程序就可以了。程序改动是非常小的。
  自主学习对于智能的产生不仅是由不懂事变得懂事,而且它可以使系统的任何一种原来没有的能力(如思维、意识)由萌芽到形成。例如想象,最初仅仅是利用系统的胡乱组合功能对感觉资料进行胡乱组合。然后这些经验组合被确认或否认,形成成功的想象结果和失败的想象结果。到了对想象自主学习的混合经验层次,人们就开始懂得哪样想象比较好,那样想象不好。出现无智力的但是比较懂事的想象。
  自主学习的三个层次,是大脑一切功能发展的基本模型。我也叫做大脑功能按层次发展模型。
 楼主| 发表于 2007-12-24 10:34 | 显示全部楼层
二、模拟智能系统的学习过程。
  8、伴随学习对智能的意义。
  A、伴随学习相当于肌体的随行记者。伴随学习在机体活动中相当于一个随行记者,它可以把机体的活动情况随时记录下来。当这些记录中包含一些新活动的雏形时,这些记录就对智能的发展起了非常大的作用。下面我们通过一个具体的例子来体会伴随学习的意义。
  B、预测表现和预测活动。例如:在猫的头脑中记录着这样一段事件,主人穿好衣服,开门,自己跟着主人出去玩,满足了自己出去玩的欲望。这个事件经常发生,在猫的头脑中建立了牢固的反射。每当主人穿好衣服,通过反射链,就激发猫出去玩的欲望,猫就随机采取了一个尝试满足出去玩欲望的动作(例如到门口等的动作)。尔后猫出去玩的欲望得到满足,猫的这个动作便被确认。以后,一旦主人有穿衣服的动作,猫就跑到门口等(有时候主人并不出门,它就等错了!)。猫的这种活动表现出猫有一定的预测能力。但是在我们上述的描述中,只通过简单的反射,不需要更复杂的心理活动参与,猫就可以完成上述动作。
  但是加入伴随学习后,上述过程就不同了。如果伴随学习把大脑活动也记录下来,记录为:某反射链的一个环节发生,激发该反射链中的一个欲望,要用某个动作实现这个欲望。并且通过多次预测现象的发生,使这个纪录被巩固。那么当大脑调用这条记录时,一个新的大脑功能——预测,就产生了!因为当大脑调用那条被巩固的伴随记录进行活动时,它就是在主动进行预测了。这种预测与完全依赖反射实现的预测表现具有不同的性质。
  可能有些人还理解不了预测表现与预测活动的区别,预测表现是由反射激发加随机行为的结果,预测活动时由预测经验(即伴随学习的记录)进行的活动。前者具有随机性,后者已经成为一种确定的活动了。
    C、预测表现和预测活动的比较。在上面的过程中,如果没有伴随学习,就不会形成对预测的纪录。预测就只能停留在表现层次,也就是说预测只能是附属于反射功能的一种行为。然而有了伴随学习情况就不同了,它为预测记录了经验,大脑可以不通过反射功能,而通过对预测经验的调用来进行预测。预测便成为一个独立的活动了。
  下面我们对比反射型预测和经验型预测(这是两个为讨论方便暂时使用的概念)的操作流程:
  反射型预测:反射链的形成——外部刺激激发反射链的一个环节——整个反射链被激发——反射链中的一个欲望被激发——随机发动一个动作去满足于网(这实际发动起一个自主学习过程)——通过学习得到一个确定的满足欲望的活动。
  学习后,机体便产生对于这个特定刺激用特定活动(自主学习确定的)表现的预测表现。
  经验型预测:在反射型预测学习时记录伴随经验(预测经验)——外部刺激激发经验——找并激发相应反射链——激发反射链中的欲望——发动自主学习确定实现表现的动作——确定预测表现的动作。
  学习后,机体也产生一个与特定刺激对应的特定的预测表现活动。
  对比后,我们会发现后者比前面多了一个环节,这从程序求简的原则上看好像是不利的。但是正因为多了这一个环节,大脑就新产生了一个活动——预测活动。大脑就向思维的产生迈进一步。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-24 02:02 , Processed in 0.134466 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表