6.
(
1
)试用
C
语言编程实现多层前向
NN
的
BP
算法。要求:输入、输出结点数目,隐层
数目,及各隐层中结点的数目应为任意整数。
(
2
)试用所编出的
BP
算法程序训练出一个实现
XOR
运算的
2
层前向网络。
(
3
)用所编出的
BP
算法程序训练出输入矢量的维数分别为
n=7
和
n=8
的两个实现奇偶
检验运算(即如题
2.(2)
所述)的
2
层前向
NN
。
注:对第
6
题的要求:
(i)
列表给出训练收敛后的
NN
权值和所用的迭代次数;
(ii)
给出训练收敛后的训练误差和检验误差,及用训练集和检验集做输入时所得到的正确输
出率;
(iii)
给出
NN
的学习曲线(即
E(W(k))
随迭代次数
k
的变化曲线,该结果应是用计算程序
计算和打印出来的曲线,而不要是用手画出的曲线)
。
(
1
)用
C
语言编程实现前向
NN
的
BP
算法
解:
解题思路:先用
C
语言编程实现前向
NN
的
BP
算法,再将误差保存至文本文件,最
后用
MATLAB
绘制出误差曲线。
(
1.1
)开发思路
奇偶检验问题可视为
XOR
问题的推广(由
2
输入到
n
输入的推广)
:若
n
个输入中
有奇数个
1
,则输出为
1
;若
n
个输入中有偶数个
1
,则输出为
0
。一个
2
层的
NN
可实
现奇偶检验运算。
本文选用
2
层神经网络,包括隐含层
1
层,输出层
1
层,来设计
BP
神经网络。