关于人工智能的探讨(续一)(300分)

  • 主题发起人 主题发起人 creation-zy
  • 开始时间 开始时间
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
由于原贴太长,现在新开一个帖子,接着讨论人工智能的电脑实现。欢迎大家踊跃发言,
共同进步!
原贴见: http://www.delphibbs.com/delphibbs/dispq.asp?lid=934017

输入和输出是人工智能体的基本功能(也是普通电脑程序的基本功能)。对电脑来说,存在着
一种最基本的输入(觉受)——字符流输入。同样的,字符流也是电脑最直接的输出方式。
字符流可以看成是一种特殊的“触觉”(想到了盲文,唉...)——从它可以获得的信息只有
信息的前后顺序以及信息本身的差异。
智能的一个重要基石是思维(即人类的第六识)——意识。意识是智能的核心,它统摄其余
诸识。意识的基本功能是分辨力以及对“时间”的感觉。正是由于有“时间”感,我们才能将
两个或更多的事件联系起来,而不是所有的记忆形成一个大杂烩。
智能的另一个重要基石是模仿。现在存在一个问题:如何让这个人工智能体进行模仿?模仿是
一定要有对象的,单纯的字符流输入输出难以让他区分多个模仿的对象,因此,我们必须对智能
体的感觉和存在环境加以改进。
我们可以构造这样一个环境:总共两个主体,其中一个是由人完全控制的(包括所有属性和
动作),另一个就是我们制造的人工智能体。在这个环境中,前一个主体的任务是当老师,它的
任务是表现出状态的变化以及作出动作,让人工智能体进行模仿学习。而人工智能体要做的是:
能够“感受”这个“老师”,包括它的状态以及它发出的动作等。
在一个学习的例子中,智能体的学习过程如下:
环境: A,B 共两个个主体,其中A的所有状态、动作都 受人控制;B是人工智能体,有自控能力
主体的属性: happy: 愉快程度 hungry: 饥饿程度
初始状态: 两者的happy和hungry属性均为0
经过一段时间后: A的hungry上升为0.7,happy下降为-0.3 (人为操纵)
随后: A发出动作get food,获得了一个物品。 A发出动作eat food,物品food同时消失。
一段时间后: A的hungry恢复到0,happy上升为0.1
又经过了一段时间,A的hungry上升为0.7,happy下降为-0.3 ...
终于,B的hungry也上升了,为0.75,happy下降为-0.4
由于happy低于正常值,B意识到必须采取某种措施以增大happy值。通过对记忆的发掘,B发现
A在happy下降之后采取了 get food, eat food 的动作序列,提高了happy值,于是开始模仿A
的动作...
 
斑竹你好厉害啊!我想向你请教一下,算法应该是建立在数据结构的基础上吧,你在回答
那个迷宫的算法时用到了哪些数据结构?还有就是请你介绍几本关于算法的好书以及你自
己学习算法的经验好吗?
另外我刚开始学Delphi,我看到好像一些命名的前面都有个T,这代表什么意思?
 
呵呵,生命就象PID的工控机,饿了就吃~吃多了就x~饱了就睡~睡醒了就写代码:)
 
研究研究也有好处,至少它能在开发智力儿童玩具方面有很大的空间,缩小与小日本在这方面的差距。[:D]
 
to 随便看看:
我已经在那个迷宫的帖子中回答了您在这里提出的问题,请您过目。有关迷宫的问题还请
到此为止吧。
 
作为这个板块的斑竹,你为何要拘泥于某个特定的帖子呢?!既然我已经真诚的向你请教,
而且问题你也已经看到了,那么你何必还要强求我到另一个帖子中去发表一个同样的问题
呢?!难道回答一下都不可以吗?!我刚来这里没几天,想不到这里的斑竹是如此的死板,
是不是看不起我们新来的啊!!
 
