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

神经元的输出由下式给出:

x y???? (? w j j?? b) j??1 n

这里输入的加权和(括号内部分)由一个非线性函数传递, b 表

示与偏差输入相关的权值, w j 表示与第 j 个输入相关的权值。

使用最广泛的函数是 S 形函数,其曲线家族包括对数函数和双曲

正切函数,这些都可用来对人口动态系统、经济学系统等建模。另外

所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展

开介绍,本文主要使用的激励函数是对数函数,函数表达式为:

y?? L(u)???

1 1?? e?u

函数曲线如下图所示:

1 0.8 0.6 0.4 0.2 0 -0.2 -10

-8

-6

-4

-2

0

2

4

6

8

10 对于有限输入量,对数函数输出范围为 y?? (0,1)。在输入为 u?? 0 时, 输出值为中间值 y?? 0.5。输出在 u?? 0 附近随着输入的增加以相对快的

Page 5 of 25

速率增加并非常慢地到达上限。对于 u?? 0 ,输出起初减少得很快,然

后随着下限的接近将会变慢。

训练神经元的规则有很多种,这里首先介绍利用 delta 规则的学

习,神经元选择为一个单输入单输出的简单情形,数学描述如下:

u?? wx?? b, y???

1 1?? e?u

该神经元具有一个输入 x ,权重为 w ,偏差输入为 b ,目标输出

为 t ,预报输出为 y 。则预报误差为:

E?? t?? y?? t???

1 1 ? t???1?? e?u 1?? e? wx?b

为消除当误差在整个输入模式上求和时引起的误差符号问题,在

delta 规则里使用的误差指示是平方误差,定义为:

1 1 2 2 1 )2

? wx?b 1?? e

根据 delta 规则,最优权值(使平方误差最小)可以在训练过程

中从初始权值出发,沿负梯度方向下降得到。将平方误差对 w, b (神

经元的可调整参数)进行微分,得:

e?u ???

???E????u (1?? e?u )2

??? ????u e?u

??????????? E?????????? x ?w ?u??w (1?? e?u )2 ??? ????u e?u

??????????? E???

?b ?u??b (1?? e?u )2

根据 delta 原则,权值改变应与误差梯度的负值成比例,引入学 习率?? ,每次迭代中的权值改变可表示为:

?? e?u

?w??????????????? E?????????? x ?w (1?? e?u )2 e?u ????b??????????????? E???

?b (1?? e?u )2

Page 6 of 25

学习率?? 决定了沿梯度方向的移动速度,以确定新的权值。大的

? 值会加快权值的改变,小的?? 值则减缓了权值的改变。第 i 次迭代

后的新权值可表示为:

wi??1?? wi?????? E???

bi??1?? bi?????? E???

e?u (1?? e?u )2 e?u

(1?? e?u )2

? x

如果将偏差输入 b 视为输入 x 的一部分,令 x0?? 1, w0?? b,可以得到

对于多输入神经元的权值修正式:

w

?1

ij ji

e?u

? w ?????? E???(1?? e?u )2 ? x j , j?? 0,1, 2, , n

总之,利用 delta 规则的有监督的学习可以按如下方法来实现: 一个输入模式( x0 , x1, x2 , , xn)通过连接被传递,它的初始权值被设置

为任意值。对加权的输入求和,产生输出 y ,然后 y 与给定的目标输 出 t 做比较决定此模式的平方误差?? 。输入和目标输出不断地被提出,

在每一次迭代或每一个训练时间后利用 delta 规则进行权值调整直到

得到可能的最小平方误差。

delta 规则在每一步中通过导数寻找在误差平面中某个特定点局

部区域的斜率,它总是应用这个斜率从而试图减小局部误差,因此,

delta 规则不能区分误差空间中的全局最小点和局部最小点,它本身

不能克服单层神经网络的局限,无法直接应用到多层神经网络(易陷

入局部最小点),但它的一般形式是多层神经网络中的学习算法——

反传算法的核心。

在多层前向神经网络的训练过程中,误差导数或关于权值的误差

Page 7 of 25

表面的斜率对权值的调整是至关重要的,在网络训练期间,所有的输 出神经元和隐含神经元权值必须同时调整,因此,有必要找出关于所

有权值的误差导数。由于网络层数增多,平方误差?? 与权值的连接没

有之前单个神经元时那么直接,故可以使用链式规则的概念来找到导

数。

下面对一个含有一层隐含神经元的 BP 网络进行讨论,网络结构

如下图所示:

x0?? 1 1 a0m a01 ?? ?? y1 b1 y0?? 1

x1 1 b0 x2

1 ?? 1 z bm an1 xn ym anm

1 ????各个神经元的输入输出关系为:

n 1

x yi??? a ji j , i?? 1, 2, 1?? e?ui , ui????j??0

m

, m

z?? v, v???? bi iy i??0

设目标输出为 t ,则平方误差?? 定义为: Page 8 of 25

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4