BP多层感知器 源代码 神经网络
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;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('初始化连接权矩阵:');
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(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); %显示中间层阈值矩阵th1
disp('输出层阈值矩阵th2(3,1):th2(k,1):th2
1