神经网络基于BP网络的多层感知器实验报告

合集下载

神经网络基于BP网络的多层感知器实验报告

神经网络基于BP网络的多层感知器实验报告

神经网络基于BP网络的多层感知器实验报告二、基于BP网络的多层感知器一:实验目的:1、理解多层感知器的工作原理2、通过调节算法参数了解参数的变化对于感知器训练的影响3、了解多层感知器局限性二:实验原理:BP的基本思想:信号的正向传播误差的反向传播–信号的正向传播:输入样本从输入层传入,经各隐层逐层处理后,传向输出层。

–误差的反向传播:将输入误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号来作为修正各单元权值的依据。

1、基本BP算法的多层感知器模型:2、BP学习算法的推导:当网络输出与期望输出不等时,存在输出误差E将上面的误差定义式展开至隐层,有进一步展开至输入层,有调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,即η∈(0,1)表示比例系数,在训练中反应学习速率 BP算法属于δ学习规则类,这类算法被称为误差的梯度下降(Gradient Descent)算法。

<实验步骤>1、用Matlab编程,实现解决该问题的单样本训练BP网络,设置一个停止迭代的误差Emin和最大迭代次数。

在调试过程中,通过不断调整隐层节点数,学习率η,找到收敛速度快且误差小的一组参数。

产生均匀分布在区间[-4,4]的测试样本,输入建立的模型得到输出,与Hermit多项式的期望输出进行比较计算总误差(运行5次,取平均值),并记录下每次迭代结束时的迭代次数。

(要求误差计算使用RME,Emin 设置为0、1)程序如下:function dyb %单样本程序 clc; close all; clear; x0=[1:;-4:0、08:4];%样本个 x0(1,:)=-1; x=x0'; yuzhi=0、1;%阈值j=input('请输入隐层节点数 j = ');%隐层节点数 n=input('请输入学习效率 n = ');%学习效率 w=rand(1,j); w=[yuzhi,w]; %输出层阈值 v=rand(2,j); v(1,:)=yuzhi;%隐层阈值err=zeros(1,); wucha=0; zhaosheng=0、01*randn(1,);%噪声erro=[]; ERRO=[];%误差,为画收敛曲线准备 Emin=0、1;d=zeros(1,); for m=1: d(m)=hermit(x(m,2));%期望 end;o=zeros(1,); j=zeros(1,j); =zeros(1,j); p=1; q=1; azc=0; acs=0; for z=1:5 while q<30000 Erme=0; for p=1:y=zeros(1,j); for i=1:j j(1,i)=x(p,:)*v(:,i);y(1,i)=1/(1+exp(-j(1,i))); end; y=[-1 y];o(p)=w*y'+zhaosheng(p);%噪声 wucha = d(p)-o(p);err(1,p)=1/2*wucha^2; erro=[erro,wucha]; for m=1:j+1w(1,m)=w(1,m)+n*wucha*y(1,m); end; for m=1:jv(:,m)=v(:,m)+n*wucha*w(1,m)*y(1,m)*(1-y(1,m))*x(p,:)'; end q=q+1; end; for t=1:; Erme=Erme+err(1,t); end;err=zeros(1,); Erme=sqrt(Erme/); ERRO=[ERRO,Erme]; ifErme<Emin break; end; end; azc=azc+Erme; acs=acs+q; end disp('最终误差:'); pinjunwucha=1/5*azc figure(1);plot(x(:,2),d,'--r'); hold on; plot(x(:,2),o,'--b'); disp('次数:'); pjcx=1/5*acs figure(2); plot(ERRO); figure(3); plot(x(:,2),d,'--rp');endfunction F =hermit(x)%hermit子函数 F =1、1*(1-x+2*x^2)*exp(-x^2/2);end运行结果如下:表格1、单样本BP算法平均最小误差学习率结点数0、050、070、10、120、150、1880、09650、08590、019530、09450、08740、0925100、09680、09440、09830、09200、08210、0982120、08860、08560、08850、09460、08340、0928150、09150、09270、08780、09240、07380、08442、实现解决该问题的批处理训练BP网络,调整参数如上。

