关于人工智能的探讨,答者有分(300分)

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

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
在离线库中搜了一下,找到几个讨论人工智能的帖子,大家有兴趣的话可以看看。
416050 我有一个梦 关于人工智能
231631 知识库
618262 基于深度优先的公式发现算法
171623 关于一个人工智能的问题 动物识别系统
638294 人工智能开发的最佳工具包(SDK)
581601 智能识别
504559 程序的有性繁殖
239282 有关人工智能(谓词公式)的问题
不知阿朱兄的知识库进展如何...
 
H

hgfjcn

Unregistered / Unconfirmed
GUEST, unregistred user!
我对人工智能也很有兴趣,大家有什么好的书与网站,不妨介绍一下
 
H

Haha...

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟水平很low,请别介意我回此帖,不过我算是学数学的
大虾说的广度优先搜索、启发式搜索、神经网络、遗传算法......全是数学的一些问题
广度优先搜索:如果是数据结构中的深度,广度优先搜索,那就简单了,有本
高程书看看就搞定了
启发式搜索:好象是和模糊有关
神经网络:从人类神经元记忆机制的启发而来的,主要是对网络中节点之间权重的训练方法
,原理就想是我们说的见得多了一看就知道结果
遗传算法;从种群遗传原理迩来,原理是群体不断生成,从复制,淘汰,变异中得到优化
老兄,数学就是这样,不管简单还是复杂都要先建立理论体系,不管你喜欢不喜欢,
如果你不喜欢,看例子也行,我也很讨厌那些理论
对了,用Matlab解决神经网络、遗传算法比较方便,不妨学学
 
X

xinjia

Unregistered / Unconfirmed
GUEST, unregistred user!
当然从理论上说原子命题可以继续分割,但对于某一层面来说,命题的分割只能到某一程度
然后,在这个程度上组建知识树.推理是枝,命题是节点,人类的知识就像树林一样,由一个个
方面的知识树构成.
命题库(知识):=命题库+推理方法
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
哈哈,准备动手了——面向对象的知识表示及推理系统。
下面以一个实际问题为实现目标,分析它的问题描述以及求解过程:
农夫过河
从前,一个农夫带了一只狗,一只兔子和一棵青菜,来到河边,他要把这三件东西带过河去。
那儿仅有一只很小的旧船,农夫最多只能带其中的一样东西上船,否则就有沉船的危险。
狗要咬兔子,兔子要吃青菜。所以,关键是要在渡河的任何一个步骤中,把兔子和狗,兔子和
青菜分开,才能免受损失。
问题描述:
四个对象:
农夫、狗、兔子、青菜
对象分类:
他们都有一个共同的属性——位置,这个属性的取值范围为'A'和'B'。
农夫:
方法:
Move: 这个方法可以改变农夫自己的“位置”属性。除此之外,还可以改变和他位置相同的
另一个对象的“位置”属性。
系统规则:
若狗和兔子的位置相同,且和农夫的位置不同,则任务失败;
若兔子和青菜的位置相同,且和农夫的位置不同,则任务失败。
初始条件:
他们的“位置”均为'A'。
目标:
他们的位置均为'B'。
推理过程(广度优先):
生成可行方案列表——保存当前状态——依次执行列表中的方案并生成相应的子任务状态列表
——判断各个子任务是否达到目标或者符合失败条件。......
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
以下文字摘抄自《人工智能与专家系统》国防科技大学出版社

知识表示和搜索技术是人工智能问题求解领域的两大基本问题。
人工智能(AI)是计算机科学的一个分支,旨在设计智能的计算机系统,也就是说,对照人类在自然语言
理解、学习、推理、问题求解等方面的智能行为,它所设计的系统应呈现出与之类似的特征。
人工智能程序的处理对象是符号,包括符号表示、符号推理和搜索。
人工智能程序是以求解不良结构问题为特征的。

产生式认知模型:
产生式规则的一般形式为: IF <前提> then
<结论>
任何数学系统或逻辑系统都可以写成某种形式的产生式系统,产生式系统拥有和图灵机同样的能力。
人类的记忆是以知识块(Chunk)松散的组织起来的。一个知识块通常对应于一条简单的“IF then

