人工神经网络及其应用实例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
E 2 (t
1 2 1 2 1 )2 wx b 1 e
根据 delta 规则,最优权值(使平方误差最小)可以在训练过程 中从初始权值出发,沿负梯度方向下降得到。将平方误差对 w, b (神 经元的可调整参数)进行微分,得:
eu E u (1 e u ) 2 u eu E x w u w (1 e u ) 2 u eu E b u b (1 e u ) 2
y L(u ) 1 1 eu
函数曲线如下图所示:
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 附近随着输入的增加以相对快的
z v, v bi yi
i 0
根据之前的推导,平方误差 对所有网络参数的导数为:
(t z ) yi , i 0,1, 2 bi
eui (t z ) bi x j , i 1, 2, j 0,1 a ji (1 eui )2
Page 8 of 25
(t z )2
1 2
使用链式法则,分别列出平方误差 对所有网络参数的导数:
(t z ) v
yi , i 0,1, 2, bi v bi , i 1, 2, yi v
,m
,m
yi eui , i 1, 2, ui yi ui yi (1 eui )2
根据 delta 原则,权值改变应与误差梯度的负值成比例,引入学 习率 ,每次迭代中的权值改变可表示为:
eu w E x w (1 e u ) 2 eu b E b (1 e u ) 2
Page 6 of 25
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -6
-4
-2
0
2
4
6
连续型非线性元件: y tanh( x) ,便于解析性计算及器件模拟,是 当前研究的主要元件之一。
Page 1 of 25
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -6
-4
-2
0
2
4
6
离散型非线性元件: y
k ji
为加快寻找最优权值的速度,可以使用动量法。之前的方法中, 收敛到最优权值的速度取决于学习率的大小, 但是过大的学习率会导 致来回震荡,不能稳定到最优权值点。动量法的引入,使得较大的学 习率也可以具有较好的稳定性, 即提供了在学习期间到达最优权值时
Page 10 of 25
的稳定性。 这种方法基本上是将过去权值变化的平均值附加到每一次 权值变化的新权值增量,从而使网络权值的变化更平滑。数学表示如 下:
,m
ui x j , i 1, 2, a ji ui a ji ui
, m, j 0,1, 2,
,n
在实际的编程过程中, 我们需要的是 也可以直接采用以下整理之后的形式:
和 , 所以如果有需要, a ji bi
(t z ) yi , i 0,1, 2, bi
学习率 决定了沿梯度方向的移动速度,以确定新的权值。大的
值会加快权值的改变,小的 值则减缓了权值的改变。第 i 次迭代
后的新权值可表示为:
wi 1 wi E bi 1 bi E eu x (1 e u ) 2
eu (1 e u ) 2
Page 5 of 25
速率增加并非常慢地到达上限。对于 u 0 ,输出起初减少得很快,然 后随着下限的接近将会变慢。 训练神经元的规则有很多种,这里首先介绍利用 delta 规则的学 习,神经元选择为一个单输入单输出的简单情形,数学描述如下:
u wx b, y 1 1 eu
t sin( x), x [0, ]
由于输入量 x 仅有一维,故 BP 神经网络结构可以设计为:
Page 9 of 25
x0 1
a01
y1 b1
y0 1
a02
b0
a11 a12
x1 x
1
z
b2
y2
各个神经元的输入输出关系为:
yi
1 1 , u a ji x j , i 1, 2 i 1 eui j 0 2
eui (t z ) bi x j , i 1, 2, a ji (1 eui )2
,m
, m, j 0,1, 2,
,n
研究表明,两层网络在其隐层中使用 S 形激励函数,在输出层中 使用线性传输函数,就几乎可以以任意精度逼近任意感兴趣的函数, 只要隐层中有足够的单元可用。 问题 1: 试使用 BP 神经网络去逼近正弦函数的正半周,如下:
网络参数修正方程为:
bik 1 bik
k 1 ji
bik (t z ) yi , i 0,1, 2 bi
a
eui k a a ji (t z ) bi x j , i 1, 2, j 0,1 a ji (1 eui )2
wk 1 wk (1 ) ( ) w
式中, 是一个在 0 和 1 之间的动量参数, wk 是在前一个训练 时间里的权值变化。使用动量法的实际效果是:基本上,如果以前积 累的变化与之前方向所暗示的是同一个方向时, 动量部分就会加速当 前权值改变;如果当前积累的变化是相反的方向,动量将阻止当前的 变化。 据此编写 MATLAB 程序,源代码如下:
y ( w j x j b)
j 1 n
这里输入的加权和(括号内部分)由一个非线性函数传递, b 表 示与偏差输入相关的权值, w j 表示与第 j 个输入相关的权值。 使用最广泛的函数是 S 形函数, 其曲线家族包括对数函数和双曲 正切函数,这些都可用来对人口动态系统、经济学系统等建模。另外 所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展 开介绍,本文主要使用的激励函数是对数函数,函数表达式为:
beta = 0.1; miu = 0.8; for i = 1 : 1 : 101; x1(1, i) = (i - 1) * pi / 100; t(1, i) = sin(x1(1, i)); end x0 = 1; y0 = 1; a01 = rand(); a02 = rand(); a11 = rand(); a12 = rand(); b0 = rand(); b1 = rand(); b2 = rand(); delta_a01 = 0; delta_a02 = 0; delta_a11 = 0; delta_a12 = 0; delta_b0 = 0; delta_b1 = 0; delta_b2 = 0; k = 1; total_error = 0;
人工神经网络及其应用实例
人工神经网络是在现代神经科学研究成果基础上提出的一种抽 象数学模型,它以某种简化、抽象和模拟的方式,反映了大脑功能的 若干基本特征,但并非其逼真的描写。 人工神经网络可概括定义为: 由大量简单元件广泛互连而成的复 杂网络系统。所谓简单元件,即人工神经元,是指它可用电子元件、 光学元件等模拟,仅起简单的输入输出变换 y ( x) 的作用。下图是 3 中常用的元件类型: 线性元件: y 0.3x ,可用线性代数法分析,但是功能有限,现在 已不太常用。
Page 7 of 25
表面的斜率对权值的调整是至关重要的,在网络训练期间,所有的输 出神经元和隐含神经元权值必须同时调整,因此,有必要找出关于所 有权值的误差导数。由于网络层数增多,平方误差 与权值的连接没 有之前单个神经元时那么直接, 故可以使用链式规则的概念来找到导 数。 下面对一个含有一层隐含神经元的 BP 网络进行讨论,网络结构 如下图所示:
该神经元具有一个输入 x ,权重为 w ,偏差输入为 b ,目标输出 为 t ,预报输出为 y 。则预报误差为:
E t y t 1 1 t u 1 e 1 e wx b
为消除当误差在整个输入模式上求和时引起的误差符号问题, 在 delta 规则里使用的误差指示是平方误差,定义为:
如果将偏差输入 b 视为输入 x 的一部分,令 x0 1, w0 b ,可以得到 对于多输入神经元的权值修正式:
wij1 wij E eu x j , j 0,1, 2, (1 eu )2 ,n
总之,利用 delta 规则的有监督的学习可以按如下方法来实现: 一个输入模式( x0 , x1 , x2 , , xn )通过连接被传递,它的初始权值被设置 为任意值。对加权的输入求和,产生输出 y ,然后 y 与给定的目标输 出 t 做比较决定此模式的平方误差 。输入和目标输出不断地被提出, 在每一次迭代或每一个训练时间后利用 delta 规则进行权值调整直到 得到可能的最小平方误差。 delta 规则在每一步中通过导数寻找在误差平面中某个特定点局 部区域的斜率,它总是应用这个斜率从而试图减小局部误差,因此, delta 规则不能区分误差空间中的全局最小点和局部最小点,它本身 不能克服单层神经网络的局限,无法直接应用到多层神经网络(易陷 入局部最小点) ,但它的一般形式是多层神经网络中的学习算法—— 反传算法的核心。 在多层前向神经网络的训练过程中, 误差导数或关于权值的误差
x0 1
1
a01
wk.baidu.com
y1 b1
y0 1
a0 m
x1
1
b0
x2
1
bm an1
1
z
xn
1
anm
ym
各个神经元的输入输出关系为:
yi
n 1 , u a ji x j , i 1, 2, i 1 eui j 0 m
,m
z v, v bi yi
i 0
设目标输出为 t ,则平方误差 定义为:
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
Page 2 of 25
每一神经元有许多输入、输出键,各神经元之间以连接键(又称 突触)相连,它决定神经元之间的连接强度(突触强度)和性质(兴 奋或抑制) , 即决定神经元间相互作用的强弱和正负, 共有三种类型: 兴奋型连接、 抑制型连接、 无连接。 这样,N 个神经元 (一般 N 很大) 构成一个相互影响的复杂网络系统,通过调整网络参数,可使人工神 经网络具有所需要的特定功能,即学习、训练或自组织过程。一个简 单的人工神经网络结构图如下所示:
Page 3 of 25
多层侧抑制神经网络模型和带有反馈的多层神经网络模型等。 本文主 要探讨前向网络模型。 多层前向神经网络不具有侧抑制和反馈的连接方式, 即不具有本 层之间或指向前一层的连接弧,只有指向下一层的连接弧。代表是 BP 神经网络:输入模式由输入层进入网络,经中间各隐层的顺序变 换,最后由输出层产生一个输出模式,如下图所示:
上图中, 左侧为输入层 (输入层的神经元个数由输入的维度决定) , 右侧为输出层(输出层的神经元个数由输出的维度决定) ,输入层与 输出层之间即为隐层。 输入层节点上的神经元接收外部环境的输入模式, 并由它传递给 相连隐层上的各个神经元。隐层是神经元网络的内部处理层,这些神 经元在网络内部构成中间层,不直接与外部输入、输出打交道。人工 神经网络所具有的模式变换能力主要体现在隐层的神经元上。 输出层 用于产生神经网络的输出模式。 多层神经网络结构中有代表性的有前向网络(BP 网络)模型、
输入层
隐层
输出层
多层前向神经网络由隐层神经元的非线性处理衍生它的能力, 这 个任务的关键在于将神经元的加权输入非线性转换成一个输出的非 线性激励函数。下图给出了一个接收 n 个输入 x1 , x2 , , xn 的神经元:
b
x1 x2
w1 w2 wn
1
y
xn
Page 4 of 25
神经元的输出由下式给出:
1 2 1 2 1 )2 wx b 1 e
根据 delta 规则,最优权值(使平方误差最小)可以在训练过程 中从初始权值出发,沿负梯度方向下降得到。将平方误差对 w, b (神 经元的可调整参数)进行微分,得:
eu E u (1 e u ) 2 u eu E x w u w (1 e u ) 2 u eu E b u b (1 e u ) 2
y L(u ) 1 1 eu
函数曲线如下图所示:
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 附近随着输入的增加以相对快的
z v, v bi yi
i 0
根据之前的推导,平方误差 对所有网络参数的导数为:
(t z ) yi , i 0,1, 2 bi
eui (t z ) bi x j , i 1, 2, j 0,1 a ji (1 eui )2
Page 8 of 25
(t z )2
1 2
使用链式法则,分别列出平方误差 对所有网络参数的导数:
(t z ) v
yi , i 0,1, 2, bi v bi , i 1, 2, yi v
,m
,m
yi eui , i 1, 2, ui yi ui yi (1 eui )2
根据 delta 原则,权值改变应与误差梯度的负值成比例,引入学 习率 ,每次迭代中的权值改变可表示为:
eu w E x w (1 e u ) 2 eu b E b (1 e u ) 2
Page 6 of 25
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -6
-4
-2
0
2
4
6
连续型非线性元件: y tanh( x) ,便于解析性计算及器件模拟,是 当前研究的主要元件之一。
Page 1 of 25
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -6
-4
-2
0
2
4
6
离散型非线性元件: y
k ji
为加快寻找最优权值的速度,可以使用动量法。之前的方法中, 收敛到最优权值的速度取决于学习率的大小, 但是过大的学习率会导 致来回震荡,不能稳定到最优权值点。动量法的引入,使得较大的学 习率也可以具有较好的稳定性, 即提供了在学习期间到达最优权值时
Page 10 of 25
的稳定性。 这种方法基本上是将过去权值变化的平均值附加到每一次 权值变化的新权值增量,从而使网络权值的变化更平滑。数学表示如 下:
,m
ui x j , i 1, 2, a ji ui a ji ui
, m, j 0,1, 2,
,n
在实际的编程过程中, 我们需要的是 也可以直接采用以下整理之后的形式:
和 , 所以如果有需要, a ji bi
(t z ) yi , i 0,1, 2, bi
学习率 决定了沿梯度方向的移动速度,以确定新的权值。大的
值会加快权值的改变,小的 值则减缓了权值的改变。第 i 次迭代
后的新权值可表示为:
wi 1 wi E bi 1 bi E eu x (1 e u ) 2
eu (1 e u ) 2
Page 5 of 25
速率增加并非常慢地到达上限。对于 u 0 ,输出起初减少得很快,然 后随着下限的接近将会变慢。 训练神经元的规则有很多种,这里首先介绍利用 delta 规则的学 习,神经元选择为一个单输入单输出的简单情形,数学描述如下:
u wx b, y 1 1 eu
t sin( x), x [0, ]
由于输入量 x 仅有一维,故 BP 神经网络结构可以设计为:
Page 9 of 25
x0 1
a01
y1 b1
y0 1
a02
b0
a11 a12
x1 x
1
z
b2
y2
各个神经元的输入输出关系为:
yi
1 1 , u a ji x j , i 1, 2 i 1 eui j 0 2
eui (t z ) bi x j , i 1, 2, a ji (1 eui )2
,m
, m, j 0,1, 2,
,n
研究表明,两层网络在其隐层中使用 S 形激励函数,在输出层中 使用线性传输函数,就几乎可以以任意精度逼近任意感兴趣的函数, 只要隐层中有足够的单元可用。 问题 1: 试使用 BP 神经网络去逼近正弦函数的正半周,如下:
网络参数修正方程为:
bik 1 bik
k 1 ji
bik (t z ) yi , i 0,1, 2 bi
a
eui k a a ji (t z ) bi x j , i 1, 2, j 0,1 a ji (1 eui )2
wk 1 wk (1 ) ( ) w
式中, 是一个在 0 和 1 之间的动量参数, wk 是在前一个训练 时间里的权值变化。使用动量法的实际效果是:基本上,如果以前积 累的变化与之前方向所暗示的是同一个方向时, 动量部分就会加速当 前权值改变;如果当前积累的变化是相反的方向,动量将阻止当前的 变化。 据此编写 MATLAB 程序,源代码如下:
y ( w j x j b)
j 1 n
这里输入的加权和(括号内部分)由一个非线性函数传递, b 表 示与偏差输入相关的权值, w j 表示与第 j 个输入相关的权值。 使用最广泛的函数是 S 形函数, 其曲线家族包括对数函数和双曲 正切函数,这些都可用来对人口动态系统、经济学系统等建模。另外 所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展 开介绍,本文主要使用的激励函数是对数函数,函数表达式为:
beta = 0.1; miu = 0.8; for i = 1 : 1 : 101; x1(1, i) = (i - 1) * pi / 100; t(1, i) = sin(x1(1, i)); end x0 = 1; y0 = 1; a01 = rand(); a02 = rand(); a11 = rand(); a12 = rand(); b0 = rand(); b1 = rand(); b2 = rand(); delta_a01 = 0; delta_a02 = 0; delta_a11 = 0; delta_a12 = 0; delta_b0 = 0; delta_b1 = 0; delta_b2 = 0; k = 1; total_error = 0;
人工神经网络及其应用实例
人工神经网络是在现代神经科学研究成果基础上提出的一种抽 象数学模型,它以某种简化、抽象和模拟的方式,反映了大脑功能的 若干基本特征,但并非其逼真的描写。 人工神经网络可概括定义为: 由大量简单元件广泛互连而成的复 杂网络系统。所谓简单元件,即人工神经元,是指它可用电子元件、 光学元件等模拟,仅起简单的输入输出变换 y ( x) 的作用。下图是 3 中常用的元件类型: 线性元件: y 0.3x ,可用线性代数法分析,但是功能有限,现在 已不太常用。
Page 7 of 25
表面的斜率对权值的调整是至关重要的,在网络训练期间,所有的输 出神经元和隐含神经元权值必须同时调整,因此,有必要找出关于所 有权值的误差导数。由于网络层数增多,平方误差 与权值的连接没 有之前单个神经元时那么直接, 故可以使用链式规则的概念来找到导 数。 下面对一个含有一层隐含神经元的 BP 网络进行讨论,网络结构 如下图所示:
该神经元具有一个输入 x ,权重为 w ,偏差输入为 b ,目标输出 为 t ,预报输出为 y 。则预报误差为:
E t y t 1 1 t u 1 e 1 e wx b
为消除当误差在整个输入模式上求和时引起的误差符号问题, 在 delta 规则里使用的误差指示是平方误差,定义为:
如果将偏差输入 b 视为输入 x 的一部分,令 x0 1, w0 b ,可以得到 对于多输入神经元的权值修正式:
wij1 wij E eu x j , j 0,1, 2, (1 eu )2 ,n
总之,利用 delta 规则的有监督的学习可以按如下方法来实现: 一个输入模式( x0 , x1 , x2 , , xn )通过连接被传递,它的初始权值被设置 为任意值。对加权的输入求和,产生输出 y ,然后 y 与给定的目标输 出 t 做比较决定此模式的平方误差 。输入和目标输出不断地被提出, 在每一次迭代或每一个训练时间后利用 delta 规则进行权值调整直到 得到可能的最小平方误差。 delta 规则在每一步中通过导数寻找在误差平面中某个特定点局 部区域的斜率,它总是应用这个斜率从而试图减小局部误差,因此, delta 规则不能区分误差空间中的全局最小点和局部最小点,它本身 不能克服单层神经网络的局限,无法直接应用到多层神经网络(易陷 入局部最小点) ,但它的一般形式是多层神经网络中的学习算法—— 反传算法的核心。 在多层前向神经网络的训练过程中, 误差导数或关于权值的误差
x0 1
1
a01
wk.baidu.com
y1 b1
y0 1
a0 m
x1
1
b0
x2
1
bm an1
1
z
xn
1
anm
ym
各个神经元的输入输出关系为:
yi
n 1 , u a ji x j , i 1, 2, i 1 eui j 0 m
,m
z v, v bi yi
i 0
设目标输出为 t ,则平方误差 定义为:
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
Page 2 of 25
每一神经元有许多输入、输出键,各神经元之间以连接键(又称 突触)相连,它决定神经元之间的连接强度(突触强度)和性质(兴 奋或抑制) , 即决定神经元间相互作用的强弱和正负, 共有三种类型: 兴奋型连接、 抑制型连接、 无连接。 这样,N 个神经元 (一般 N 很大) 构成一个相互影响的复杂网络系统,通过调整网络参数,可使人工神 经网络具有所需要的特定功能,即学习、训练或自组织过程。一个简 单的人工神经网络结构图如下所示:
Page 3 of 25
多层侧抑制神经网络模型和带有反馈的多层神经网络模型等。 本文主 要探讨前向网络模型。 多层前向神经网络不具有侧抑制和反馈的连接方式, 即不具有本 层之间或指向前一层的连接弧,只有指向下一层的连接弧。代表是 BP 神经网络:输入模式由输入层进入网络,经中间各隐层的顺序变 换,最后由输出层产生一个输出模式,如下图所示:
上图中, 左侧为输入层 (输入层的神经元个数由输入的维度决定) , 右侧为输出层(输出层的神经元个数由输出的维度决定) ,输入层与 输出层之间即为隐层。 输入层节点上的神经元接收外部环境的输入模式, 并由它传递给 相连隐层上的各个神经元。隐层是神经元网络的内部处理层,这些神 经元在网络内部构成中间层,不直接与外部输入、输出打交道。人工 神经网络所具有的模式变换能力主要体现在隐层的神经元上。 输出层 用于产生神经网络的输出模式。 多层神经网络结构中有代表性的有前向网络(BP 网络)模型、
输入层
隐层
输出层
多层前向神经网络由隐层神经元的非线性处理衍生它的能力, 这 个任务的关键在于将神经元的加权输入非线性转换成一个输出的非 线性激励函数。下图给出了一个接收 n 个输入 x1 , x2 , , xn 的神经元:
b
x1 x2
w1 w2 wn
1
y
xn
Page 4 of 25
神经元的输出由下式给出: