神经网络原理与控制.pptx
2014/3/21 Friday第五章 NN1 第五章 神经网络原理 5.1 神经网络的基本概念 5.2 前向神经网络及主要算法 5.3 反馈网络 5.4 神经网络控制 2014/3/21 Friday第五章 NN2 神经系统 的复杂性 2014/3/21 Friday第五章 NN3 2014/3/21 Friday第五章 NN4 分子 2014/3/21 Friday第五章 NN5 突触 2014/3/21 Friday第五章 NN6 单个神经元 2014/3/21 Friday第五章 NN7 神经网络 2014/3/21 Friday第五章 NN8 信息处理 2014/3/21 Friday第五章 NN9 5.1 神经网络的基本概念 5.1.1 生物神经元 n人的大脑由1012个神经元构成,神经元互相连 接成神经网络 n神经元组成细胞体为主体 n神经元功能刺激、兴奋、传导、效应 n形状图 n突触传递信息特点 2014/3/21 Friday第五章 NN10 形状图 2014/3/21 Friday第五章 NN11 5.1.2 人工神经元模型 BNN 信息传递过程 为 MISO 系统,信号为 脉冲,当脉冲到达突触前膜时,前膜释 放化学物质,结果在突触后产生突触后 电位,其大小与脉冲密度有关(时间总 合效应)。 各通道都对电位产生影响(空间总合效 应) 2014/3/21 Friday第五章 NN12 BNN 脉冲, ANN 模拟电压 nANN等效模拟电压近似BNN脉冲密度,仅有空间 累加无时间累加(可认为时间累加已隐含于等效 模拟电压之中) nANN中未考虑时延、不应期及疲劳等 可建立更为精确的模型,但一般NN研究无此必要 (方法论) 2014/3/21 Friday第五章 NN13 人工神经元模型 BNN 信息传递过程 为 MISO 系统, 信号为脉 冲,当脉冲到达突触前膜时,前膜释放化学 物质,结果在突触后产生突触后电位,其大 小与脉冲密度有关(时间总合效应)。 各通道都对电位产生影响(空间总合效应 )。 2014/3/21 Friday第五章 NN14 单个神经元特性 神经元的膜电位与时间关系如下 spike 2014/3/21 Friday第五章 NN15 实际神经元记录膜电位 Recording from a real neuron membrane potential 2014/3/21 Friday第五章 NN16 神经元模型(1) n神经元是人工神经网络的基本处理单元,它一般是 一个多输入多输入/ /单输出单输出的非线性元件。神经元输出除 受输入信号的影响之外,同时也受到神经元内部其 他因素的影响,所以在人工神经元的建模中,常常 还加有一个额外输入信号,称为偏差(偏差(biasbias),),有 时也称为门限值或阈值(阈值(thresholdthreshold))。 2014/3/21 Friday第五章 NN17 神经元模型(2) n 。 2014/3/21 Friday第五章 NN18 抽象可得数学表达式 yσs 5-2 式中 ωi 加权值(weights θ阀值(threshold) σs 作用函数(activated transfer function) 2014/3/21 Friday第五章 NN19 几种常用的作用函数 1、阈值型(硬限制型 2、线性型 3、S型函数(Sigmoid) 4、辐射基函数 2014/3/21 Friday第五章 NN20 1、阈值型(硬限制型) 生物学背景 神经细胞的 兴奋与抑制兴奋与抑制; 单极性单极性 2014/3/21 Friday第五章 NN21 生物学背景 神经细胞的 兴奋与抑制兴奋与抑制 双极性双极性 2014/3/21 Friday第五章 NN22 2、线性型 a 全线性 n 生物学背景 神经细胞的 比例作用比例作用(全(全 方位)方位) 2014/3/21 Friday第五章 NN23 b 正线性 生物学背景 神经细胞的 线性比例作用线性比例作用 (单方向)(单方向) 2014/3/21 Friday第五章 NN24 3、S型函数(Sigmoid) a 对数正切 y1/e-n1 生物学背景 神经细胞的非 线性比例作用 (单向) 2014/3/21 Friday第五章 NN25 b双曲正切 ytanhn 生物学背景 神经细胞的 非线性非线性比例作比例作 用(全方位)用(全方位) 2014/3/21 Friday第五章 NN26 (4)辐射基函数 a 高斯函数 生物学背景 视觉,听觉等 类神经细胞的 区域性非线性区域性非线性 用用 2014/3/21 Friday第五章 NN27 b三角波函数 生物学背景 视觉,听觉等 类神经细胞的 区域性非线性区域性非线性 用的线性近似用的线性近似 2014/3/21 Friday第五章 NN28 5.2.2 人工神经网络的构成 n基本模型 n连接的几种基本形式 n前向网络(feed-forward Networks) n回归网络(recurrent Networks) n互联网络(全互连与局部互连) n也可是以上几种形式的组合 2014/3/21 Friday第五章 NN29 人工神经网络种类 1. 前向型 感知器、线性网络(ADALINE, BP网络 RBF 网络, 2. 反馈型 Hopfield 网络 3. 竞争型 ART , SOFM等 2014/3/21 Friday第五章 NN30 Perceptron 应用举例 1。水果分类 Matlab 演示 nnd3pc.m (chap 3 ) 2014/3/21 Friday第五章 NN31 复习与讲解 复习复习 1)BNN特点 2)ANN原理-类型,作用函数 讲解讲解 1)学习算法 2)ANN 与自动控制 3)感知器网络 2014/3/21 Friday第五章 NN32 前向型神经网络基本模型 2014/3/21 Friday第五章 NN33 前向网络 n结构图 2014/3/21 Friday第五章 NN34 前向网络特点 1. 神经元分层排列,可又多层 2. 层间无连接 3. 方向由入到出 多层感知器(BP)网络 (perceptron/BP即为 此) 应用最为广泛 2014/3/21 Friday第五章 NN35 回归网络 全反馈结构图 2014/3/21 Friday第五章 NN36 Inner RNN结构图 2014/3/21 Friday第五章 NN37 回归网络特点 nOutput 与 相连(全反馈) 特点1. 内部前向 2. 输出反馈到输入 例 Fukushima网络 nInner recurrent 特点层间元互相连接 2014/3/21 Friday第五章 NN38 互联网络 n结构图 2014/3/21 Friday第五章 NN39 互联网络特点 n每个元都与其它元相连 例 Hopfield Boltzmann机 2014/3/21 Friday第五章 NN40 Hopfield反馈神经网络结构 2014/3/21 Friday第五章 NN41 反馈网络特点 n系统反馈动力学系统,有一稳定时间 n作用联想记忆,求解优化问题 2014/3/21 Friday第五章 NN42 ANN与BNN的比较 BNNANN 单元上差别 影响因素多 忽略了影响 关系简单 信息上差别 脉冲模拟电压 规模及智能 大, 高 小 H a 1 tansig IW 1,1 p 1 b 1 tansigxtanhxex-e-x/exe-x nH-O a 2 purelin LW 2,1 a 1 b 2 输入层神经元个数n n隐含层神经元个数s1 n输出层神经元个数s2 2014/3/21 Friday第五章 NN80 学习(训练)的基本原理 采用最小二乘方法,利用梯度搜索技术,使网络 的实际输出值与期望输出值的误差均均方值最 小。 基本的EBP算法是极小化二次性指标函数E而得 到的。 2014/3/21 Friday第五章 NN81 学习(训练) n输入q组样本 p1,p2,.,pq pi∈Rn n期望输出 T1,T2,.,Tq, T ∈Rs2 n网络输出a21,a22,.,a2qa2∈Rs2 n 均方误差 向量情况 2014/3/21 Friday第五章 NN82 BP算法流程(学习算法) 由两部分组成信息的正向传播和误差的反向传播。 在正向传播过程中,输入信息从输入经隐含层逐层计算 传向输出层,每一层神经元的状态只影响下一层的神 经元的状态。 如果在输出层没有得到期望的输出,则计算输出层的误 差变化值,然后转向反向传播,通过网络将误差信号 沿原来的连接通道反传回来修改各层神经元的权值直 到达到期望目标。 2014/3/21 Friday第五章 NN83 学习过程 设输入为P,输入神经元有r个,隐含层内有s1个 神经元,作用函数为f1,输出层内有s2个神经 元,对应的作用函数为f2,输出为A,目标为T 。 2014/3/21 Friday第五章 NN84 学习(训练)2 n解决方法 误差最小 n实质为一个优化问题 n思路1 梯度法gradient n找出误差与加权系数的关系 n得到加权系数改变的规律 2014/3/21 Friday第五章 NN85 梯度法原理1 1.对无约束极值问题 设 FX二次可微, 具有极小点X*, 2014/3/21 Friday第五章 NN86 梯度法原理2 2014/3/21 Friday第五章 NN87 最速下降法,要求E的极小点 wij E 0,此时Δwij0 wij 2014/3/21 Friday第五章 NN88 学习训练算法(思路) 近似最陡下降法 2014/3/21 Friday第五章 NN89 链式法则 例 应用于梯度计算 2014/3/21 Friday第五章 NN90 1)信息的正向传递 隐含层中的第i个神经元的输出为 输出层第k个神经元的输出为 定义误差函数为 2014/3/21 Friday第五章 NN91 学习训练算法--学习训练算法-- 正向传播正向传播 I-H H-O 2. 计算误差 ektk-a2k 2014/3/21 Friday第五章 NN92 寻找加权系数改变与误差的关系 考虑一个样本输入到网络的情况,此时误差 平方和为 1。输出层权系数的调整(误差与输出层关系 直接) net2k 2014/3/21 Friday第五章 NN93 定义 因为 式中 2014/3/21 Friday第五章 NN94 小结 2014/3/21 Friday第五章 NN95 隐含层权系数的修正 ANi ANk ANj w1ijδ1i δ21 w2k1 w2kiδ2k w2km δ2m 输入层 输出层 隐含层 2014/3/21 Friday第五章 NN96 隐含层权系数的修正 误差e与w1无显函数关系,采用链式法则找关系 2014/3/21 Friday第五章 NN97 不能直接计算,需通过 其他量间接计算 2014/3/21 Friday第五章 NN98 隐含层权值修正小结 2014/3/21 Friday第五章 NN99 总结 输出节点k 隐含节点j 统一形式 2014/3/21 Friday第五章 NN100 BP算法解释 输出层误差 ejj1s2 隐含层误差 eii1n1 ei与ej的关系 ei可以认为是由ej加权组合形成的。由于作用函 数的存在,ej的等效作用为δ j δ iejf 2014/3/21 Friday第五章 NN101 初始化 加输入和期望输出 计算隐层和输出层的输出 迭代次数加1 调节输出层和隐层的连接权值 改变训练样板 训练样终止 迭代终止 BP算法的基本流程 No No y y 2014/3/21 Friday第五章 NN102 n导数 nlogsig matlab 函数dA_dN dlogsigN,A ntansig nmatlab 函数dA_dN dtansigN,A 2014/3/21 Friday第五章 NN103 复习 n感知器网络-- 分类 nBP网络--分类与函数逼近 反向传播学习算法,调整权值。 讲解 1)示例 2)MATLAB 实现 2014/3/21 Friday第五章 NN104 示例 函数逼近 1-2-1 Network - t a e x g x 1/x 2014/3/21 Friday第五章 NN105 2014/3/21 Friday第五章 NN106 修正公式 1.前向计算 2.权值修正 2014/3/21 Friday第五章 NN107 具体步骤(一步一步) 前向计算(输入-输出计算) y=1/11 s1w1*xb11.0*1.001.0; s2w2*xb2-1.0*1.00-1.0 z1logsigs1 logsig 1.0 0.7311; z2 logsig s2 logsig-1.0 0.2689 tv1*z1v2*z2b 0.73110.26890.51.5 误差计算 e1-1.5-0.5 2014/3/21 Friday第五章 NN108 输出层权值修正O-I ØΔV1=η*e*z1=0.1*-0.5*0.7311-0.0366, ØV1 V1ΔV10.5-0.03660.4634 ØΔV2=η*e*z2=0.1*-0.5*0.2689-0.0134, ØV2 V2ΔV20.5-0.01340.4866 ØΔbη*e0.1*-0.5 -0.05 Ø bb+Δb=0.5-0.050.495 2014/3/21 Friday第五章 NN109 隐含层权值修正 nΔw1η*v1*e*f’s1*xη*e*v1*z1*1-z1*x 0.1*0.4634*-0.5*0.7311*1-0.7311*1 -0.0046 n w1w1Δw11.0-0.00460.9954 nΔw2η*v2*e*f’s2*xη*e*v2*z2*1-z2*x 0.1*0.4686*-0.5*0.2689*1-0.2689*1 -0.0046 nw2w2Δw1-1.0-0.0046 -1.0046 nb1b1Δb10-0.0046-0.0046; nb2b2Δb20-0.0046-0.0046; 2014/3/21 Friday第五章 NN110 示例 函数逼近 nnd11bc.m 1-2-1 Network - t a e p 2014/3/21 Friday第五章 NN111 网络 1-2-1 网络 a p 参看matlab工具箱演示例子 Nnd11bc.m 演示训练过 程 nndemos (chap11 demo2 2014/3/21 Friday第五章 NN112 2014/3/21 Friday第五章 NN113 Matlab 例 Nnd11bc.m 演示训练过程 nndemos( chap11 demo2) 2014/3/21 Friday第五章 NN114 初始条件 2014/3/21 Friday第五章 NN115 前向传播 2014/3/21 Friday第五章 NN116 反向传播 s 1 F’n1 W2 T s 2 1 a1 1 – a1 1 0 01 a2 1 – a2 1 0.09 0.17– 2.522– 2014/3/21 Friday第五章 NN117 权值更新 2014/3/21 Friday第五章 NN118 示例3两层XOR网络【模式分类 】 x1x2y 000 011 101 110 2014/3/21 Friday第五章 NN119 输入输出关系 2014/3/21 Friday第五章 NN120 加权值修改Vi 2014/3/21 Friday第五章 NN121 加权值修改Wij 2014/3/21 Friday第五章 NN122 具体计算步骤 见matlab程序 Bpxor2_demo_step.m 的执行过程 2014/3/21 Friday第五章 NN123 bpxor2_demo_step.m BP神经网络解决异或问题 采用的一个2-2-1的网络 clear clc BP_LEARNING 0.1; 学习 速率为0.1 wish_error 0.002; 期望误 差 studytimes 20000; 定义最 大学习次数 resultzeros1,4; 生成一个 矩阵,存放最后的输出结果 P [0 0 1 1; 0 1 0 1]; T [0 1 1 0]; 初始化神经网络隐含层的权 值和域值 根据权值下标,例如weight12表 示第一个输入对隐含层第二个神经元 的权值 weight11 rands1 weight21 rands1 weight12 rands1 weight22 rands1 b1 rands1 b2 rands1 初始化输出层的权值和域值 weight1 rands1 weight2 rands1 b rands1 pause 2014/3/21 Friday第五章 NN124 开始训练网络 for i1studytimes; real_error 0; 初始化中间变量修改权值的变 量的累加值 change_b10;change_b20;change _b0; change_weight110;change_weight 210;change_weight120;change_ weight220; change_weight10;change_weight2 0; for j14; 前向计算 第一个隐含层神经元的输出 hidelayer1 weight11*P[1],[j] weight21*P[2],[j] b1 经过 S 函数之后的输出 S_hidelayer1 1/1exp- hidelayer1; 第二个隐含层神经元的输出 hidelayer2 weight12*P[1],[j] weight22*P[2],[j] b2 经过 S 函数之后的输出 S_hidelayer2 1/1exp- hidelayer2 输出层的输出-线性输出 outlayer weight1*S_hidelayer1 weight2*S_hidelayer2 b 计算误差 deta Tj-outlayer 2014/3/21 Friday第五章 NN125 计算输出层加权值 W1,W2,偏置值b的修正量 change_weight1 change_weight1 BP_LEARNING*S_hidelayer1*deta change_weight2 change_weight2 BP_LEARNING*S_hidelayer2*deta change_b change_b BP_LEARNING*deta 计算隐含层第一个神经元权值的deta1 deta1 S_hidelayer1*1-S_hidelayer1*weight1*deta 计算隐含层第二个神经元权值的deta2 deta2 S_hidelayer2*1-S_hidelayer2*weight2*deta 计算输出层加权值 W11,W21, W12,W22,偏置值b1,b2的修正量 偏置值b1,b2修正量的累加 change_b1 change_b1 BP_LEARNING*deta1 change_b2 change_b2 BP_LEARNING*deta2 权值 W11,W21, W12,W22修正量的累加 change_weight11 change_weight11 BP_LEARNING*P[1],[j]*deta1 change_weight21 change_weight21 BP_LEARNING*P[2],[j]*deta1 change_weight12 change_weight12 BP_LEARNING*P[1],[j]*deta2 change_weight22 change_weight22 BP_LEARNING*P[2],[j]*deta2 判断误差 real_error real_error Tj-outlayer*Tj-outlayer end 2014/3/21 Friday第五章 NN126 开始调整权值 b1 b1 change_b1 b2 b2 change_b2 b b change_b weight11 weight11 change_weight11 weight21 weight21 change_weight21 weight12 weight12 change_weight12 weight22 weight22 change_weight22 weight1 weight1 change_weight1 weight2 weight2 change_weight2 if real_error traingdm/a/x-trainlm