人工神经网络的模型
人工神经网络的模型:人工神经元的模型、常用的激活转移函数、MP 模型神经元 人工神经元的主要结构单元是信号的输入、综合处理和输出 人工神经元之间通过互相联接形成网络,称为人工神经网络
神经元之间相互联接的方式称为联接模式。相互之间的联接强度由联接权值体现。 在人工神经网络中,改变信息处理及能力的过程,就是修改网络权值的过程。 人工神经网络的构造大体上都采用如下的一些原则: 由一定数量的基本神经元分层联接;
每个神经元的输入、输出信号以及综合处理内容都比较简单; 网络的学习和知识存储体现在各神经元之间的联接强度上。 神经网络解决问题的能力与功效除了与网络结构有关外,在很大程度上取决于网络激活函数。 人工神经网络是对人类神经系统的一种模拟。尽管人类神经系统规模宏大、结构复杂、功能神奇,但其最基本的处理单元却只有神经元。人工神经系统的功能实际上是通过大量神经元的广泛互连,以规模宏伟的并行运算来实现的。
人工神经网络模型至少有几十种,其分类方法也有多种。例如,若按网络拓扑结构,可分为无反馈网络与有反馈网络;若按网络的学习方法,可分为有教师的学习网络和无教师的学习网络;若按网络的性能,可分为连续型网络与离散型网络,或分为确定性网络与随机型网络;若按突触连接的性质,可分为一阶线性关联网络与高阶非线性关联网络。 人工神经网络的局限性: (1) 受到脑科学研究的限制:由于生理实验的困难性,因此目前人类对思维和记忆机制的认识还很肤浅,还有很多问题需要解决; (2) 还没有完整成熟的理论体系; (3) 还带有浓厚的策略和经验色彩; (4) 与传统技术的接口不成熟。
如果将大量功能简单的形式神经元通过一定的拓扑结构组织起来,构成群体并行分布式处理的计算结构,那么这种结构就是人工神经网络,在不引起混淆的情况下,统称为神经网络。 根据神经元之间连接的拓扑结构上的不同,可将神经网络结构分为两大类: 分层网络相互连接型网络
分层网络可以细分为三种互连形式: 简单的前向网络;
具有反馈的前向网络;
层内有相互连接的前向网络。
神经网络的学习分为三种类型:有导师学习、强化学习无导师学习
有导师学习:必须预先知道学习的期望结果——教师信 息,并依此按照某一学习规则来修 正权值。
强化学习:利用某一表示“奖/惩”的全局信号,衡量与强化输入相关的局部决策如何。 无导师学习:不需要教师信息或强化信号,只要给定输入信息,网络通过自组织调整,自学习并给出一定意义下的输出响应。
神经网络结构变化的角度,学习技术还可分为三种: 权值修正、拓扑变化、权值与拓扑修正 学习技术又还可分为:确定性学习、随机性学习 人工神经网络
人工神经网络是生物神经网络的某种模型(数学模型) ;是对生物神经网络的模仿 基本处理单元为人工神经元
生物神经元(neuron)是基本的信息处理单元
人工神经网络是对生物神经系统的模拟。
大量简单的计算单元(结点,神经元)以某种形式连接,形成一个网络.
其中某些因素,如:连接强度(连接权值,其大小决定信号传递强弱); 结点计算特性(激活特性, 神经元的输入输出特性); 甚至网络结构等, 可依某种规则随外部数据进行适当调整,最终实现某种功能。
神经网络的计算通过网络结构实现; 不同网络结构可以体现各种不同的功能; 网络结构的参数是通过学习逐渐修正的。
人工神经元模型的三要素:
⎧⎧权值>0,激活 ⎪一组连接 连接权值,突触连接强度⎨
⎩权值
⎪
⎨一个加法器 输入信号关于神经元突触的线性加权⎪
⎪ ⎪⎩一个激励函数 将神经元的输出信号限制在有限范围内
4. 神经网络三种基本模型
⎧(1)前馈型神经网络(feedfroward network )-重点介绍
⎪
⎪ 多层感知器3. 人工神经网络三个要素
⎪ BP网络⎪
⎪ RBF网络⎪⎧网络结构或拓扑(连接形式) ⎪⎨⎪
⎪(2)反馈网络(feedback network ) ⎨神经元的计算特性(传递函数)
⎪ Hopfield 网络⎪学习规则⎪⎩⎪
⎪3竞争学习网络competitive learning network
()⎪()
上述要素不同组合,形成各种神经网络模型⎪⎩ SOM 神经网络
神经网络特点 自学习 自适应 并行处理 分布表达与计算神经网络应用
⎧回归 神经网络本质上,可以理解为函数逼近⎨
⎩状态预测 可应用到众多领域, 如:
优化计算;信号处理;智能控制; 模式识别;机器视觉;等等。
前馈(forward)神经网络
各神经元接受来自前级的输入,并产生输出到下一级,无反馈,可用一有向无环图表示。 网络中的节点分两类:输入节点;计算节点(神经元节点) 节点按层(layer)组织 :
第i 层的输入只与第i-1层的输出相连。
输入信号由输入层输入, 由第一层节点输出,传向下层,„„ 前馈:信息由低层向高层单向流动。 可见层
输入层 (input layer) 输入节点所在层,无计算能力
输出层 (output layer) 节点为神经元隐含层( hidden layer) 中间层,节点为神经元
BP 神经网络训练的两个阶段 (1)信号正向传递过程
输入信息从输入层经隐层逐层、正向传递,直至得到各计算单元的输出 (2)误差反向传播过程
输出层误差从输出层开始,逐层、反向传播,可间接计算隐层各单元的误差,并用此误差修正前层的权值.
B P 算法训练过程描述约定:
(1)n 维标准化输入向量
T
x =[x 1, , x n ](2)L 层神经网络
层号l =0 输入层层号l =1,..., L -2 隐含层层号l =L -1 输出层
(3)各层节点(输入节点,计算节点)数目n l
输入层n 0=n
输出层n L -1=m
l =0,1,..., L -1
(4)相邻层连接权值
l
ωij --来自第l -1层的节点i 与当前第l 层节点j 的连接权值
BP 算法训练过程描述
(5)假定:第l 层为当前处理层;
其前一层l -1、当前层l 、后一层l +1的计算单元序号为i, j,k ; 位于当前层第j 个计算单元的输出为O l j ,j =1,..., n l
l 前层第i 个单元到本层第j 个单元的连接权值为ωij , i =1,..., n l -1+1 本层第j 个单元到后层第k 个单元的连接权值为ωl jk , k =1,..., n l +1
注:采用梯度法修正权值,输出函数应连续可微,选sigm oid
函数。
BP 算法步骤
⎧训练样本 (输入向量, 期望输出),如(x p , D p )⎪
⎪权值初始化 "小随机数" (如:±0.3之间)首先明确⎨
⎪学习步长η 通常固定0.1~0.3之间;也可动态调整 ⎪
⎩惯性(冲量)项系数α 通常0.9~1之间⎧确定神经网络结构,包括⎪
⎪ 输入层节点数;隐含层数目;各隐含层节点数目;⎪ 输出层节点数;各神经元节点的激活函数⎪⎪⎪样本集的标准化处理;STEP 1⎨
⎪设定终止条件:最大可允许迭代次数(硬条件);⎪ 训练精度(软条件)⎪
⎪以小随机数初始化网络权值;⎪⎪⎩记训练时间时间t =0
BP 算法步骤(续)
STEP 2:重复如下过程直至满足算法终止条件
(1)按随机或任意顺序从训练集中抽取1个训练样本(x , D )
T
样本输入 x =[x 1, , x n ]∈R n
T
期望输出 D =[d 1, , d m ]∈R m
T
(2)计算输入x 时,当前网络的实际输出 y =[y 1, , y m ]
⎛n L -2l =L -1⎛n 1l =2⎛n l =1⎫⎫⎫y r =f ∑ωsr f ∑ωjk f ∑ωi j x i ⎪⎪⎪
s =1
⎝i =1⎭⎭⎪⎝j=1⎝⎭1⎧
激活函数 f α=()⎪1+e -α⎪其中⎨-e -α
=f (α)(1-f (α))⎪f ' (α)=-
-α⎪1+e ⎩
r =1,..., m
BP 算法步骤
(3) 从输出层开始调整权值,具体为:
对于第l 层,修正权值
l ωij (t +1)=ωij l (t )+∆ωij l (t )
i =1,..., n l -1 j =1,..., n l
l 权值修正项 ∆ωij (t )=-ηδj l x i l -1
⎧输出层(l =L -1)δj l =y j (1-y j )(d j -y j )
⎪
⎪ j =1,..., m ⎪n l +1 ⎨
l l l l +1l +1
⎪中间层(1≤l
k =1⎪
⎪⎩ j =1,..., n l
B P 算法步骤
(4) 更新全部权值,对所有训练样本重新计算输出;
计算更新后网络输出与期望输出的误差; 检查算法终止条件
⎧⎪若不满足终止条件,则 t ←t +1, 转向(1) ⎨⎪⎩若条件满足,则终止,转向STEP3STEP3:算法结束. 输出各层连接权值。
终止条件可以是如下之一:
⎧(1)网络实际输出与期望输出总误差
⎨(2)最近1轮训练中所有权值变化最大值
⎩(3)算法达到最大允许的总训练次数 = 阈值3
BP 网络的优点
①特别适合于求解内部机制复杂的问题
BP 网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能 ②具有自学习能力
网络能通过学习带正确答案的实例集自动提取“合理的”求解规则 ③网络具有一定的推广、概括能力。 BP 网络的问题,如: ①BP 算法的学习速度较慢 ②网络训练失败的可能性较大
③网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。
④网络的预测能力(泛化能力、推广能力)与训练能力(逼近能力、学习能力)的矛盾 回归估计
例:基于BP 神经网络的公路运量(客运量、货运量) 预测 公路运量与该地区人数、机动车数量、公路面积有关。 已知某地区20年的公路运量有关数据,对于未来某两年,若明确该地区人数、机动车数量、公路面积,要求:预测该地区的公路运量。 分析:
(1)明确模型输入输出关系 (2)建模:
原始数据读取;数据标准化处理;网络训练; (3)模型评价:
对原始数据仿真,明确预测误差 (4)输出预测结果:对新数据预测结果 牛顿法及其收敛性
牛顿法是一种线性化方法,其基本思想是将非线性方程 逐步归结为某种线性方程来求解. 设已知方程 将函数
f (x )
有近似根
(假定
f '(x k ) ≠0
) ,
在点
x k
展开,有
f (x ) ≈
f (x k ) +f '(x k )(x -x k ),
f (x ) =0
于是方程
'
可近似地表示为f (x k ) +f (x k )(x -x k ) =0.
这是个线性方程,记其根为
x k +1
,则
x k +1
的计算公式为
x k +1
f (x k )
=x k -
f '(x k )
(k =0, 1, ),
交叉演化算法代码实现
%F0是变异率 %Gm 最大迭代次数 Gm = 10000; F0 = 0.5; Np = 100;
CR = 0.9; %交叉概率 G= 1; %初始化代数
D = 10; %所求问题的维数
Gmin = zeros(1,Gm); %各代的最优值 best_x = zeros(Gm,D); %各代的最优解 value = zeros(1,Np);
%产生初始种群 xmin = -5.12; xmax = 5.12; function y = f(v) %Rastrigr 函数
y = sum(v.^2 - 10.*cos(2.*pi.*v) + 10);
X0 = (xmax-xmin)*rand(Np,D) + xmin; %产生Np 个D 维向量 XG = X0;
XG_next_1= zeros(Np,D); %初始化 XG_next_2 = zeros(Np,D); XG_next = zeros(Np,D);
while G
%产生j,k,p 三个不同的数 a = 1; b = Np;
dx = randperm(b-a+1) + a- 1; j = dx(1);
k = dx(2);
p = dx(3);
%要保证与i 不同 if j == i
j = dx(4); else if k == i k = dx(4); else if p == i p = dx(4); end end end
%变异算子
suanzi = exp(1-Gm/(Gm + 1-G)); F = F0*2.^suanzi;
%变异的个体来自三个随机父代
son = XG(p,:) + F*(XG(j,:) - XG(k,:)); for j = 1: D
if son(1,j) >xmin & son(1,j)
XG_next_1(i,j) = (xmax - xmin)*rand(1) + xmin; end end end
%-交叉操作 for i = 1: Np
randx = randperm(D);% [1,2,3,...D]的随机序列 for j = 1: D
if rand > CR & randx(1) ~= j % CR = 0.9 XG_next_2(i,j) = XG(i,j); else
XG_next_2(i,j) = XG_next_1(i,j); end end end
%-选择操作 for i = 1:Np
if f(XG_next_2(i,:))
XG_next(i,:) = XG_next_2(i,:);
else
XG_next(i,:) = XG(i,:); end end
%找出最小值 for i = 1:Np
value(i) = f(XG_next(i,:)); end
[value_min,pos_min] = min(value);
%第G 代中的目标函数的最小值 Gmin(G) = value_min;
%保存最优的个体
best_x(G,:) = XG_next(pos_min,:);
XG = XG_next; trace(G,1) = G;
trace(G,2) = value_min; G = G + 1; end