型结构的规则。当规则的前提部分为永真时,规则就退化为“事实”。
人类问题求解中的推理机制即所谓的认知处理器,它的任务是找出某个被激活的规则,只有条件匹配
的规则才被激活;如果一次激活多条规则,它还必须判别哪一条规则优先级最高,以解决冲突;最后
执行优先级最高的规则。
任何人工智能解题程序的基本结构都可以由三个要素组成:一个综合数据库、一组智能算子和一个
解释程序。
普通的搜索方法:广度优先搜索、深度优先搜索。(都有不足之处,只适用于不太复杂的任务)
对许多任务来说,有可能使用与任务有关的信息而大大减少搜索的代价,并找到比较满意的解。这种
与任务或问题有关的信息称为启发信息,利用启发信息进行的搜索叫做启发式搜索。
专家系统是一种智能计算机程序,这种程序使用知识与推理过程,求解那些需要杰出人物的专门
知识才能求解的高难度问题。
专家系统的解题程序由三要素组成:描述问题状态的综合数据库或全局数据库,存放启发式经验
知识的知识库,以及对知识库中的知识进行推理的推理机。
知识库是问题求解知识的集合,含有显式的表示的各种知识块,包括基本事实、规则和其它有关
信息。
和传统的数据库相比,数据库中的数据是被动的和静止的,知识库是主动的、动态的。
在问题求解中,知识库中的知识是推理机解释程序的解释对象或高级数据。
全局数据库或称工作存储器,是反映当前问题求解状态的集合,用于临时存放求解问题所需的各种
初始数据或证据,以及求解期间有专家系统产生的各种中间信息,有时还包括中间假设或中间结论
之间的“链”关系等。
推理机主要由调度程序与解释程序组成,是实施问题求解的核心执行机构。
专家系统的控制策略有数据驱动、目标驱动和混合驱动之分,它们分别称为正向链或正向推理、逆向链
或逆向推理、混合链或混合推理。
知识获取机制是专家系统中把问题求解的各种专门知识从人类专家的头脑中或其它知识源那里转换到
知识库中来的一个重要机构。
解释机制是专家系统中回答用户询问对自己的问题求解过程或对自己当前的求解状态提供说明的一个
重要机构。
知识获取旨在研究如何把专家头脑中的知识转移和变换到计算机中来,它是专家系统中最重要的研究
课题。
知识获取是专家系统的瓶颈。
知识表示使用计算机能够接受并进行处理的符号和方式来表示人类的知识。
典型的人工智能语言和知识表示系统有:
1.基于λ—演算的函数型语言
2.基于一阶谓词演算的逻辑型语言
3.基于信息隐蔽和抽象数据类型概念的面向对象语言以及诸如C++等诸如面向对象程序设计风格的其它语言
4.产生式系统
5.框架结构
6.语义网络
7.逻辑系统
不确定推理方法是专家系统的重要研究课题。
推理控制策略与不确定推理方法一起是推理及运用知识进行问题求解的重要研究课题。
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
以下文字摘抄自《人工智能与专家系统》国防科技大学出版社

产生式系统
一个产生式系统由一个工作存储器(Working Memory,简称WM)、产生式规则库(Production Rule Base)
和规则解释程序三部分构成,规则解释程序包括匹配器、冲突消解器和解释器。
工作存储器存放当前已知的数据。包括推理过程中形成的中间这些数据由规则解释程序用来激活相应的
规则。
在MYCIN系统中,以(对象、属性、值)三元组作为事实的基本表示形式,其形式化描述依赖于三类集合:
1.领域对象名集合
2.对象属性名集合
3.属性取值集合
产生式规则
每条产生式规则分为左部和右部两个部分,左部表示激活该产生式规则的条件,右部表示调用该产生式
规则后所做的动作。
产生式规则的一般形式为:
P1,...,Pm -> C1,...,Cn
其中规则左部(LHS)称为规则的前提条件(规则前件),规则右部(RHS)称为规则的行为部分(规则后件)。
上述规则的基本含义为:
如果条件P1,...,Pm都得到满足,则执行动作序列C1,...,Cn
规则的条件是否满足以当前工作存储器中事实为依据。
产生式规则与传统程序设计语言中的条件判断语句的区别:
1.它的左部表达的是一组复杂的模式,而不仅仅是一个布尔表达式
2.规则之间的控制流不是像传统语言中从一条语句向其下一条语句传递,而且满足条件的规则不一定
立即执行,这将取决于产生式系统的冲突消解策略。
规则解释程序
规则解释程序负责整个产生式系统的运行,其中,匹配器负责判断规则条件是否成立,冲突消解器
负责选择可调用的规则,解释器负责执行规则的动作,并在满足结束条件时终止产生式系统的运行。
折射性(Refratoriness):一条规则不能先后两次被相同的工作存储器激活并选中。(用于在不能
推出新的事实时,终止系统的运行。)

