人工智能的主要内容和方法Word文档下载推荐.docx
- 文档编号:16313586
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:19
- 大小:223.30KB
人工智能的主要内容和方法Word文档下载推荐.docx
《人工智能的主要内容和方法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《人工智能的主要内容和方法Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
第一类包括符号处理的方法。
它们基于Newell和Simon的物理符号系统的假说。
大多数被称为“经典的人工智能”均在其指导之下。
这类方法中,突出的方法是将逻辑操作应用于说明性知识库。
这种风格的人工智能运用说明语句来表达问题域的“知识”,这些语句基于或实质上等同于一阶逻辑中的语句,采用逻辑推理可推导这种知识的结果。
这种方法有许多变形,包括那些强调对逻辑语言中定义域的形式公理化的角色的变形。
当遇到“真正的问题”,这一方法需要掌握问题域的足够知识,通常就称作基于知识的方法。
在大多数符号处理方法中,对需求行为的分析和为完成这一行为所做的机器合成要经过几个阶段。
最高阶段是知识阶段,机器所需知识在这里说明。
接下来是符号阶段,知识在这里以符号组织表示(例如:
列表可用列表处理语言LISP来描述),同时在这里说明这些组织的操作。
接着,在更低级的阶段里实施符号处理。
多数符号处理采用自上而下的设计方法,从知识阶段向下到符号和实施阶段。
第二类包括所谓的“子符号”方法。
它们通常采用自下而上的方式,从最低阶段向上进行。
在最低层阶段,符号的概念就不如信号这一概念确切了。
在子符号方法中突出的方法是
“Animatapproach”。
偏爱这种方式的人们指出,人的智能经过了在地球上十亿年或更长时间的进化过程,认为为了制造出真正的智能机器,我们必须沿着这些进化的步骤走。
因此,我们必须集中研究复制信号处理的能力和简单动物如昆虫的支配系统,沿着进化的阶梯向上进行。
这一方案不仅能在短期内创造实用的人造物,又能为更高级智能的建立打好坚实的基础。
第二类方法也强调符号基础。
在物理基础假说中,一个agent不采用集中式的模式而运用其不同的行为模块与环境相互作用来进行复杂的行为。
机器与环境的相互作用产生了所谓的“自然行为(emergentbehavior)”。
一个agent的功能可视作该系统与动态环境密切相互作用的自然属性。
agent本身对其行为的说明并不能解释它运行时所表现的功能;
相反,其功能很大程度上取决于环境的特性。
不仅要动态的考虑环境,而且环境的具体特征也要运用于整个系统之中。
由子符号派制造的著名样品机器包括“神经网络(Neuralnetwork)”。
根据模拟生物进化方面的进程,一些有意思的机器应运而生,包括:
Sexualcrossover、Mutation和Fitness-proportionalreproduction。
其他自下而上,含animat风格的方法是基于控制理论和动态系统地分析。
介于自上而下和自下而上之间的方法是一种“环境自动机(situatedautomata)”的方法。
Kaelbling和Rosenschein建议编写一种程序设计语言来说明agent在高水平上所要求的行为,并编写一编译程序,以从这种语言编写的程序中产生引发行为的线路。
径向基函数神经网络MATLAB仿真
一、RBF网络的工作原理
径向基函数神经网络(RadialBasisFunctionNeuralNetwork,RBF)是一种前馈神经网络,一般为三层结构,如下图:
上图所示为n—h—m结构的RBF网络,即网络具有n个输入,h个隐节点,m个输出。
其中x=(x1,x2,…,xn)T∈Rn为网络输入矢量,W∈Rn×
m为输出权矩阵,b0,…,bm为输出单元偏移,y=(y1,y2,…,ym)T为网络输出,Φi(*)为第i个隐节点的激活函数。
图中输出层节点中的∑表示输出层神经元采用线性激活函数(输出神经元也可以采用其他非线性激活函数,如Sigmoidal函数)。
RBF网络的最显著的特点是隐节点的基函数采用距离函数(如欧式距离),并使用径向基函数(如Gaussian高斯函数)作为激活函数。
径向基函数关于n维空间的一个中心点具有径向对称性,而且神经元的输入离该中心点越远,神经元的激活程度就越低。
隐节点的这个特性常被称为“局部特性
”。
因此RBF网络的每个隐节点都具有一个数据中心,上图中ci就是网络中第i个隐节点的数据中心值,||*||则表示欧式范数。
径向基函数Φi(*)可以取多种形式:
1.Gaussian函数
2.Reflectedsigmoidal函数
3.逆Multiquadric函数
以上三式中的
i称为该基函数的扩展常数(Spread)或宽度。
显然
i越小,径向基函数的宽度就越小,基函数就越具有选择性。
与输出节点相连的隐层第i个隐节点的所有参数可用三元组(ci,
i,ωi)表示。
每个隐层神经元都对输入x产生一个响应
,且响应特性成径向对称(即是一个个同心圆),而神经网络的输出则是所有这些响应的加权和,因此第k个输出可表示为
由于每个神经元具有局部特性,最终整个RBF网络也呈现“局部映射”特性,即RBF网络是一种局部相应神经网络。
这意味着如果神经网络有较大的输出,必定激活了一个或多个隐节点。
二、RBF网络的聚类学习算法
RBF网络的学习算法应该解决以下问题:
结构设计,即如何确定网络隐节点数h;
确定各径向基函数的数据中心c
i及扩展常数
i;
输出权值修正。
如果知道了网络的隐节点数、数据中心和扩展常数,RBF网络从输入到输出就成了一个线性方程组,此时权值学习可采用最小二乘法。
RBF网络最常用的学习算法有聚类方法、梯度训练方法及OLS优选算法。
下面将详细介绍最经典的RBF网络学习算法—聚类方法,并进行MATLAB仿真。
聚类方法的思路是先用无监督学习(用k-means算法对样本输入进行聚类)方法确定RBF网络中h个隐节点的数据中心,并根据各数据中心之间的距离确定隐节点的扩展常数,然后用有监督学习(梯度法)训练各隐节点的输出权值。
假设X1,X2,…,XN为样本输入,相应的样本输出(教师信号)为y1,y2,…,yN,网络中第j个隐节点的激活函数为Φj(*)。
k为迭代次数,第k次迭代时的聚类中心为c1(k),c2(k),…,ch(k),相应的聚类域为ω1(k),ω2(k),…,ωh(k)。
k-means聚类算法确定RBF网络数据中心ci和扩展常数
i的步骤如下:
(1)算法初始化:
选择h个不同的初始聚类中心,并令k=1。
初始聚类中心的方法很多,比如,从样本输入中随机选取,或者选择前h个样本输入,但这h个初始数据中心必须取不同值。
(2)计算所有样本输入与聚类中心的距离||Xj-ci(k)||,i=1,2,…,h,j=1,2,…,N。
(3)对样本输入Xj按最小距离原则对其进行分类:
即当i(xj)=
||Xj-ci(k)||,i=1,2,…,h时,Xj即被归为第i类,即Xj∈ωi(k)。
(4)重新计算各类的新的聚类中心:
式中,Ni为第i个聚类域ωi(k)中包含的样本数。
(5)如果ci(k+1)≠ci(k),转到步骤
(2),否则聚类结束,转到步骤(6)。
(6)根据各聚类中心之间的距离确定各隐节点的扩展常数。
隐节点的扩展常数取
i=κdi,其中di为第i个数据中心与其他最近的数据中心之间的距离,即di=
||cj-ci(k)||,κ称重叠系数。
一旦各隐节点的数据中心和扩展常数确定了,输出权矢量ω=(ω1,ω2,…,ωh)T就可以用有监督学习方法(如梯度法)训练得到,但更简洁的方法是使用最小二乘方法(LMS)直接计算。
假定当输入为Xi,i=1,2,…,N时,第j个隐节点的输出如下式所示:
则隐层输出阵为
则
∈RN×
h。
如果RBF网络的当前权值为ω=(ω1,ω2,…,ωh)T(待定),则对所有样本,网络输出矢量为
令
为逼近误差,则如果给定了教师信号y=(y1,y2,…,ym)T并确定了
,便可通过最小化下式求出网络的输出权值:
通常ω可用最小二乘法求得
式中,
为
的伪逆,即
三、RBF网络MATLAB仿真实例
题目:
基于聚类方法的y=sinx函数逼近
解:
RBF网络隐层采用标准Gaussian径向基函数,输出层采用线性激活函数,即f(u)=u。
数据中心和扩展常数用聚类方法得到,输出权值和偏移采用广义逆方法求解。
隐节点数(即聚类数)取10,初始聚类中心取前10个训练样本。
MATLAB程序:
functionmain()
SamNum=200;
%训练样本数
TestSamNum=201;
%测试样本数
InDim=1;
%样本输入维数
ClusterNum=10;
%隐节点(聚类样本)数
Overlap=1.0;
%隐节点重叠系数κ
%根据目标函数获得样本输入输出
rand('
state'
sum(100*clock));
%resetsthegeneratortoadifferentstateeachtime
%且state不同产生的伪随机序列顺序不同
SamIn=14*rand(1,SamNum)-7;
SamOut=sin(SamIn);
TestSamIn=-7:
0.07:
7;
%[7-(-7)]/0.07+1=201个样本
TestSamOut=sin(TestSamIn);
figure
holdon
grid
plot(SamIn,SamOut,'
b+'
)
plot(TestSamIn,TestSamOut,'
k--'
)%绘制目标函数曲线
xlabel('
Inputx'
);
ylabel('
Outputy'
title('
基于聚类的RBF网络对函数y=sinx的逼近曲线'
),
Centers=SamIn(:
1:
ClusterNum);
%初始聚类中心取前10个训练样本
NumberInClusters=zeros(ClusterNum,1);
%各类中的样本数,初始化为0
IndexInClusters=zeros(ClusterNum,SamNum);
%各类所含样本的索引号
while1,
NumberInClusters=zeros(ClusterNum,1);
IndexInClusters=zeros(ClusterNum,SamNum);
%按最小距离原则对所有样本进行分类
fori=1:
SamNum
AllDistance=dist(Centers'
SamIn(:
i));
%求欧几里德距离
[MinDist,Pos]=min(AllDistance);
NumberInClusters(Pos)=NumberInClusters(Pos)+1;
%求各类样本的个数
IndexInClusters(Pos,NumberInClusters(Pos))=i;
end
%报存旧的聚类中心
OldCenters=Centers;
%重新计算各类的聚类中心
ClusterNum
Index=IndexInClusters(i,1:
NumberInClusters(i));
Centers(:
i)=mean(SamIn(:
Index)'
)'
;
%判断新旧聚类中心是否一致,如果是,则聚类结束
EqualNum=sum(sum(Centers==OldCenters));
%新旧聚类中心一致的个数
ifEqualNum==InDim*ClusterNum,
break,
end
%计算各隐节点的扩展常数(宽度)δi=κdi,其中di是Cj-Ci(k)的最小欧式距离
AllDistances=dist(Centers'
Centers);
%求隐节点数据中心间的距离(矩阵)
Maximum=max(max(AllDistances));
%找出其中最大的一个距离
fori=1:
ClusterNum%某一类的中心到自身的欧式距离是0,
AllDistances(i,i)=Maximum+1;
%但要找隐节点间的最小距离,
end%因此将对角线上的0替换为较大的值。
Spreads=Overlap*min(AllDistances)'
%以隐节点间的最小距离作为扩展常数
%计算各隐节点的输出权值
Distance=dist(Centers'
SamIn);
%计算各样本输入离各数据中心的距离
SpreadsMat=repmat(Spreads,1,SamNum);
%repmat径向基函数φj(.)
HiddenUnitOut=radbas(Distance./SpreadsMat);
%计算隐节点输出阵
HiddenUnitOutEx=[HiddenUnitOut'
ones(SamNum,1)]'
%考虑偏移
W2Ex=SamOut*pinv(HiddenUnitOutEx);
%求广义输出权值。
pinv求伪逆
W2=W2Ex(:
B2=W2Ex(:
ClusterNum+1);
W2
B2
%测试
TestDistance=dist(Centers'
TestSamIn);
TestSpreadsMat=repmat(Spreads,1,TestSamNum);
TestHiddenUnitOut=radbas(TestDistance./TestSpreadsMat);
TestNNOut=W2*TestHiddenUnitOut+repmat(B2,1,TestSamNum);
plot(TestSamIn,TestNNOut,'
r-'
四、输出结果
当隐节点重叠系数κ为1时,
W2=
Columns1through8
-0.97591.19561.24020.95091.3999-0.0311-0.13590.9232
Columns9through10
0.7913-0.1700
B2=
-0.8289
当隐节点重叠系数κ为2时,
7.6555-1.73260.01560.0815-11.83861.01880.78531.5740
9.3149-1.0047
-1.3042
五、结果分析
RBF网络的学习过程与BP网络的学习过程类似,两种网络中隐节点的非线性变换作用都是把线性不可分问题转化为线性可分问题,因此均可用于函数逼近和分类。
两者的主要区别在于各使用不同的激励函数,BP网络中隐层节点使用的是Sigmoid函数,其值在输入空间中无限大的范围内为非零值,因而是一种全局逼近的神经网络;
而RBF网络中的激励函数是Gaussian函数,是一种局部逼近的神经网络,其对于输入空间的某个局部区域只有少数几个连接权影响网络的输出,因而与BP网络相比,RBF网络学习速度更快。
聚类方法的优点是能根据各聚类中心之间的距离确定各隐节点的扩展常数,缺点是确定数据中心时只用到了样本输入信息,而没有用到样本输出信息;
另外聚类方法也无法确定聚类的数目(RBF网络的隐节点数)。
遗传算法MATLAB仿真
一、遗传算法(GA)的基本思想
基于达尔文进化论中的适者生存、优胜劣汰的基本原理,按生物学的方法将问题的求解表示成“种群(Population)”(用计算机编程时,一般使用二进制码串表示),从而构造出一群包括N个可行解的种群,将它们置于问题的“环境”中,根据适者生存原则,对该种群按照遗传学的基本操作,不断优化生成新的种群,这样一代代地不断进化,最后收敛到一个最适应环境的最优个体上,求得问题的最优解。
遗传算法可以形式化的描述如下:
GA=(P(0),N,l,s,g,p,f,t)
其中,P(0)=(P1(0),P2(0),…,Pn(0)),表示初始种群;
N表示种群中含有个体的个数;
l表示二进制串的长度;
s表示选择策略;
g表示遗传算子,通常它包括有选择(繁殖)算子Qr、杂交算子Qc和变异算子Qm;
p表示遗传算子的操作概率,它包括选择概率Pr、Pc和变异概率Pm;
f是适应度函数;
t是终止准则。
二、Holland遗传算法(SGA)
该算法的操作对象是一群被称为种群的二进制位串(称为染色体、个体)。
这里的每个染色体都对应求解问题的一个解。
SGA的基本思想是:
从初始种群出发,采用基于适应度比例的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。
如此一代代演化下去,直至满足期望的终止条件为止。
执行一个简单的遗传算法时,需要做以下的准备工作:
(1)根据问题的要求选取设计变量(即明确需要优化的参数或方案),变量的取值范围构成问题的解空间。
这是一个具体问题的数学抽象的过程。
(2)确定变量的约束条件。
(3)确定编码方案。
遗传算法求解问题不是直接作用在问题的解空间上,而是利用解的某种编码表示。
通常解(变量)空间中的一个解(变量)被编码成一个串,它是由组成这个解(变量)的一系列有效信息组成。
(4)确定适应度函数。
适应度值是对解的质量的度量,它是遗传算法对种群中的个体执行各种遗传操作的唯一的依据。
(5)确定选择策略。
个体的适应度值是策略中的主要依据,该步骤使适应度值大的解在下一代有较大的存活概率。
这种轮盘赌的选择策略具有正反馈特征,在自然界中也屡屡出现这样的现象,最后的结局是可怕的。
实际设计中还可以选择锦标赛选择策略或者排序选择策略等。
(6)确定控制参数。
它主要包括种群规模、执行不同遗传操作的概率以及其它一些辅助性控制参数。
(7)设计遗传算子。
进化算法中的遗传算子包括繁殖(选择)、杂交变异等操作。
(8)确定算法的条件终止准则。
三、Holland遗传算法流程图
四、遗传算法MATLAB仿真实例
例:
求下列函数的最大值f(x)=10*sin(5x)+7*cos(4x),x∈[0,10]。
其中将x的值用一个10位的二值形式表示。
分为八个部分:
1.初始化(编码)
initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),长度大小取决于变量的二进制编码的长度(在本例中取10位)。
子程序文件名:
initpop.m
%初始化
functionpop=initpop(popsize,chromlength)
pop=round(rand(popsize,chromlength));
%rand随机产生每个单元为{0,1}行数为popsize,列数为chromlength的矩阵,
%round对矩阵的每个单元进行取整。
产生初始种群。
2.计算目标函数值
(1)将二进制串<
b9b8…b0>
转化为相应的十进制,即
decodebinary.m
%产生[2^n2^(n-1)...1]的行向量,然后求和,将二进制转化为十进制
functionpop2=decodebinary(pop)
[px,py]=size(pop);
%求pop行和例数
py
pop1(:
i)=2.^(py-1).*pop(:
i);
py=py-1;
pop2=sum(pop1,2);
%求pop1的每行之和
(2)找到相应的实数x,即
其中0.0为区间[0,10]的左边界,10为区间长度。
decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置(对于多个变量而言,如有两个变量,采用20位表示,每个变量10位,则第一个变量从1开始,另一个变量从11开始。
本例为1),参数length表示所截取的长度(本例为10)。
decodechrom.m
%将二进制编码转换成十进制
functionpop2=decodechrom(pop,spoint,length)
pop1=pop(:
spoint:
spoint+length-1);
pop2=decodebinary(pop1);
(3)计算目标函数值
calobjvalue.m函数的功能是实现目标函数的计算。
calobjvalue.m
%实现目标函数的计算
function[objvalue]=calo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 主要内容 方法