BP神经网络实验报告

BP神经网络实验报告

作业8编程题实验报告(一)实验内容:实现多层前馈神经网络的反向传播学习算法。

使用3.2节上机生成的数据集对神经网络进行训练和测试,观察层数增加和隐层数增加是否会造成过拟合。

(二)实验原理:1)前向传播:以单隐层神经网络为例(三层神经网络),则对于第k 个输出节点,输出结果为:在实验中采用的激励函数为logistic sigmoid function 。

考虑每一层节点中的偏差项,所以,在上式中:)()(00,1l l j b w x ==在实验中,就相应的需要注意矢量形式表达式中,矢量大小的调整。

2)BP 算法:a) 根据问题,合理选择输入节点,输出节点数,确定隐层数以及各隐层节点数;b) 给每层加权系数,随机赋值;c) 由给定的各层加权系数,应用前向传播算法,计算得到每层节点输出值,并计算对于所有训练样本的均方误差;d) 更新每层加权系数:其中,⎪⎩⎪⎨⎧⋅⋅⋅-=∑+j i ji l i l i i i l i a h w a h d y 其它层,最后一层)('(),(')()1()()(δδe) 重复c),d )迭代过程,直至迭代步数大于预设值,或者每次迭代误差变化值小于预设值时,迭代结束,得到神经网络的各层加权系数。

(三)实验数据及程序:1)实验数据处理:a) 训练样本输入节点数据:在实验中,所用数据中自变量x 的取值,为0—1的25个随机值,为了后续实验结果的分析,将其从小到大排序,并加上偏差项,神经网络的输出节点最终训练结果,即为训练得到的回归结果;b) 训练样本标签值:在实验中,采用的激励函数为logistic sigmoid function ,其值域为[0,1],所以,在神经网络训练前,需要对训练样本标签值进行归一化处理;c) 神经网络输出节点值:对训练样本标签值进行了归一化处理,相应的,对于输出节点,需要反归一化处理。

2)实验程序:实现函数:[Theta]=BP(input_layer_size,hidden_layer_size,hidden_layer_num,num_labels,Niter,leta,X,Y)输入参数:input_layer_size:输入节点数;hidden_layer_size:隐层节点数(对于单隐层,输入值为一数值,对于多隐层,为一矢量);hidden_layer_num:隐层数;num_labels:输出节点数;Niter:为预设的迭代步数;leta:学习速率,即更新步长;X,Y:分别为训练样本输入特征值以及标签值。

感知器和BP网络设计及应用

感知器和BP网络设计及应用

学号:1001314197人工神经网络实验报告实验一感知器和BP网络设计及应用实验1 感知器和BP网络设计及应用题目一初步认识Matlab人工神经网络工具箱一、实验目的初步了解人工神经网络工具箱。

二、实验容认识人工神经网络工具箱包含的主要功能函数及分类。

三、实验步骤(1) 在命令窗口键入help nnet(2) 描述人工神经网络工具箱划分的主要函数模块,并在每类下挑选3-4个函数,说明其主要功能。

