人工神经网络Matlab实现代码.docx

人工神经网络Matlab实现代码.docx

ID:55414225

大小:10.74 KB

页数:4页

时间:2020-05-12

人工神经网络Matlab实现代码.docx_第1页
人工神经网络Matlab实现代码.docx_第2页
人工神经网络Matlab实现代码.docx_第3页
人工神经网络Matlab实现代码.docx_第4页
资源描述:

《人工神经网络Matlab实现代码.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、以下是用Matlab中的m语言编写的BP神经网络代码,实现的是一个正弦函数的拟合过程,包括了初始化、BP算法、绘制曲线等过程,可以将代码放到一个M文件中运行,以下是代码:defaultpoints=20;%%%%%%%%%隐含层节点数inputpoints=1;%%%%%%%%%输入层节点数outputpoints=1;%%%%%%%%%输出层节点数Testerror=zeros(1,100);%%%%每个测试点的误差记录a=zeros(1,inputpoints);%%%%输入层节点值y=zeros(1,outp

2、utpoints);%%%样本节点输出值w=zeros(inputpoints,defaultpoints);%%%%%输入层和隐含层权值%初始化权重很重要,比如用rand函数初始化则效果非常不确定,不如用zeros初始化v=zeros(defaultpoints,outputpoints);%%%%隐含层和输出层权值bin=rand(1,defaultpoints);%%%%%隐含层输入bout=rand(1,defaultpoints);%%%%隐含层输出base1=0*ones(1,defaultpoints

3、);%隐含层阈值,初始化为0cin=rand(1,outputpoints);%%%%%%输出层输入cout=rand(1,outputpoints);%%%%%输出层输出base2=0*rand(1,outputpoints);%%输出层阈值error=zeros(1,outputpoints);%%%拟合误差errors=0;error_sum=0;%%%误差累加和error_rate_cin=rand(defaultpoints,outputpoints);%%误差对输出层节点权值的导数error_rate_

4、bin=rand(inputpoints,defaultpoints);%%%误差对输入层节点权值的导数alfa=0.5;%%%%alfa是隐含层和输出层权值-误差变化率的系数,影响很大belt=0.5;%%%%belt是隐含层和输入层权值-误差变化率的系数,影响较小gama=5;%%%%gama是误差放大倍数,可以影响跟随速度和拟合精度,当gama大于2时误差变大,容易震荡%%%%规律100个隐含节点,当alfa*gama=1.5时,效果好,其他值误差变大,belt基本不影响效果%%%%规律200个隐含节点,当a

5、lfa*gama=0.7时,效果好,其他值误差变大,belt基本不影响效果,最小误差和100个隐含点一样%%%%规律50个隐含节点,当alfa*gama=3时,效果好,其他值误差变大,belt基本不影响效果,最小误差和100个隐含点一样trainingROUND=200;%训练次数,有时训练几十次比训练几百次上千次效果要好很多sampleNUM=361;%样本点数x1=zeros(sampleNUM,inputpoints);%样本输入矩阵y1=zeros(sampleNUM,outputpoints);%样本输出

6、矩阵x2=zeros(sampleNUM,inputpoints);%测试输入矩阵y2=zeros(sampleNUM,outputpoints);%测试输出矩阵observeOUT=zeros(sampleNUM,outputpoints);%%拟合输出监测点矩阵i=0;j=0;k=0;%%%%其中j是在一个训练周期中的样本点序号,不可引用i=0;h=0;o=0;%%%%输入层序号,隐含层序号,输出层序号x=0:0.2*pi:2*pi;%%%%步长forj=1:9%%%%%%这里给样本输入和输出赋值,应根据具体应

7、用来设定x1(j,1)=x(j);y1(j,1)=sin(x1(j,1));endx=0:2*pi/361:2*pi;forj=1:361x2(j,1)=x(j);y2(j,1)=sin(x2(j,1));endforo=1:outputpointsy1(:,o)=(y1(:,o)-min(y1(:,o)))/(max(y1(:,o))-min(y1(:,o)));%归一化,使得输出范围落到[0,1]区间上,当激活函数为对数S型时适用y2(:,o)=(y2(:,o)-min(y2(:,o)))/(max(y2(:,

8、o))-min(y2(:,o)));endfori=1:inputpointsx1(:,i)=(x1(:,i)-min(x1(:,i)))/(max(x1(:,i))-min(x1(:,i)));%输入数据归一化范围要和输出数据的范围相同,[0,1]x2(:,i)=(x2(:,i)-min(x2(:,i)))/(max(x2(:,i))-min(x2(:,i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。