- 19
- 0
- 约5.44千字
- 约 5页
- 2016-10-19 发布于重庆
- 举报
人工神经网络matlab程序
神经网络MATLAB程序
%根据预测方法得到输入向量和目标向量
P=[0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201;
0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211;
0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298;];
T=[0.4557 0.4790 0.7019 0.8211;
0.4601 0.4811 0.7101 0.8298;
0.4612 0.4845 0.7188 0.8312];
%输入向量的取值范围为[0 1],用threshold来标记
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
%创建一个Elman神经网络,隐含层的神经元个数为17个,4个输出层神经元,隐含层激活函
%数为tansig,输出层激活函数为purelin
net=newelm(threshold,[17,4],{tansig,purelin});
net.trainParam.epochs=3000;
net=init(net);
net=train(net,P,T);
%输入测试数据
P_test=[0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298 0.4612 0.4845 0.7188 0.8312];
T_test=[0.4615 0.4891 0.7201 0.8330];
y=sim(net,P_test)
%在测试数据下,计算网络的输出和实际目标向量之间的差值
error=y-T_test;
%在坐标平面上画出差值曲线
plot(1:4,error,-);
程序运行后,结果如图2-29所示,命令行窗口中的结果如下:
……
TRAINGDX, Epoch 2950/3000, MSE 2.65822e-005/0, Gradient 0.000916222/1e-006
TRAINGDX, Epoch 2975/3000, MSE 2.64788e-005/0, Gradient 0.000221814/1e-006
TRAINGDX, Epoch 3000/3000, MSE 2.6293e-005/0, Gradient 0.000102435/1e-006
TRAINGDX, Maximum epoch reached, performance goal was not met.
y =
0.4761
0.4916
0.7217
0.8344
Hopfield
%数字1的点阵表示
one=[-1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1];
%数字2的点阵表示
two=[1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1];
%设定网络的目标向量
T=[one;two];
%创建一个Hopfield神经网络
net=newhop(T);
%给定一个受噪声污染的数字2的点阵,所谓噪声是指数字点阵中某些本应为1的方块变成了-1
no2={[1 1 1 -1 1 1 -1 1 -1 -1 1 1 1
原创力文档

文档评论(0)