中国神经科学论坛

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

楼主: ruiaijun

[原创]用计算机如何模拟反射?(设计思路)

[复制链接]
 楼主| ruiaijun 发表于 2004-10-26 01:39:00 | 显示全部楼层

引用


原文由 chenghwn 发表于 2004-10-25 16:41:08 :
看了一下觉得我的记忆柱与您的反射表有许多相同的地方。

记得看过一篇湖北或湖南的人写记忆柱的文章,不知是否是您。感觉是编程会很复杂。反射表加一个读写表辅助程序就简单多了。程序的可行性强一些。

 

 楼主| ruiaijun 发表于 2004-10-27 22:13:00 | 显示全部楼层
  二、对各种类型反射的模拟。
  1、对各种类型反射的介绍。
  A、先天性反射。神经系统中先天建立起的联系叫先天性反射。先天性反射实现时可以由刺激引起反应。它没有建立过程,只有实现过程。
  在巴甫洛夫的条件反射理论中,把先天性反射叫做非条件反射(或无条件反射),这种称呼容易引起误解。从词义上讲,非条件反射就是不是条件反射的反射,这样就把所有不是条件反射的反射都包括进去了。在巴甫洛夫时期,仅知道有条件反射和先天性反射,把先天性反射叫做非条件反射是可以理解的。但是,在了解还有其它类型后天性反射以后,这种称呼就不恰当了。但是由于历史原因,在涉及到巴甫洛夫理论时你还要这样称呼。不过我们经常称为先天性反射,以示其确切性。   
  B、条件反射。由两个刺激(无条件刺激、条件刺激)和一个反应在先天性反射(巴甫洛夫叫非条件反射)支持下,最后建立起条件刺激由引起的反应的条件反射。
  C、工具性条件作用。由行为、刺激和奖励组成,在偶然行为的支持下,最后形成行为和刺激间的后天性反射。
  D、简化的工具性条件作用。由行为和刺激组成,没有奖励,还是靠偶然行为的支持。最后靠同时反复形成行为和刺激间的后天性反射。
  E、多刺激间的反射。前提中没有反应,也没有行为,还没有非条件反射或偶然行为的支持,只有同时反复出现的多个刺激。最后形成多个刺激部位的后天性反射。
  它们的详细情况我们在讨论模拟时再说。
 楼主| ruiaijun 发表于 2004-11-16 12:09:00 | 显示全部楼层
  3、神经元功能的进一步模拟。
  我们知道,神经元不仅有相互联系功能,还有储存信息、处理信息和传递信息的功能。反射表只能模拟神经元的相互联系功能,读写反射表能够把一些存储单元联系起来,但是解决不了信息处理等问题。
  模拟反射虽然主要是模拟相互联系,但是只有联系,没有处理功能,这样的系统还是什么也干不了。在模拟反射时,系统总要干些什么,这样才能把反射的作用显示出来。
  我们是依靠模拟系统的各种支持程序来完善神经元功能的。
  首先考虑保存信息,反射表实际负担其保存信息的作用,因此代表神经元的那些存储单元,保存信息的作用反而不大了。实际上,由于一个存储单元只有八位的容量,它也保存不了什么信息。
  其次是信息传递,它是由CPU和相应的程序完成。反射表起的作用是,为传递信息的程序提供地址。所谓的相应的程序就是计算机中常用的信息传递程序,它根据具体要求具体设计。信息传递后,系统可能有所动作或反应,它们由专用程序实现。信息起一个调用这些程序的作用。
  还有信息处理问题,这种处理不象真正的神经网络那样,由神经元组成的网络完成,而是由特定的处理程序完成。这些程序根据存储单元代表的不同神经部位(模拟神经系统功能定位)有针对性的设置,有针对性的调用。
  这里的关键思想是:把个别神经元的功能和神经元组成的神经网络的功能都转变成系统的程序的功能。从而完整的模拟了神经元和神经网络的功能。
 楼主| ruiaijun 发表于 2004-11-15 17:38:00 | 显示全部楼层
  2、模拟反射的基本算法。在上面的讨论中,我们实际已经得出了模拟反射的算法:用建立反射表的方式模拟反射的建立,用检索反射表模拟反射的实现。
  这个算法来自这样一个基本思想:用一部分存储单元代表神经元,用对这些存储单元的地址寻址表现它们的联系。记录它们间地址关系的是反射表。读写反射表就成了模拟反射算法的关键。
  当然完整的模拟反射程序还需要很多其它程序的配合。但是它们都是为上述基本算法服务的。要围绕着基本算法和具体需要进行具体设置。
  这个算法是不依赖数学模型的,这也是这个算法的重要特色。
 楼主| ruiaijun 发表于 2004-11-18 17:20:00 | 显示全部楼层

  4、工具性条件作用的模拟。
  在西方,比较重视工具性条件作用,而较少重视条件反射。在我国由于受前苏联科学的影响,人们知道条件反射的很多,了解工具性条件作用的很少。西方关于工具性条件作用的实验很多,其中斯金纳箱是个典型。我们先简单的介绍一下,以便分析它的要件。
  实验很简单,一只鸽子在一个箱子中,它随便地在箱子中活动,作一些走动、啄东西的动作,当它偶然啄到一个预先设置好的机关(例如一个后面有灯的窗口),这个机关便送出食物。这样的事情次数多了,鸽子便主动去啄那个亮灯的窗口,企图得到食物。
  工具性条件作用也有三个要件,偶然的行为、刺激、奖励。这种反射没有非条件反射的反应,代之以偶然的行为。奖励也可以看作是刺激,它很类似于非条件刺激(但是又不能叫做非条件刺激,非条件刺激是一个相对的名词,没有对应词汇,不好再叫)。从要件的分析看,可以知道工具性条件作用与条件反射的不同。
  模拟工具性条件作用的反射表每一条也是有三项。一项纪录刺激码,一项纪录奖励码、再一项纪录偶然动作的程序首址。支持这个反射表的程序也必须有读和写两种功能。
  怎样模拟工具性条件作用的建立呢?首先在系统程序中要设计一些活动程序(C语言中的被调函数),还要有一个随机调用上述程序的程序。它们共同模拟偶然行为。系统中还要有能够识别奖励的程序(我建议用需要机制对奖励进行识别,也可以用其它方法识别)。
  反射建立过程如下:在计算机接受到刺激信号并进行各种偶然活动时,识别奖励程序对另一些信号进行识别。当识别奖励程序识别出奖励信号后,便开始启动写反射表程序。把刺激信号码、奖励信号码和偶然进行的活动的程序(函数)首址分别记录到一条中的各项里。这样,建立工具性条件作用的模拟就结束了。
