人工神经网络及其应用实例—-毕业论文设计 下载本文

x0 = ones(size(x1)); y0 = ones(size(x1)); u1 = a01 * x0 + a11 * x1; u2 = a02 * x0 + a12 * x1; y1 = 1 ./ (1 + exp(-u1)); y2 = 1 ./ (1 + exp(-u2));

z = b0 * y0 + b1 * y1 + b2 * y2; plot(x1, t, 'r'); hold on;

plot(x1, z, 'b'); hold off;

axis([0 pi -0.2 1.2]);

程序运行后,输出拟合曲线与原函数曲线,如下图所示:

1 0.8 0.6 0.4 0.2 0 -0.2

0

0.5

1

1.5

2

2.5

3

可以看出,训练后的神经网络的预报输出与目标输出已经很接近, 拟合效果是较为理想的。

Page 13 of 25

总的来说,神经网络的学习过程,是神经网络在外界输入样本的 刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断

地接近期望的输出。BP 算法是多层前向神经网络的一种学习规则,

核心思想是将输出误差以某种形式通过隐层向输入层逐层反传,学习

的过程就是信号的正向传播与误差的反向传播交替的过程。

多层前向神经网络的主要功能有:

(1)非线性映射能力。多层前向神经网络能学习和存储大量输

入——输出模式映射关系,而无需事先了解描述这种映射关系的数学

方程。只要能提供足够多的样本模式供对神经网络进行学习训练,它

便能完成由 n 维输入空间到 m 维输出空间的非线性映射。

(2)泛化能力。当向网络输入训练时未曾见过的非样本数据时,

网络也能完成由输入空间到输出空间的正确映射。

(3)容错能力。输入样本中带有较大的误差甚至个别错误对网

络的输入输出规律影响很小。

多层前向神经网络的标准 BP 学习算法有着以下明显的缺陷:

(1)易形成局部极小(属于贪婪算法,局部最优)而得不到全

局最优;

(2)训练次数多使得学习效率低下,收敛速度慢;

(3)隐节点的选取缺乏理论支持;

(4)训练时学习新样本有遗忘旧样本的趋势。

标准 BP 算法的改进方法主要有:增加动量项;自适应调节学习

率等。增加动量项已经在之前进行过讨论,可以减小振荡趋势,提高

Page 14 of 25

训练速度。自适应调节学习率是指根据环境变化增大或减小学习率, 基本方法是:

设一初始学习率,若经过一批次权值调整后使总误差增大,则本

次调整无效,并令??????1? (?1?? 1) ;若经过一批次权值调整后使总误差

减小,则本次调整有效,并令??????2? (?2?? 1)。

下面通过一个非线性分类问题来考察前向神经网络在模式识别 领域的应用。

问题 2:

x?? y平面上有 200 个点,分别属于两个类别。试设计并训练一个

多层前向神经网络,以完成该分类任务,使得被错误分类的样本数量

0.9

最低。??1 类以绿色标示,??2 类以蓝色标示。 1

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Page 15 of 25