bp神经网络BP 输出 (3)_第1页
bp神经网络BP 输出 (3)_第2页
bp神经网络BP 输出 (3)_第3页
bp神经网络BP 输出 (3)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、tic;%计时开始clc;%清屏clear all;%清除所有变量disp('输入层神经元个数:16');%显示输入层神经元个数input=16;disp('中间层神经元个数:8');%显示中间层神经元个数middle=8;disp('输出层神经元个数:3');%显示输出层神经元个数output=3;disp('输入模式1 2 3及其对应的输出:');x1=1;1;1;1;1;0;0;1;1;1;1;1;1;0;0;1;%x1(16,1)y1=1;0;0;%y1(3,1)x2=0;1;0;0;0;1;0;0;0;1;0;0;0;1

2、;0;0;%x2(16,1)y2=0;1;0;%y2(3,1)x3=1;1;1;1;1;0;0;1;1;0;0;1;1;1;1;1;%x3(16,1)y3=0;0;1;%y3(3,1)disp('形成一张供调用的样本向量表:');disp('X_sample向量表:x1,x2,x3');X_sample=x1,x2,x3%x1,x2,x3向量表>>>X(16,3)disp('X_sample向量表:y1,y2,y3');Y_sample=y1,y2,y3%y1,y2,y3向量表>>>Yo(3,3)disp(&#

3、39;初始化连接权矩阵:');disp('显示初始化连接权矩阵v(16,8):v(i,j):v(input,middle):');v=rands(input,middle);%初始化连接权矩阵v(i,j):输入层与中间层的连接权>>>v(16,8)disp(v);%显示初始化连接权矩阵v(i,j)disp('显示初始化连接权矩阵w(8,3):w(j,k):w(middle,output):');w=rands(middle,output);%初始化连接权矩阵w(j,t):中间层与输出层的连接权>>>w(8,3)disp

4、(w);%显示初始化连接权矩阵w(j,t)disp('初始化阈值矩阵:');disp('中间层阈值矩阵th1(8,1):th1(j,1):th1(middle,1):');th1=rands(middle,1);%初始化中间层阈值矩阵th1:中间层的阈值>>>th1(8,1)disp(th1);%显示中间层阈值矩阵th1disp('输出层阈值矩阵th2(3,1):th2(k,1):th2(output,1):');th2=rands(output,1);%初始化输出层阈值矩阵th2:输出层的阈值>>>th2(3

5、,1)disp(th2);%显示中间层阈值矩阵th2out_middle=zeros(middle,1);%中间层的实际输出>>>out_middle(8,1)out_output=zeros(output,1);%输出层的实际输出>>>out_output(3,1)delta_output=zeros(output,1);%输出层的差值>>>delta_output(3,1)delta_middle=zeros(middle,1);%中间层的差值>>>delta_middle(8,1)sample_bumbers=3;%

6、样本数max_times=1000;%最大训练次数times=0;%训练次数eta=0.1;%学习系数etagamma=0.1;%学习系数gammaalpha=0.3;%动量系数sample_pointer=0;%样本数指针error_max=0.01;%最大误差error_global=1;%全局误差for times=1:max_times%begin for External Loopif error_global>error_max%begin for iferror_global=0;%全局误差for sample_pointer=1:sample_bumbersX0=X_sa

7、mple(:,sample_pointer);%分别输入模式x1,x2,x3:(16,1)>>>X(16,36),X0(16,1)Y0=Y_sample(:,sample_pointer);%分别输入模式y1,y2,y3:(3,1) >>>Yo(3,3),Y0(3,1)%计算中间层的输出:Y=v'*X0-th1;%Y(8,1)=v'(8,16)*X0(16,1)*-th1(8,1),计算中间层的输入for j=1:middle%j=1:8out_middle(j)=1/(1+exp(-Y(j);%out_middle(1,8):中间层输出en

8、d%计算输出层输出:Y=w'*out_middle-th2;%Y(3,1)=w'(3,8)*out_middle(8,1)*-th2(3,1),计算输出层的输入output_error(sample_pointer)=0;for k=1:output %k=1:3out_output(k)=1/(1+exp(-Y(k);%out_output(3,1):输出层输出error=(Y0(k)-out_output(k)*(Y0(k)-out_output(k)/2;%error为应有输出和实际输出之间的差值output_error(sample_pointer)=output_er

9、ror(sample_pointer)+error;end%计算所有样本的总体误差error_globalerror_global=error_global+output_error(sample_pointer);error_global=error_global/3;%计算输出层校正误差delta_output:for k=1:output %k=1:3delta_output(k)=(Y0(k)-out_output(k)*out_output(k)*(1-out_output(k);%delta_output(k)=delta_o(k)end%计算中间层校正误差delta_middle

10、:for j=1:middlebeta(j)=delta_output'*w(j,:)'delta_middle(j)=beta(j)*out_middle(j)*(1-out_middle(j);end%计算下一次的中间层和输出层之间的连接权w(i,j),阈值th2(j)pre_w=0;pre_th2=0;for k=1:output;for j=1:middlew(j,k)=w(j,k)+eta*delta_output(k)*out_middle(j)+alpha*pre_w;%out_middle(j)=y(j)pre_w=eta*delta_output(k)*out

11、_middle(j);endth2(k)=th2(k)+eta*delta_output(k)+alpha*pre_th2;pre_th2=eta*delta_output(k);end %计算下一次的输入层和中间层之间的连接权v(i,j),阈值th1(j)pre_v=0;pre_th1=0;for j=1:middle;for i=1:inputv(i,j)=v(i,j)+gamma*X0(i)*delta_middle(j)+alpha*pre_v; %调节输入层和中间层之间的连接权w(i,j)pre_v=gamma*X0(i)*delta_middle(j);endth1(j)=th1(

12、j)+gamma*delta_middle(j)+alpha*pre_th1;%调节中间层的阈值th1(j,1)pre_th1=gamma*delta_middle(j);endend%end for "for sample_pointer=1:sample_bumbers"else break;%当output_error<error_max时,结束调节过程end%end for elseend%end for "for times=1:max_times"disp('显示结果:');fprintf('输出权值v(16,8)n'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论