人工智能的主要内容和方法人工智能(Artificial Intelligence,简称AI)是50年代兴起的一门新兴边缘学科,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能),也被认为是二十一世纪三大尖端技术之一(基因工程、纳米科学、人工智能)。
广义的讲,人工智能是关于人造物的智能行为,而智能行为包括知觉、推理、学习、交流和在复杂环境中的行为。
人工智能的一个长期目标是发明出可以像人类一样或能更好地完成以上行为的机器;另一个目标是理解这种智能行为是否存在于机器、人类或其他动物中。
目前能够用来研究人工智能的主要物质手段以及能够实现人工智能技术的机器就是计算机, 人工智能的发展历史是和计算机科学与技术的发展史联系在一起的。
除了计算机科学以外, 人工智能还涉及信息论、控制论、自动化、仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等多门学科。
一、AI的主要内容人工智能研究的主要内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。
知识表示是人工智能的基本问题之一,推理和搜索都与表示方法密切相关。
常用的知识表示方法有:逻辑表示法、产生式表示法、语义网络表示法和框架表示法等。
常识,自然为人们所关注,已提出多种方法,如非单调推理、定性推理就是从不同角度来表达常识和处理常识的。
问题求解中的自动推理是知识的使用过程,由于有多种知识表示方法,相应地有多种推理方法。
推理过程一般可分为演绎推理和非演绎推理。
谓词逻辑是演绎推理的基础。
结构化表示下的继承性能推理是非演绎性的。
由于知识处理的需要,近几年来提出了多种非演绎的推理方法,如连接机制推理、类比推理、基于示例的推理、反绎推理和受限推理等。
搜索是人工智能的一种问题求解方法,搜索策略决定着问题求解的一个推理步骤中知识被使用的优先关系。
可分为无信息导引的盲目搜索和利用经验知识导引的启发式搜索。
启发式知识常由启发式函数来表示,启发式知识利用得越充分,求解问题的搜索空间就越小。
典型的启发式搜索方法有A*、AO*算法等。
近几年搜索方法研究开始注意那些具有百万节点的超大规模的搜索问题。
机器学习是人工智能的另一重要课题。
机器学习是指在一定的知识表示意义下获取新知识的过程,按照学习机制的不同,主要有归纳学习、分析学习、连接机制学习和遗传学习等。
知识处理系统主要由知识库和推理机组成。
知识库存储系统所需要的知识,当知识量较大而又有多种表示方法时,知识的合理组织与管理是重要的。
推理机在问题求解时,规定使用知识的基本方法和策略,推理过程中为记录结果或通信需设数据库或采用黑板机制。
如果在知识库中存储的是某一领域(如医疗诊断)的专家知识,则这样的知识系统称为专家系统。
为适应复杂问题的求解需要,单一的专家系统向多主体的分布式人工智能系统发展,这时知识共享、主体间的协作、矛盾的出现和处理将是研究的关键问题。
二、AI的研究方法既为人工智能的最终研究目标打好基础,又能创造出短期效益,这是选择人工智能研究最佳方法的标准。
尽管人工智能已经创造了一些实用系统,但这些远未达到人类的智能水平。
在过去的几十年里涌现出了大量的方法,大致可分为两大类。
第一类包括符号处理的方法。
它们基于Newell和Simon的物理符号系统的假说。
大多数被称为“经典的人工智能”均在其指导之下。
这类方法中,突出的方法是将逻辑操作应用于说明性知识库。
这种风格的人工智能运用说明语句来表达问题域的“知识”,这些语句基于或实质上等同于一阶逻辑中的语句,采用逻辑推理可推导这种知识的结果。
这种方法有许多变形,包括那些强调对逻辑语言中定义域的形式公理化的角色的变形。
当遇到“真正的问题”,这一方法需要掌握问题域的足够知识,通常就称作基于知识的方法。
在大多数符号处理方法中,对需求行为的分析和为完成这一行为所做的机器合成要经过几个阶段。
最高阶段是知识阶段,机器所需知识在这里说明。
接下来是符号阶段,知识在这里以符号组织表示(例如:列表可用列表处理语言LISP来描述),同时在这里说明这些组织的操作。
接着,在更低级的阶段里实施符号处理。
多数符号处理采用自上而下的设计方法,从知识阶段向下到符号和实施阶段。
第二类包括所谓的“子符号”方法。
它们通常采用自下而上的方式,从最低阶段向上进行。
在最低层阶段,符号的概念就不如信号这一概念确切了。
在子符号方法中突出的方法是“Animat approach”。
偏爱这种方式的人们指出,人的智能经过了在地球上十亿年或更长时间的进化过程,认为为了制造出真正的智能机器,我们必须沿着这些进化的步骤走。
因此,我们必须集中研究复制信号处理的能力和简单动物如昆虫的支配系统,沿着进化的阶梯向上进行。
这一方案不仅能在短期内创造实用的人造物,又能为更高级智能的建立打好坚实的基础。
第二类方法也强调符号基础。
在物理基础假说中,一个agent不采用集中式的模式而运用其不同的行为模块与环境相互作用来进行复杂的行为。
机器与环境的相互作用产生了所谓的“自然行为(emergent behavior)”。
一个agent的功能可视作该系统与动态环境密切相互作用的自然属性。
agent本身对其行为的说明并不能解释它运行时所表现的功能;相反,其功能很大程度上取决于环境的特性。
不仅要动态的考虑环境,而且环境的具体特征也要运用于整个系统之中。
由子符号派制造的著名样品机器包括“神经网络(Neural network)”。
根据模拟生物进化方面的进程,一些有意思的机器应运而生,包括:Sexual crossover、Mutation和Fitness-proportional reproduction。
其他自下而上,含animat风格的方法是基于控制理论和动态系统地分析。
介于自上而下和自下而上之间的方法是一种“环境自动机(situated automata)”的方法。
Kaelbling 和Rosenschein建议编写一种程序设计语言来说明agent在高水平上所要求的行为,并编写一编译程序,以从这种语言编写的程序中产生引发行为的线路。
径向基函数神经网络MATLAB仿真一、RBF网络的工作原理径向基函数神经网络(Radial Basis Function Neural Network, RBF)是一种前馈神经网络,一般为三层结构,如下图:b0XXm上图所示为n—h—m结构的RBF网络,即网络具有n个输入,h个隐节点,m个输出。
其中x=(x1, x2, …, x n)T∈R n为网络输入矢量,W∈R n×m为输出权矩阵,b0,b m为输出单元偏移,y=(y1, y2, …, y m)T为网络输出,Φi(*)为第…,i个隐节点的激活函数。
图中输出层节点中的∑表示输出层神经元采用线性激活函数(输出神经元也可以采用其他非线性激活函数,如Sigmoidal函数)。
RBF网络的最显著的特点是隐节点的基函数采用距离函数(如欧式距离),并使用径向基函数(如Gaussian高斯函数)作为激活函数。
径向基函数关于n维空间的一个中心点具有径向对称性,而且神经元的输入离该中心点越远,神经元的激活程度就越低。
隐节点的这个特性常被称为“局部特性”。
因此RBF网络的每个隐节点都具有一个数据中心,上图中c i就是网络中第i个隐节点的数据中心值,|| * ||则表示欧式范数。
径向基函数Φi (*)可以取多种形式:1. Gaussian 函数22/-t e)(i t i δΦ=2. Reflected sigmoidal 函数 )e1/(1)(22/t i t i δΦ+=3. 逆Multiquadric 函数 0,)/(1)(22>+=αδΦαi i t t以上三式中的δi 称为该基函数的扩展常数(Spread )或宽度。
显然δi 越小,径向基函数的宽度就越小,基函数就越具有选择性。
与输出节点相连的隐层第i 个隐节点的所有参数可用三元组(c i, δi, ωi )表示。
每个隐层神经元都对输入x 产生一个响应||)c -x (||i i Φ,且响应特性成径向对称(即是一个个同心圆),而神经网络的输出则是所有这些响应的加权和,因此第k 个输出可表示为∑==h1i i ||)c -x (||i i k y Φω 由于每个神经元具有局部特性,最终整个RBF 网络也呈现“局部映射”特性,即RBF 网络是一种局部相应神经网络。
这意味着如果神经网络有较大的输出,必定激活了一个或多个隐节点。
二、 RBF 网络的聚类学习算法RBF 网络的学习算法应该解决以下问题:结构设计,即如何确定网络隐节点数h ;确定各径向基函数的数据中心c i 及扩展常数δi ;输出权值修正。
如果知道了网络的隐节点数、数据中心和扩展常数,RBF网络从输入到输出就成了一个线性方程组,此时权值学习可采用最小二乘法。
RBF网络最常用的学习算法有聚类方法、梯度训练方法及OLS优选算法。
下面将详细介绍最经典的RBF网络学习算法—聚类方法,并进行MATLAB仿真。
聚类方法的思路是先用无监督学习(用k-means算法对样本输入进行聚类)方法确定RBF网络中h个隐节点的数据中心,并根据各数据中心之间的距离确定隐节点的扩展常数,然后用有监督学习(梯度法)训练各隐节点的输出权值。
假设X1,X2, …, X N为样本输入,相应的样本输出(教师信号)为y1, y2, …, y N,网络中第j个隐节点的激活函数为Φj(*)。
k为迭代次数,第k次迭代时的聚类中心为c1(k), c2(k), …, c h(k),相应的聚类域为ω1(k), ω2(k), …, ωh(k)。
k-means聚类算法确定RBF网络数据中心c i和扩展常数δi的步骤如下:(1) 算法初始化:选择h个不同的初始聚类中心,并令k=1。
初始聚类中心的方法很多,比如,从样本输入中随机选取,或者选择前h个样本输入,但这h个初始数据中心必须取不同值。
(2) 计算所有样本输入与聚类中心的距离||X j-c i(k)||,i=1,2, …,h,j=1,2, …,N。
(3) 对样本输入X j按最小距离原则对其进行分类:即当i(x j)=min||X j-c i(k)||,i=1,2, …,h时,X j即被归为第i类,即X j∈ωi(k)。
i(4) 重新计算各类的新的聚类中心:∑∈==+(k )i ,,2,1,1)1(ωx i i h i x N k c 式中,N i 为第i 个聚类域ωi (k)中包含的样本数。
(5) 如果c i (k+1)≠c i (k),转到步骤(2),否则聚类结束,转到步骤(6)。
(6) 根据各聚类中心之间的距离确定各隐节点的扩展常数。