to creation-zy:
提醒一句,“失业”这样的用词很容易激起无谓的争论的,这里有个前车之鉴——[:D]
http://www.csdn.net/expert/topic/824/824008.xml
(这个帖子很长,只大概看一看楼主遭到的批评就可想而知了:)
对机器学习我没什么概念,在此想就信息的感知问题做一讨论。
不过事先声明:
我的兴趣不在纯粹的AI应用,而是希望能借鉴其中的某些东西应用于普通的信息系统。
说来话长,则仅从一点说起,以后再慢慢展开。
>>从它可以获得的信息只有信息的前后顺序以及信息本身的差异。
此话诚然,那么电脑如何响应顺序及差异呢?或曰,信息的顺序及差异如何起作用?
前几天有则新闻说某外国设计出新的智能软件使机器人能够精确地分辨精密部件的细微差别,
但单听报道,它只是把机器人用摄像机拍到的零件图像与其数据库内的标准图像做比对而已,
窃以为这样的差异处理无甚智能可言,尽管它的图像比对技术里或者有较高的智能含量,
但其整体思路仍是一种被动固化的老路子。我无意于对这个新闻里的东西做过多技术层面的讨论,
因为我没有什么发言权,只权作一例而已,且用意也只在表达对此种方式(而非技术)的不认同。
我认为应该由差异带出一系列动作和逻辑运算,而不是单单对差异本身做操作。
差异作为一个触发器,按系统固有逻辑自动引出其它操作,而不由人工指定在此差异下应如何如何。
问题就变成了此类“固有逻辑”究竟应该怎么确定,应该是什么样的。
很遗憾,这一问题的解决往往造就出一个庞大的离散的规则库,虽说规则的运算有一定的自动性,
但规则本身却是特定的、机械的。如此即是转嫁了代码逻辑,工作量及可维护性问题仍较突出。
关于输入顺序的影响我感觉似乎没有差异来得大,尚没有特别的想法,容以后再述。
 
很好,但个人感觉如果在基因计算机基础上进行人工智能研究是否会更好玩呢?
 
机器学习不应该只是用我们的数据结构和算法来解决,这样的效果我想不会很好,毕竟有点
机械式,我们应该建立一个合理的数学模型,因为人工智能体本身是用机器仿照人的思维,
因此,仿生学的一些思想,以及由此产生的数学方法 NN 和 GA ,模糊数学,正象chinaaspboy说的,
基因思想是有道理的,因为我们用基因(抽象为一种数据结构可能很小,要用bit伟)更有效的描述
一种特性,动作.....可以用遗传,不断的生成新的群体,一代比一代更智能........这是GA
我们建立一种网型(图)的数据结构,有输入(动作),输出(反应),网型网络中节点间的权重决定了
何种输入(动作)对应了何种输出(反应).而这些权重是 B是人工智能体对A的长期学习学习得来的
这是NN ,这些方法看起来很旋,但实践证明是很有效的,这样的方法下,我们对信息不是一个一个
的精挑细选(向递归,回溯,穷举遍历),而是对信息有了特殊的处理方式,从而,信息处理量大了
许多,更有效的吸取信息...
我是学数学的,希望多多向版主学习 hamburger99@sina.com
 
关于“基因化”思想,我认为人工智能缺少它的话是绝对不完整的。现在的主要问题是:
如何组织人工智能体的知识、行为,使之可以“基因化”。
我认为,“基因化”的基础是人工智能体已经有能力对自己的知识进行哪怕是最低限度的
关联性分析,进而进行因果分析,将多个相关的知识进行有机的分割(注意,是有机的,而
不是简单的将所有知识序列按顺序列出来),然后才能此基础上进行变异等操作。现在,我
们首先应该实现的是从环境中吸取知识,然后是能够对知识进行相关性分析(模式识别?)
并进行有效的分割。
 
我认为还有一个方面是关于信息的提取,在真正的应用中往往会处理海量的数据,
如何把他们提取出来进行学习是非常重要的,灰色系统,模糊数学提供了一些方法....
当然还包括统计学,可惜我只了解皮毛.
我认为之所以人脑能有效的提取知识是以为人脑能够将数据形成多层次,有机的结构
对于每种结构可能是汲取信息的一个方面(方式),而编程实现将数据映射到有机的数据结构
然后学习,还是是不够智能,而且是比较困难的.从oo来言,我们要有大量的类,以便他们能
映射过来.而且这些类(对象)也应该是智能化的,表现为他们的方法.
NN是一种简单的"人脑",但是先要对数据进行编码,信息处理量不会很大,但是学习效果是
比较显著的.我想nn比相关性分析要好一点,相关性分析毕竟有点机械.而且通过NN学习
可以得到一个适应度函数(GA术语,即输入--输出之间的关系函数,当然是无法用表达式
表示的,只能用NN),进而依此函数进行优化(用GA...),对输入进行调整(在基因级上,当然要有意义的
即满足可行性),从而得到了新的更优输入.这比较适用于抽象和不确定的问题.
上面的方法可以结合起来
我对这方面也很感兴趣,只是水平只有本科,刚毕业,在做mis(比较无聊),希望多多学习
 
提一下。。
 