推理的方向
产生式系统的两种最基本的推理方式:向前(正向)推理和向后(反向)推理。前者又称数据驱动,
后者又称目标驱动。
正向推理从已知事实出发,逐步推导出最后结论;反向推理则是首先提出假设,然后验证这些假设
的真假性,找到假设成立的所有证据或事实。
产生式系统可以用正向推理,也可以用反向推理,主要取决于推理的目标和搜索空间的形状。
如果目标是从一组给定的事实出发,找出所有可能的结论,通常使用正向推理。另一方面,如果目标
是证实或否定某一特定结论,通常使用反向推理。
从搜索空间的形状来看,主要考虑下面两个因素:
1.方向分支因素。即从一结点可以直接到达的平均结点数。一般从分支率低的方向开始推理更加有效。
2.开始状态与终止状态数。即当两个方向的分支因素没有明显差异时,从小的状态集出发朝大的状态集
推理,这样找解比较容易。
无论何种推理,许多事实或证据往往不是一开始都必须具备的,而是在推理过程中通过交互方式不断
追加的。

产生式系统语言CLIPS
1.域
CLIPS知识表示的基本单位是域(field),域分为常量域何变量域两种。常量域有三种类型:
字(word)、字符串(string)、数(number)。
域上可以附加各种逻辑约束,它们将域的取值范围约束于某一特定范围,其中常用的是域的逻辑约束。
逻辑约束有与、或、非三种。
2.事实
事实用一个有序的常量域来表示,其形式为
(field1 ... fieldn)
这里fieldi为域。实际使用中,事实的第一个域通常是一个字,用来描述后面域之间的关系。例如,
可以用下面的事实表示河的两岸shore-1和shore-2处于相对的位置。
(opposite-of shore-1 shore-2)
3.模式
模式是组成规则前提条件的基本单位,一般由一个有序的域来表示一个模式。例如:
(status ?num ?name ? ?fs ?fs ?gs ?cs)
表示农夫问题的一种状态模式,而
(opposite-of ?fs ?ns)
表示河岸关系的一种模式。
模式可以赋给一个变量,如
(?rm <- (status ? ?name ?s1 ?s2~?s1 ?s2))
其中?rm称为模式变量。
4.动作
(1)访问事实库动作语句
用于增删工作存储器中的事实,常见的有插入事实语句assert和删除事实语句retract。
(2)基本动作语句
bind和halt
变量约束语句bind用于建立新变量或修改在规则中已赋予的变量值。
halt语句用来暂停该规则的执行。
(3)控制动作语句
规则RHS的动作序列一般是顺序执行,但也可以用if和while语句来加以控制。
5.规则
在CLIPS语言中,规则表示为如下形式:
(defrule rule-name declare-string
patterns
=>
actions)
例如,祖先关系的规则
x是y的父亲 -> z是y的祖先
在CLIPS中表示为
(defrule ancestor-rule ""
(father ?x ?y)
=>
(assert(ancestor ?x ?y)))
 
A

Activer

Unregistered / Unconfirmed
GUEST, unregistred user!
这里有个很古老的东西很有意思
http://znu_lha.myetang.com/downloads/robot.zip
 
C

chenliang_fly

Unregistered / Unconfirmed
GUEST, unregistred user!
to creation-zy,:
我学的是机械,搞生产调度优化问题,最近在研究遗传算法,从各种各样的地方搜集了
一些资料,如果需要的话可以给我写信 liangchen_fly@163.net,以后多交流
 
D

duz

Unregistered / Unconfirmed
GUEST, unregistred user!
人工智能现在在理论上基本上已经走进了死胡同。除非在理论或计算机科学上有革命性的突破,可能还需要再等待一二十年
才能有所突破(其实在一二十年前专家们就认为AI很快就可以实现了,可是到了现在还是一筹莫展)
 

飞机

Unregistered / Unconfirmed
GUEST, unregistred user!
有一种并不流行的人工智能语言
prolog,我以前用过的是tubro prolog
做专家系统比较合适
不妨看看它的相关书籍
其他的如 MI, Lisp等也是
 
K

kouchun

Unregistered / Unconfirmed
GUEST, unregistred user!
J

jdshoot