如果要模拟强化过程,也需要经过强化程序,在同样情况发生几次后,再正式进行写表操作。如此便逼真的模拟了强化过程。
  怎样模拟工具性条件作用的实现呢?在计算机接受到刺激信号后,译码程序把它翻译为刺激码,依据刺激码检索工具性条件作用的反射表,检索到该码以后,找到相应偶然活动程序首址,从那里开始调用活动程序。从而实现了工具性条件作用。也可以按以前的方法模拟该作用的退化。
  由于这种反射不需要非条件反射的支持,所以模拟过程中用不到先天性反射表。读与写都与先天性反射无关。但是由于该反射需要行为(这也是取名为工具性的原因),所以要为模拟程序设置驱动活动的程序,同时还要有随机调用这些驱动活动程序的程序。因此它的模拟会比模拟条件反射麻烦。
  从实现该种反射的模拟中,我们还可以看到,在实现过程中奖励不再起作用,因此可以提出一个疑问:奖励是不是必需的呢?

[此帖子已被 ruiaijun 在 2004-11-19 18:55:00 编辑过]

 楼主| ruiaijun 发表于 2004-11-19 18:56:00 | 显示全部楼层
  5、简化工具性条件作用的模拟。
  简化工具性条件作用在生活中处处可见。比如一只鸡偶然飞起的时候你对它喊一声飞(不是在轰它飞起的时候喊,那时是条件反射),次数多了,它就会听到喊飞就飞。你见到婴儿伸腿时就对他喊“伸腿”,次数多了,他就可以听声音而动作。这两种情况都是动作与刺激间建立反射,而且既没有非条件反射,又没有奖励。它类似于工具性条件作用,因此我们叫做简化工具性条件作用。其中简化掉的是奖励。它是没有奖励的工具性条件作用。
  简化工具性条件作用只有两个要件:刺激和偶然动作。因此它的反射表每一条只有两项,分别记录刺激码和偶然动作程序的首址,
  建立这种反射时,不再需要识别奖励的程序,直接在刺激和偶然动作多次出现后,把刺激码和动作程序首址写入反射表中就可以了。实现这种反射时,只要根据刺激码从反射表中检索到动作程序首址,调用该动作程序就可以了。
  显然,模拟简化条件作用要简单的多。
 楼主| ruiaijun 发表于 2004-11-29 11:44:00 | 显示全部楼层
  三、如何综合地模拟反射?
  1、模拟反射由分析到综合。
  有些人认为,没有必要分别讨论各种类型反射的模拟,有人甚至反对对反射分类研究。反射的这些类型不是我们人为划分的,它们是由实验中发现其在可观中存在的。从模拟各类反射的具体讨论中,我们都已经看到,不同类型的反射确实有很多不同的具体问题要处理,不加考虑就不能完成模拟。在这个问题上马虎不得。
  我们下面就要讨论综合的反射模拟,那时你就会看到分别讨论各类反射的作用。
  前面我们分别讨论了各种类型的反射在计算机上的模拟。而神经系统可以同时建立和实现各种类型的反射,一个综合性的模拟反射程序才更符合神经系统的实际。对这个综合程序的要求是,它能够在各种类型反射的条件下,自动地(不需要用户提出要求地)模拟各种类型的反射。
  为此我们需要考察各种反射的共同点与不同点,其共同之处将在程序编制时用同样的方式实现(同一子程序或被调函数),减少重复环节。其不同的部分由条件判断程序和特定程序分别实现,以使得各种类型的反射均能够实现。
 楼主| ruiaijun 发表于 2004-12-1 17:03:00 | 显示全部楼层
  2、几种类型反射的异同点。
  首先看几种类型反射的共同点。它们都有接受刺激的神经部位,那些不是接受刺激的神经部位也是一些具有其它功能的神经部位。因此各种反射都是这些神经部位(神经元)间的联系。条件反射中的反应、工具性条件作用中的活动,也都是神经系统神经部位在工作,需要通过与其它神经部位的联系,调出或终止这些活动。
  再看各类反射的不同之处。
  无条件反射(非条件反射、先天性反射)是不需要建立过程的,它只有实现过程。它的要件只有两个;无条件刺激和反应。
  条件反射则需要非条件反射的支持,在建立反射和实现条件反射时也离不开非条件反射。它的要件是三个:非条件刺激、条件刺激和反应。
  工具性条件作用则不需要非条件反射的支持,但是它需要一些随机进行的活动的支持,并且需要有接受奖励和识别奖励的过程。它的要件也是三个,但是于条件反射不同:刺激、偶然动作和奖励。
  简化的工具性条件作用比条件性工具作用减少了接受奖励(要件)和识别奖励的过程(支持)。
  多刺激间反射既不需要无条件反射的支持,也不需要偶然活动的支持,但是它接受刺激的部位数量会很大,因此不能靠单个刺激实现反射。需要有测量响应度和比较响应度的机制。
 楼主| ruiaijun 发表于 2004-12-2 10:11:00 | 显示全部楼层
  3、综合模拟反射的结构设置。
  A、反射表。反射表是我们这个模拟思想用来模拟神经元间联系的主要技术手段。几种反射都是神经间联系的,它们都必须有反射表。因此综合程序也要有反射表。
  对于不同反射,我们有两种方式设计反射表。一种是分别式反射表,每种反射分别设计不同的反射表,由于不同反射表的数据结构不同,分别设置、分别处理,设计思路简单。另一种是综合式反射表。它是把各种反射表合在一起,由于每种反射条的内容不同,这个综合的反射表的数据结构就比较复杂,读写这个反射表的程序也比较复杂。两种设计方案你可以按自己喜欢的选择。
  B、反射表读写程序。它包括各类反射共同的读写方式和每类反射特殊的读写方式。对于分别式反射表自然是读写程序分开。对于综合式反射表,程序要有能够适应综合式的数据结构。
  C、强化程序。它设置重复一定次数后才能够写反射表,根据你的需要和爱好决定用不用该程序。对多刺激间反射是必不可少的。
 楼主| ruiaijun 发表于 2004-12-2 10:13:00 | 显示全部楼层

  3、综合模拟反射的结构设置。

  D、退化程序。它设置一定时间内不巩固就把某反射条从反射表中删除,根据你的需要和爱好决定用不用该程序。
  E、先检索非条件反射。把非条件反射设置为检索的最优先级别,这与生物神经系统实际相符合,也保证后面如果是条件反射,能够顺利建立或实现。
  F、活动程序和它的随机调用。这是工具性条件作用的模拟保证。它由一些活动程序和随机调用其中某一个的调用程序组成。但是,有了这个程序,系统就会处于随时活动状态,这与一般计算机系统情况很不一样。强人工智能系统必然会呈现这种状态。为了便于一般研究者编程,你可以为随机调用活动的程序设置一个启动引擎。它不是必需的,但是有了它你可以控制随机活动的产生时间。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|生物行[生物导航网] ( 沪ICP备05001519号 )

GMT+8, 2024-12-24 08:53 , Processed in 0.015424 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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