说到“海量数据”,我想到了一个问题——人脑的信息存储量似乎是没有尽头的,尽管我们
有时也会“遗忘”一些东西(通过对一些精神疾病患者的研究,我们发现他们可以回忆起童年
时期的一些非常细微的细节——这是不是意味着...)。人脑的处理速度似乎根本不受知识量
的影响。
对于一个知识处理系统来说,随着系统中知识数量的增加,推理机的速度也越来越慢——
因为系统每次推理都需要遍历许多的可用规则,而这些规则的数量基本上是和总知识数成正比
的。为了提高系统的效率,前人开发了马尔可夫、Rete快速匹配等等算法以提高系统的效率,
这些算法的确非常有效,但是,我认为,要实现真正实用的人工智能,就有必要让电脑能够以
接近人脑的思维方式来运作。
在我的上一篇帖子中,有人认为人工智能不可能实现,因为我们甚至连自己大脑的工作方式
都不清楚,更谈不上让电脑思维了。这种看法顶多对了一半——如果不了解大脑,我们的确就
不能凭空创造出理想的人工智能体——但是——人类是高度智慧的生物,我们拥有了知整个宇
宙的能力,当然也有能力穷尽大脑的奥秘。
我认为,人脑之所以能够以稳定的速度进行思维,是因为我们在获得新知识之后,都会形成
一个“思维框架”(抑或“模式”)或者融合到已有的“思维框架”中去。每个“思维框架”
都对应着一类问题的推理方式以及用于推理的规则库,框架内部的规则之间有极强的相关性,
而框架之间的联系则是非常松散的,甚至很可能没有任何联系(比如驾驶汽车的思维框架和做
饭的框架应该没有什么联系吧)。我估计人脑中的思维框架的数量在10^3~10^5个左右,而每
个框架内部又包含了10^2~10^5条规则或知识,由于人脑是由数十亿个神经细胞构成的,平均
每个细胞又和约40000个细胞相连,每次对付几百个和几万个数据的速度差别应该不大。
“思维框架”作为一个比较大的概念,其内部还可以进行分解。注意到我们在思维的过程中
极少遇到需要在上百条规则中进行选择的情况,我认为每个框架都可以进行一种规则的“模糊
聚类”,即对这个思维框架来说,问题的解决可以被划分为若干个子问题(每个子问题就是一
个子框架)又或可以被划分为若干个阶段,这样不断划分下来,最终的子问题或阶段所涉及的
规则及事实数量都远比整个框架的知识量少得多(我估计仅在10^1上下)。
思维框架有“元知识”的特性,即它是用来确定知识的使用方式的,而与具体的规则无关(
比如求解数学应用题的框架:设定未知数、列方程、求解,问题可能有很多类型,但是都离不
开这三个基本步骤)。一般说来,思维框架本身是由人为输入构造的,而它内部的子框架以及
阶段则可以由人工输入,也可以由人工智能体在实际运用之中自动进化生成。
人的思维有一个极为重要的特点——只要我们愿意,我们可以随时跟踪并记录我们自己思维
的全过程,也就是说(从思维的层面上看来)大脑是一个“白箱”。而现在的电脑程序就完全
不一样:它们的代码是完全过程化的,它们没有一个机制可以让自己感受到自己正在“想”什
么。我认为,[red]如果一个人工智能体不能完全了解自己的思维(推理)过程,进而改进思维过程本
身,就远不是理想的“智能”体
[/red]。
在思维框架的体系结构中,“思维”用于框架内部的推理以及父子框架、平行框架之间的信
息传递。需要指出的是,仅仅有可以用语言解释的“思维”是不够的,为了让我们的思维机器
越来越快,必须还有一种思维的辅助机制,由它负责对思维的过程进行整理,从中发掘有用的
模式信息,以加速推理,并最终完成思维框架的进化。
 
计算机的 if..then
和人的 如果..就 有一个根本的不同,就是行为的取舍,所以前面
讨论的必要条件还要加入一个 “利益库” 的概念,它应该比“知识库”更重要,利益
的起源可以只是一条,作为所有判断的起点,但在每一次判断后,除了更新“知识库”
外,它必须更新“利益库”,而判断本身可以形成“方法库”,在空闲时,AI 还应该
用“新的方法”去重复测试对“利益库”的接近度,从而更新“方法库”。但怎么用
已有的知识,对“情势”做出判断来更新“利益库”呢?
 