Unregistered / Unconfirmed
GUEST, unregistred user!
to creation-zy:
我觉得你将 x>0 分解为 x,>,0 根本不是对命题的分解,因为命题的分解是把一个命题分解为
几个子命题,分解前后都是命题,而命题必须是可以判断对错的。
但在你的例子中,x>0是命题,而 x,>,0 都不是命题,所以这样的分解根本没有意义!
 
D

DarwinZhang

Unregistered / Unconfirmed
GUEST, unregistred user!
对skyblade的一些补充:
我认为,现在AI最多不过是一只昆虫的智力:
人们给计算机一些方法,
计算机就死死的按照这些方法去处理情况,
它不能根据新情况产生新方法,
因为电脑的程序不能改变程序本身(编译器,解释器也不行),来获得一种新算法,
这就是电脑的最大缺陷.
人脑却可以通过'顿悟'(灵感)这样一种途径来获得突破,改变自己的看法和方法.
----------------------------------------------------------------------
这可能是当前的技术无法解决的问题,
所以我对AI没有什么兴趣,
只把电脑当成一个辅助人脑的工具而已.(马克思主义)
 
J

jdshoot

Unregistered / Unconfirmed
GUEST, unregistred user!
关于'顿悟'(灵感):
我认为人的“顿悟”也是大脑受到的各种刺激的反应,而不是凭空产生的,所以当电脑处理器
足够复杂,并且受到的“刺激”,也就是输入足够多的时候,电脑也是有可能产生类似人的“顿悟”
的,只是现在条件还不满足而已。
 
W

wddelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我想没有必要在这里讨论这个问题,因为这个问题不是一个人看几本书就能解决的,也不是
几个中国的业余程序员能讨论出什么道道的,没必要在这里花时间了!
 
D

DarwinZhang

Unregistered / Unconfirmed
GUEST, unregistred user!
to jdshoot:
输入足够多只是一个必要条件不是充分条件,还必须要有主观的努力,
而这也不一定就可以"顿悟",我的所谓"顿悟"就是:
想到 以前从来没有人 想到过的 处理事物的 办法和看法.
另外,大脑的工作原理现在还远未了解.
而PC的工作方法不过是"冯-伊洛曼"原理,
其它计算机的工作原理只有有限的一些,
想和人脑相比,还差得远.
这不是一味的增加电脑处理器速度和大量的增加数据就可以解决的这么简单.
所以现在谈论真正的人工智能还为时尚早.
 
F

flli

Unregistered / Unconfirmed
GUEST, unregistred user!
对AI我没有我少研究,但是
我觉得计算机解决问题的一般过程是
事物->形式逻辑->数理逻辑->算法程序
对于AI我觉得现在连AI的形式逻辑都没有一个清晰的表达,
几乎所有的有关研究只在知识库上有一点进展,而如何运用知识库,
根本没有可观的进展,比如,已知有木头,有路,有运动,有搬运需求,有结构学知识
电脑什么时候能够想到{轮子},
一个没有想象力,创新能力的AI是没有意义的
我大胆的推想,一个真正意义上的AI程序也许要再过20年才能产生,
而它用当时的PC运算来解决一个极其简单问题所需的时间之长可能会让我们惊讶!
 
J

jdshoot

Unregistered / Unconfirmed
GUEST, unregistred user!
to DarwinZhang:
我不相信人脑可以凭空创造出什么,新的想法都是人脑受到的刺激产生的,都是人脑对输入信息处理的结果,
只是人脑受到的刺激量很大,时间很长,而人脑每受到一点新的刺激,就会与脑中原有的东西处理得到一些新
的东西,并再次存储下来,这有点像一个有外部输入的闭环系统,只是每个人的大脑对输入的处理能力不同,
以及每个人受的刺激都不同,所以每个人能得到自己不同的“输出”。另外,之所以会有前人不曾想到的新想
法出现,那是因为你向前人学习,并且你的大脑的处理能力可能比前人的更强。
当然,我并不是说现在的PC就可以很好地模拟人脑,我说了,条件还不满足,而且也像你说的,不是增加处理
速度和输入就可以了,也要改变处理的方法,但用电脑模拟人脑完全是有可能的。
还有一点,我不同意你说的“现在谈论真正的人工智能还为时尚早”,虽然我们现在做不到,但我们仍然可以
去想,去努力,不然你永远不谈,也就永远无法实现。
 
F

form2

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位,为什么一定要拿电脑和人脑比呢?试试和猪脑比一下,又为什么不可以?
至少不象那个片子里的机器小孩一个劲的找人妈,找猪妈也同样可以认为AI有重大突破的!
 
顶部