四、实验结果>> help nnetNeural Network ToolboxVersion 6.0 (R2008a) 23-Jan-20081.Graphical user interface functions.图形用户界面函数nnstart - Neural Network Start GUI 神经网络启动图形用户界面GUInctool - Neural network classification tool 神经网络分类工具nftool - Neural Network Fitting Tool 神经网络拟合工具nntraintool - Neural network training tool 神经网络训练工具work creation functions. 网络生成函数cascadeforwardnet – Cascade-forward neural network. 级联神经网络competlayer - Competitive neural layer. 竞争神经层distdelaynet - Distributed delay neural network. 分布式延迟神经网络elmannet - Elman neural network. Elman 神经网络ing networks. 网络使用network - Create a custom neural network. 创建一个定制的神经网络sim - Simulate a neural network. 模拟神经网络init - Initialize a neural network. 初始化一个神经网络adapt - Allow a neural network to adapt. 神经网络的适应train - Train a neural network. 训练一个神经网络4.Simulink support. 仿真支持gensim - Generate a Simulink block to simulate a neural network. 生成Simulink模块来模拟神经网络setsiminit - Set neural network Simulink block initial conditions 设置神经网络Simulink模块初始条件getsiminit - Get neural network Simulink block initial conditions 获得神经网络Simulink模块初始条件neural - Neural network Simulink blockset. 神经网络Simulink 模块集5.Training functions. 训练函数trainb - Batch training with weight & bias learning rules. 批处理具有权重和偏差学习规则的训练trainbfg - BFGS quasi-Newton backpropagation. BFGS 拟牛顿反向传播trainbr - Bayesian Regulation backpropagation. 贝叶斯规则的反向传播trainbu - Unsupervised batch training with weight & bias learning rules. 无监管的批处理具有权重和偏差学习规则的训练6.Plotting functions. 绘图函数plotconfusion - Plot classification confusion matrix. 图分类混淆矩阵ploterrcorr - Plot autocorrelation of error time series. 误差自相关时间序列图ploterrhist - Plot error histogram. 误差直方图plotfit - Plot function fit. 绘图功能(函数)配合题目2 感知器的功能及初步设计一、实验目的掌握感知器的功能。

人工智能实验报告-BP神经网络算法的简单实现[参照]

人工智能实验报告-BP神经网络算法的简单实现[参照]

人工神经网络是一种模仿人脑结构及其功能的信息处理系统,能提高人们对信息处理的智能化水平。

它是一门新兴的边缘和交叉学科,它在理论、模型、算法等方面比起以前有了较大的发展,但至今无根本性的突破,还有很多空白点需要努力探索和研究。

1人工神经网络研究背景神经网络的研究包括神经网络基本理论、网络学习算法、网络模型以及网络应用等方面。

其中比较热门的一个课题就是神经网络学习算法的研究。

近年来己研究出许多与神经网络模型相对应的神经网络学习算法,这些算法大致可以分为三类:有监督学习、无监督学习和增强学习。

在理论上和实际应用中都比较成熟的算法有以下三种:(1) 误差反向传播算法(Back Propagation,简称BP 算法);(2) 模拟退火算法;(3) 竞争学习算法。

目前为止,在训练多层前向神经网络的算法中,BP 算法是最有影响的算法之一。

但这种算法存在不少缺点,诸如收敛速度比较慢,或者只求得了局部极小点等等。

因此,近年来,国外许多专家对网络算法进行深入研究,提出了许多改进的方法。

主要有:(1) 增加动量法:在网络权值的调整公式中增加一动量项,该动量项对某一时刻的调整起阻尼作用。

它可以在误差曲面出现骤然起伏时,减小振荡的趋势,提高网络训练速度;(2) 自适应调节学习率:在训练中自适应地改变学习率,使其该大时增大,该小时减小。

使用动态学习率,从而加快算法的收敛速度;(3) 引入陡度因子:为了提高BP 算法的收敛速度,在权值调整进入误差曲面的平坦区时,引入陡度因子,设法压缩神经元的净输入,使权值调整脱离平坦区。

此外,很多国内的学者也做了不少有关网络算法改进方面的研究,并把改进的算法运用到实际中,取得了一定的成果:(1) 王晓敏等提出了一种基于改进的差分进化算法,利用差分进化算法的全局寻优能力,能够快速地得到BP 神经网络的权值,提高算法的速度;(2) 董国君等提出了一种基于随机退火机制的竞争层神经网络学习算法,该算法将竞争层神经网络的串行迭代模式改为随机优化模式,通过采用退火技术避免网络收敛到能量函数的局部极小点,从而得到全局最优值;(3) 赵青提出一种分层遗传算法与BP 算法相结合的前馈神经网络学习算法。

BP神经网络在多传感器数据融合中的应用

BP神经网络在多传感器数据融合中的应用

