人工神经网络及其应用实例毕业论文.docx
《人工神经网络及其应用实例毕业论文.docx》由会员分享,可在线阅读,更多相关《人工神经网络及其应用实例毕业论文.docx(50页珍藏版)》请在冰豆网上搜索。
人工神经网络及其应用实例毕业论文
人工神经网络及其应用实例
人工神经网络是在现代神经科学研究成果基础上提出的一种抽
象数学模型,它以某种简化、抽象和模拟的方式,反映了大脑功能的
若干基本特征,但并非其逼真的描写。
人工神经网络可概括定义为:
由大量简单元件广泛互连而成的复
杂网络系统。
所谓简单元件,即人工神经元,是指它可用电子元件、
光学元件等模拟,仅起简单的输入输出变换y=σ(x)的作用。
下图是3
中常用的元件类型:
线性元件:
y=0.3x,可用线性代数法分析,但是功能有限,现在
已不太常用。
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-6
-4
-2
0
2
4
6
连续型非线性元件:
y=tanh(x),便于解析性计算及器件模拟,是
当前研究的主要元件之一。
Page1of25
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-6
-4
-2
0
2
4
6
⎧1,x≥0
⎩-1,x<0
,便于理论分析及阈值逻辑器件
实现,也是当前研究的主要元件之一。
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-6
-4
-2
0
2
4
6
Page2of25
离散型非线性元件:
y=⎨
每一神经元有许多输入、输出键,各神经元之间以连接键(又称
突触)相连,它决定神经元之间的连接强度(突触强度)和性质(兴
奋或抑制),即决定神经元间相互作用的强弱和正负,共有三种类型:
兴奋型连接、抑制型连接、无连接。
这样,N个神经元(一般N很大)
构成一个相互影响的复杂网络系统,通过调整网络参数,可使人工神
经网络具有所需要的特定功能,即学习、训练或自组织过程。
一个简
单的人工神经网络结构图如下所示:
上图中,左侧为输入层(输入层的神经元个数由输入的维度决定),
右侧为输出层(输出层的神经元个数由输出的维度决定),输入层与
输出层之间即为隐层。
输入层节点上的神经元接收外部环境的输入模式,并由它传递给
相连隐层上的各个神经元。
隐层是神经元网络的内部处理层,这些神
经元在网络内部构成中间层,不直接与外部输入、输出打交道。
人工
神经网络所具有的模式变换能力主要体现在隐层的神经元上。
输出层
用于产生神经网络的输出模式。
多层神经网络结构中有代表性的有前向网络(BP网络)模型、
Page3of25
多层侧抑制神经网络模型和带有反馈的多层神经网络模型等。
本文主
要探讨前向网络模型。
多层前向神经网络不具有侧抑制和反馈的连接方式,即不具有本
层之间或指向前一层的连接弧,只有指向下一层的连接弧。
代表是
BP神经网络:
输入模式由输入层进入网络,经中间各隐层的顺序变
换,最后由输出层产生一个输出模式,如下图所示:
输入层
隐层
输出层
多层前向神经网络由隐层神经元的非线性处理衍生它的能力,这
个任务的关键在于将神经元的加权输入非线性转换成一个输出的非
线性激励函数。
下图给出了一个接收n个输入x1,x2,,xn的神经元:
b
1
x1
w1
x2
w2
∑
σ
y
wn
xn
Page4of25
神经元的输出由下式给出:
n
x
j=1
这里输入的加权和(括号内部分)由一个非线性函数传递,b表
示与偏差输入相关的权值,wj表示与第j个输入相关的权值。
使用最广泛的函数是S形函数,其曲线家族包括对数函数和双曲
正切函数,这些都可用来对人口动态系统、经济学系统等建模。
另外
所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展
开介绍,本文主要使用的激励函数是对数函数,函数表达式为:
y=L(u)=
函数曲线如下图所示:
1
0.8
0.6
0.4
0.2
0
1
1+e-u
-0.2
-10
-8
-6
-4
-2
0
2
4
6
8
10
对于有限输入量,对数函数输出范围为y∈(0,1)。
在输入为u=0时,
输出值为中间值y=0.5。
输出在u=0附近随着输入的增加以相对快的
Page5of25
y=σ(∑wjj+b)
速率增加并非常慢地到达上限。
对于u<0,输出起初减少得很快,然
后随着下限的接近将会变慢。
训练神经元的规则有很多种,这里首先介绍利用delta规则的学
习,神经元选择为一个单输入单输出的简单情形,数学描述如下:
u=wx+b,y=
1
1+e-u
该神经元具有一个输入x,权重为w,偏差输入为b,目标输出
为t,预报输出为y。
则预报误差为:
E=t-y=t-
11
1+e-u1+e-wx-b
为消除当误差在整个输入模式上求和时引起的误差符号问题,在
delta规则里使用的误差指示是平方误差,定义为:
11
22
1
-wx-b
)2
根据delta规则,最优权值(使平方误差最小)可以在训练过程
中从初始权值出发,沿负梯度方向下降得到。
将平方误差对w,b(神
经元的可调整参数)进行微分,得:
∂ε
∂u
=-E⋅
e-u
(1+e-u)2
∂ε
∂w
∂ε
∂b
=⋅=-E⋅⋅x
∂u∂w(1+e-u)2
=⋅=-E⋅
∂u∂b(1+e-u)2
根据delta原则,权值改变应与误差梯度的负值成比例,引入学
习率β,每次迭代中的权值改变可表示为:
∂εe-u
∂w(1+e-u)2
∂ε
∂b
e-u
(1+e-u)2
Page6of25
=t-
1+e
∂ε∂ue-u
∂ε∂ue-u
∆w=-β⋅=β⋅E⋅⋅x
∆b=-β⋅=β⋅E⋅
学习率β决定了沿梯度方向的移动速度,以确定新的权值。
大的
β值会加快权值的改变,小的β值则减缓了权值的改变。
第i次迭代
后的新权值可表示为:
wi+1=wi+β⋅E⋅
e-u
(1+e-u)2
⋅x
bi+1=bi+β⋅E⋅
e-u
(1+e-u)2
如果将偏差输入b视为输入x的一部分,令x0=1,w0=b,可以得到
对于多输入神经元的权值修正式:
+1
e-u
(1+e-u)2
⋅xj,j=0,1,2,
n
总之,利用delta规则的有监督的学习可以按如下方法来实现:
一个输入模式(x0,x1,x2,,xn)通过连接被传递,它的初始权值被设置
为任意值。
对加权的输入求和,产生输出y,然后y与给定的目标输
出t做比较决定此模式的平方误差ε。
输入和目标输出不断地被提出,
在每一次迭代或每一个训练时间后利用delta规则进行权值调整直到
得到可能的最小平方误差。
delta规则在每一步中通过导数寻找在误差平面中某个特定点局
部区域的斜率,它总是应用这个斜率从而试图减小局部误差,因此,
delta规则不能区分误差空间中的全局最小点和局部最小点,它本身
不能克服单层神经网络的局限,无法直接应用到多层神经网络(易陷
入局部最小点),但它的一般形式是多层神经网络中的学习算法——
反传算法的核心。
在多层前向神经网络的训练过程中,误差导数或关于权值的误差
Page7of25
wijji+β⋅E⋅
=w
表面的斜率对权值的调整是至关重要的,在网络训练期间,所有的输
出神经元和隐含神经元权值必须同时调整,因此,有必要找出关于所
有权值的误差导数。
由于网络层数增多,平方误差ε与权值的连接没
有之前单个神经元时那么直接,故可以使用链式规则的概念来找到导
数。
下面对一个含有一层隐含神经元的BP网络进行讨论,网络结构
如下图所示:
x0=1
1
a0m
a01
∑
σ
y1
b1
y0=1
x1
1
b0
x2
1
∑
1
z
bm
an1
ym
xn
1
anm
∑
σ
各个神经元的输入输出关系为:
yi=
1
1+e-ui
n
j=0
x
m
m
i=0
设目标输出为t,则平方误差ε定义为:
Page8of25
ui=∑ajij,i=1,2,
z=v,v=∑biiy
1
2
使用链式法则,分别列出平方误差ε对所有网络参数的导数:
∂ε
∂v
=-(t-z)
∂ε
∂bi
∂ε
∂v
m
∂ε
∂yi
∂ε
∂v
m
=⋅=⋅
∂ui∂yi∂ui∂yi(1+e-ui)2
i=1,2,
m
∂ε
∂aji
=⋅=⋅xj,i=1,2,
m,j=0,1,2,
n
在实际的编程过程中,我们需要的是
∂ε
∂bi
和
∂ε
∂aji
,所以如果有需要,
也可以直接采用以下整理之后的形式:
∂ε
∂bi
=-(t-z)⋅yi,i=0,1,2,
m
∂ε
∂aji
e-ui
(1+e-ui)2
m,j=0,1,2,
n
研究表明,两层网络在其隐层中使用S形激励函数,在输出层中
使用线性传输函数,就几乎可以以任意精度逼近任意感兴趣的函数,
只要隐层中有足够的单元可用。
问题1:
试使用BP神经网络去逼近正弦函数的正半周,如下:
t=sin(x),x∈[0,π]
由于输入量x仅有一维,故BP神经网络结构可以设计为:
Page9of25