都这么高深呀,我也说说我对ai的模糊意识。
人类思维是不断接受模型或是规律来进行学习的,然后运用这个模型来进行
解决问题,不再进行可行性分析或推导。
大脑学习有一个特点就是,好像直觉一样可以自动进行正确性分析(应该是感觉),
如果不对,会拒绝接受。这是大脑的本性,不排除后天的歪曲。
大脑的思维也不是并发的,是线性的。这里比较重要的是大脑思维会
局部思维和全局思维(具有相对性),这使得它非常成功。
我上面说的只是一方面,我感觉大脑是超级多态的一个东西。说到下棋,
大脑的思维方式好像和上面我说的不太一样。
(上面是看概率论走神了,随便想的,见笑了。)
前几天学科技英语,有段neural network ,fuzzy sysytem,好像是说神经
网络是并行的小单元组成的带权图。不太明白是怎么回事。
我只能认识了这么多,只是自己糊想的,没看过一本专业书。
不知道这是不是人工智能,我们学校好像做电子的也有人工智能这个方向,
我都胡涂了,做硬的还是做软的搞这东西好呢?我是喜欢软。
请各位不吝赐教。
 
我在这里回帖除了学习一下之外,最主要的目的是:
我喜欢计算机软件,想在想报考研究生,里面除了软件之外,还有个方向就是ai,
我的兴趣是,喜欢软件,喜欢逻辑性的东西,
不喜欢硬件,不喜欢fft什么的乱七八糟的变换,
不喜欢确定的东西带着乱七八糟在地干扰。
现在地问题是,我可不可以报ai方向,我将来会不会后悔?
拜托大家指点迷经!!!!!!!!!!!!!
 
>>怎么用已有的知识,对“情势”做出判断来更新“利益库”呢?
我认为这并不困难——一朝被蛇咬,十年怕井绳。我发现“感情”这种东西可以被视作一
种对过去经验的统计性指标。如果某个事物对我们产生了“伤害”,我们以后就会不由自主
的觉得它比较“可怕”,更进一步,如果伤害足够强烈的话,我们思维中的自动关联功能会
使我们“害怕”和它相关的东西。感情上的“害怕”反映在实际的行动上,就形成了“回避”
等行为。
我认为由于人脑的构造相对于目前的电脑的优势,我们大脑非常善于运用“相关性”进行
思维——针对成功解决过的每类问题,我们都有一整套解题的模式:分为几步、每一步需要
什么知识库,常用的推理过程是什么,等等。例如:在解决一道普通的乘法题时,我们会根
据问题的类型,仅调出99乘法表以及加法表作为推理的基础知识库,解题的过程也是按照早
已固定的模式——将两个数按照一上一下右对齐排列好,从右到左依次两两相乘,超过10则
要进位...——解题的模式大概就是这样了,剩下的绝大部分只是复杂度的问题。
 
这几天看EJB,有这样的想法:EJB是用容器实现了保持对象的伸缩性很高持久性;
我想;在AI中需要很多的信息库,而这些信息库是的结构是复杂的,很明显,用
关系模型是力不从心的,而用oo数据库模型会有更多的优势,关键还是要实现
伸缩性很高持久性,对象(知识库数据)要能在闲置时被passive,在用联想时能
随时被唤醒,使对象(知识库数据)实现在内存和物理文件之间的透明.
 
我最近一直在考虑用什么语言写人工智能体——C++、Java or Delphi?
C++的效率很高,数据结构丰富、灵活、支持指针类型,应用广泛;
Java有跨平台的优势,产品类型极为丰富,并且还可以动态生成并执行代码;
Delphi的效率和C++不相上下,但是应用没有C++广泛,但是是我最熟悉的语言。
楼上的兄台认为“信息库是的结构是复杂的”,我认为这个说法可能不够准确——信息库
本身可以是非常复杂的,但是信息库的结构可以非常简单,比如产生式系统,它的信息结构
就是 if then
子句,再简单不过了,但是谁也不能否认它的强大功能。
我认为信息本身不需要多么复杂(我认为人类的智能活动在某种程度上可以用字符流进行
全程记录、回放,甚至完全基于字符流进行思维),复杂的部分是对信息进行具体运算处理
的“智能核心”。我所谓的智能核心至少具有下面几个功能:
1.能够进行信息匹配(检索),进而实现推理(或者某种类似推理)的功能;
2.能够基于知识库中的信息(可以是基础的信息,也可以是某种高级的描述性信息)对信息
进行自动组织,而组织的结果在系统的外部看来就是我们通常所谓的“对象”;
3.能够将组织后的信息自动的以某种更加容易访问(检索)的形式写入到知识库中去。
我想,Haha兄提到的“对象的伸缩性很高持久性”应该是智能核心表现的功能之一,但是
这并不意味着智能核心本身需要发生变化,变化的只是对信息的组织、使用方式。
 
后退
顶部