BP神经网络在多传感器数据融合中的应用摘要:提出一种基于多传感器神经网络融合的机动目标估计算法,利用BP 神经网络的函数逼近能力,将BP神经网络与卡尔曼滤波器相结合构成一个估计器,该算法可以对来自经不同噪声污染的传感器信息加以充分利用,在改善估计性能的同时又保持估计滤波的计算结构尽可能简单。

仿真结果表明所提出的估计滤波算法在估计应用上优于一般的加权估计算法,提高了估计算法的精度。

关键词:BP神经网络卡尔曼滤波数据融合一、引言数据融合是指对来自多个传感器的信息进行融合,也可以将来自多个传感器的信息和人机界面的观测事实进行信息融(这种融合通常是决策级融合)。

提取征兆信息,在推理机作用下.将征兆与知识库中的知识匹配,做出故障诊断决策,提供给用户。

在基于信息融合的故障诊断系统中可以加入自学习模块.故障决策经自学习模块反馈给知识库.并对相应的置信度因子进行修改,更新知识库。

同时.自学习模块能根据知识库中的知识和用户对系统提问的动态应答进行推理。

以获得新知识。

总结新经验,不断扩充知识库,实现专家系统的自学习功能。

多传感器数据融合是20世纪70年代以来发展起来的一门新兴边缘学科,目前已经成为备受人们关注的热门领域。

多传感器数据融合是一门新兴技术,在军事和非军事领域中都碍到了广泛应用、多传感器数据融合技术汲取了人工智能、模式识别、统计估计等多门学科的相关技术,计算机技术的快速发展以及数据融合技术的成熟为数据融合的广泛应用提供了基础。

多传感器信息融合状态估计是多传感器信息融合学科的一个重要分支。

多传感器数据融合的基本原理就像是人脑综合处理信息的过程一样,它充分利用多个传感器资源,通过对各种传感器及其观测信息的合理支配与使用,将各传感器在空间和时间上的互补与冗余信息依据某种优化准则组合起来,产生对观测环境的一致性解释和描述。

目前有两种常用的信息融合方法:一种方法是状态融合方法,另一种方法是观测融合方法。

状态融合方法又可分为集中式kalman滤波[1]和分散式kalman滤波。

BP神经网络--使用多层感知器网络进行数据分类

BP神经网络--使用多层感知器网络进行数据分类
使用多层感知器网络进行 数据分类
姓名: 学号:


1
输入层、隐含层以及输出层神经元个数的确定
2 3
4
权值的初始化 创建网络和网络结束条件
神经网络学习曲线


1
输入层、隐含层以及输出层神经元个数的确定
输入层的神经元由样本数 据的特征个数决定。训练 的数据中,一共15列,第 1个属性是该数据对应的类 别,第2个至15个属性是 特征值,所以一输入层神 经元个数是14个。
2
权值的初始化
权值初始化
实验之初 权值赋初值是通过net=init(net) 来自动实现的,每一次训练初 始化的结果都不一样;
改进后的实验 经过多次试验,找到一些使识 别率达到100%的权值。保存下 来权值,在接下来的实验中使 用
权值初始化
保存 w1=net.iw{1,1};%当前输入层权值 theta1=net.b{1};%当前输入层阀值 w2=net.lw{2,1};%当前隐含层权值 %theta2=net.b{2};%当前隐含层阀值 解释
logsig logsig
tansig .... tansig
purelin purelin
purelin ... purelin
traingdx trainlm
traingdx ... trainlmΒιβλιοθήκη 70%~96% 90%附近
90%(结合适当的权值) ... 100%(结合适当的权值)
创建网络和结束条件
权值设置 net.iw{1,1} = w1; net.lw{2,1} = w2; net.b{1}=theta1; net.b{2}=theta2;
3
创建网络和网络结束条件

基于bp神经网络的深层感知器预测模型

基于bp神经网络的深层感知器预测模型

利用基于时间序列的 ARMA 模型与常规 BP 神经网
络相结合,通过实验证明了组合预测模型比单一预
测模型能够获得更准确的结果[6]。
不过以上研究运用的组合预测模型所使用的
常规 BP 神经网络的 BP 算法存在收敛速度缓慢、学
习精确度不高和局部极小等缺点。本文采用基于
深度学习思想的深层神经网络(Deep Neural Net⁃
的随意性和盲目性。在大数据的浪潮中,善于利用数据进行财政收入的预测与分析,将大量繁琐零碎的数据转换成有用的
决策信息具有非常重要意义。目前,财政收入组合预测模型大都采用的都是三层神经网络结构;文章结合当前财政收入组
合预测方法和深层学习思想,提出了一种基于 BP 神经网络的深层神经网络预测模型。它是四层神经网络结构,并以西安的
。目前常
用的预测方法有回归分析法、时间序列分析法、灰
[3~4]
色预测法和神经网络法等
。财政收入数据及其
相关影响因素数据的变化往往具有随机性和非线
性变化的特点,并且它们之间也具有非常复杂的非
线性相关关系。目前,许多学者运用组合预测模型
来进行预测研究。如范敏等运用灰色预测和常规
BP(Back Propagation)神经网络组合模型对地方财
Prediction Model of Deep Sensor Based on BP Neural Network
CHEN Tong
ZHOU Xiaohui
(College of Computer,Xi'an University of Post and Telecommunications,Xi'an
ture,by using the data of Xi'an 's fiscal revenue as the test sample,the model is proved to be of high precision,fast convergence

BP神经网络实验报告

BP神经网络实验报告

BP神经网络实验报告一、引言BP神经网络是一种常见的人工神经网络模型,其基本原理是通过将输入数据通过多层神经元进行加权计算并经过非线性激活函数的作用,输出结果达到预测或分类的目标。

本实验旨在探究BP神经网络的基本原理和应用,以及对其进行实验验证。

二、实验方法1.数据集准备本次实验选取了一个包含1000个样本的分类数据集,每个样本有12个特征。

将数据集进行标准化处理,以提高神经网络的收敛速度和精度。

2.神经网络的搭建3.参数的初始化对神经网络的权重和偏置进行初始化,常用的初始化方法有随机初始化和Xavier初始化。

本实验采用Xavier初始化方法。

4.前向传播将标准化后的数据输入到神经网络中,在神经网络的每一层进行加权计算和激活函数的作用,传递给下一层进行计算。

5.反向传播根据预测结果与实际结果的差异,通过计算损失函数对神经网络的权重和偏置进行调整。

使用梯度下降算法对参数进行优化,减小损失函数的值。

6.模型评估与验证将训练好的模型应用于测试集,计算准确率、精确率、召回率和F1-score等指标进行模型评估。

三、实验结果与分析将数据集按照7:3的比例划分为训练集和测试集,分别进行模型训练和验证。

经过10次训练迭代后,模型在测试集上的准确率稳定在90%以上,证明了BP神经网络在本实验中的有效性和鲁棒性。

通过调整隐藏层结点个数和迭代次数进行模型性能优化实验,可以发现隐藏层结点个数对模型性能的影响较大。

随着隐藏层结点个数的增加,模型在训练集上的拟合效果逐渐提升,但过多的结点数会导致模型的复杂度过高,容易出现过拟合现象。

因此,选择合适的隐藏层结点个数是模型性能优化的关键。

此外,迭代次数对模型性能也有影响。

随着迭代次数的增加,模型在训练集上的拟合效果逐渐提高,但过多的迭代次数也会导致模型过度拟合。

因此,需要选择合适的迭代次数,使模型在训练集上有好的拟合效果的同时,避免过度拟合。

四、实验总结本实验通过搭建BP神经网络模型,对分类数据集进行预测和分类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

神经网络及应用实验报告实验二、基于BP网络的多层感知器一:实验目的:1. 理解多层感知器的工作原理2. 通过调节算法参数了解参数的变化对于感知器训练的影响3. 了解多层感知器局限性二:实验原理:BP的基本思想:信号的正向传播误差的反向传播–信号的正向传播:输入样本从输入层传入,经各隐层逐层处理后,传向输出层。

–误差的反向传播:将输入误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号来作为修正各单元权值的依据。

1.基本BP算法的多层感知器模型:学习算法的推导:当网络输出与期望输出不等时,存在输出误差E将上面的误差定义式展开至隐层,有进一步展开至输入层,有调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,即η∈(0,1)表示比例系数,在训练中反应学习速率BP算法属于δ学习规则类,这类算法被称为误差的梯度下降(Gradient Descent)算法。

<实验步骤>1. 用Matlab编程,实现解决该问题的单样本训练BP网络,设置一个停止迭代的误差E min和最大迭代次数。

在调试过程中,通过不断调整隐层节点数,学习率η,找到收敛速度快且误差小的一组参数。

产生均匀分布在区间[-4,4]的测试样本,输入建立的模型得到输出,与Hermit多项式的期望输出进行比较计算总误差(运行5次,取平均值),并记录下每次迭代结束时的迭代次数。

(要求误差计算使用RME,Emin 设置为)程序如下:function dyb %单样本程序clc;close all;clear;x0=[1:101;-4::4];%样本101个x0(1,:)=-1;x=x0';yuzhi=;%阈值j=input('请输入隐层节点数 j = ');%隐层节点数 n=input('请输入学习效率 n = ');%学习效率w=rand(1,j);w=[yuzhi,w]; %输出层阈值v=rand(2,j);v(1,:)=yuzhi;%隐层阈值err=zeros(1,101);wucha=0;zhaosheng=*randn(1,101);%噪声erro=[];ERRO=[];%误差,为画收敛曲线准备Emin=;d=zeros(1,101);for m=1:101d(m)=hermit(x(m,2));%期望end;o=zeros(1,101);netj=zeros(1,j);net=zeros(1,j);p=1;q=1;azc=0;acs=0;for z=1:5while q<30000Erme=0;for p=1:101y=zeros(1,j);for i=1:jnetj(1,i)=x(p,:)*v(:,i);y(1,i)=1/(1+exp(-netj(1,i)));y=[-1 y];o(p)=w*y'+zhaosheng(p);%噪声wucha = d(p)-o(p);err(1,p)=1/2*wucha^2;erro=[erro,wucha];for m=1:j+1w(1,m)=w(1,m)+n*wucha*y(1,m);end;for m=1:jv(:,m)=v(:,m)+n*wucha*w(1,m)*y(1,m)*(1-y(1,m))*x(p,:)'; endq=q+1;end;for t=1:101;Erme=Erme+err(1,t);err=zeros(1,101);Erme=sqrt(Erme/101); ERRO=[ERRO,Erme];if Erme<Emin break; end;end;azc=azc+Erme;acs=acs+q;enddisp('最终误差:');pinjunwucha=1/5*azcfigure(1);plot(x(:,2),d,'--r');hold on;plot(x(:,2),o,'--b');disp('次数:');pjcx=1/5*acsfigure(2);plot(ERRO);figure(3);plot(x(:,2),d,'--rp');endfunction F = hermit(x)%hermit子函数 F = *(1-x+2*x^2)*exp(-x^2/2); end运行结果如下:-4-3-2-101234训练样本与测试样本input x o u t p u t y表格1. 单样本BP 算法平均最小误差2. 实现解决该问题的批处理训练BP 网络,调整参数如上。

产生均匀分布在区间[-4,4]的测试样本,输入建立的模型得到输出,与Hermit 多项式的期望输出进行比较计算总误差(运行5次,取平均值),并记录下每次迭代结束时的迭代次数。

程序如下:function pcl %批处理close all;clc;x=[-4::4];%样本101个j=input('请输入隐层节点数 j = ');%隐层节点数 n=input('请输入学习效率 n = ');%学习效率a=;%动量系数w=rand(1,j);v=rand(1,j);err=zeros(1,101);wucha=0;zhaosheng=*randn(1,101);%噪声erro=[];ERRO=[];%误差,为画收敛曲线准备Emin=;d=zeros(1,101);for m=1:101d(1,m)=hermit(x(m));%期望 end;o=zeros(1,101);netj=zeros(1,j);net=zeros(1,j);y=zeros(1,j);p=1;q=1;azc=0;acs=0;for z=1:5while q<30000Erro=0;Erme=0;for p=1:101for i=1:jnetj(1,i)=v(1,i)*x(1,p);y(1,i)=1/(1+exp(-netj(1,i))); end;o(1,p)=w*y'+zhaosheng(p);%噪声wucha=d(1,p)-o(1,p);%误差err(1,p)=1/2*wucha^2;erro=[erro,wucha];q=q+1;end;for t=1:101;Erro=Erro+erro(t);Erme=Erme+err(1,t);end;erro=[];for m=1:j;w(1,m)=w(1,m)+n*Erro*y(1,m);v(1,m)=v(1,m)+n*Erro*w(1,m)*y(1,m)*(1-y(1,m))*x(1,p); end;Erme=sqrt(Erme/101);ERRO=[ERRO,Erme];if Erme<Emin break;end;end;azc=azc+Erme;acs=acs+q;enddisp('平均误差:');pjwc=1/5*azcfigure(1);plot(x,d,'--r');hold on;plot(x,o,'--b');disp('平均次数:');pjcs=1/5*acsfigure(2);plot(ERRO);figure(3);plot(x,d);endfunction F = hermit(x) %hermit子函数F = *(1-x+2*x^2)*exp(-x^2/2);end运行结果如下:表格2. 批处理BP算法平均最小误差5810123. 对批处理训练BP算法增加动量项调整参数如上,记录结果,并与没有带动量项的批处理训练BP算法的结果相比较程序如下:function jdlx %加动量项close all;clc;x=[-4::4];%样本101个j=input('请输入隐层节点数 j = ');%隐层节点数n=input('请输入学习效率 n = ');%学习效率a=;%动量系数w=rand(1,j);v=rand(1,j);err=zeros(1,101);wucha=0;zhaosheng=*randn(1,101);%噪声 erro=[];ERRO=[];%误差,为画收敛曲线准备 Emin=;d=zeros(1,101);for m=1:101d(1,m)=hermit(x(m));%期望 end;o=zeros(1,101);netj=zeros(1,j);net=zeros(1,j);y=zeros(1,j);p=1;q=1;acs=0;for z=1:5while q<30000Erro=0;Erme=0;for p=1:101for i=1:jnetj(1,i)=v(1,i)*x(1,p);y(1,i)=1/(1+exp(-netj(1,i))); end;o(1,p)=w*y'+zhaosheng(p);%噪声wucha=d(1,p)-o(1,p);%误差err(1,p)=1/2*wucha^2;erro=[erro,wucha];q=q+1;for t=1:101;Erro=Erro+erro(t);Erme=Erme+err(1,t);end;erro=[];for m=1:j;if m==1w(1,m)=w(1,m)+n*Erro*y(1,m);elsew(1,m)=w(1,m)+n*Erro*y(1,m)+a*w(1,m-1);endv(1,m)=v(1,m)+n*Erro*w(1,m)*y(1,m)*(1-y(1,m))*x(1,p); end;Erme=sqrt(Erme/101);ERRO=[ERRO,Erme];if Erme<Emin break; end;end;azc=azc+Erme;acs=acs+q;enddisp('平均误差:');pjwc=1/5*azcfigure(1);plot(x,d,'--r');hold on;plot(x,o,'--b');disp('平均次数:');pjcs=1/5*acsfigure(2);plot(ERRO);figure(3);plot(x,d);endfunction F = hermit(x) %hermit 子函数F = *(1-x+2*x^2)*exp(-x^2/2);end运行结果如下:-4-3-2-101234训练样本与测试样本input xo u t p u t y4. 对批处理BP 算法改变参数:学习率η、迭代次数、隐层节点数,观察算法的收敛发散,以及测试误差的变化(对每个参数取几个不同参数,分别运行5次,结果取平均值)。

相关文档
最新文档