1 第二章 神经网络 2.1神经网络基础
人的大脑中有众多神经元,它们连接在一起组成复杂的神经网络,因此大脑拥有高级的认知能力。人工神经网络实际上是对人大脑处理信息方法的简单化。 2.1.1神经网络概述 神经网络是推广众多简单处理单元构成的一种非线性动力学系统,能够大规模地进行信息分布式存储和并行处理。同时神经网络具有自学习的能力,当外界的环境发生了改变,神经网络经过训练能够在外界信息的基础上自动调整内部结构,对于给定的输入可以得到期望输出。 由图可知,神经元是一种性质为多输入单输出的系统,是由n个输入ix和一个输出jy组成。
ju
js 图2-1 神经元结构 ju:第j个神经元的状态;
j:第j个神经元的阈值;
ix:第i个神经元的输入信号;
jiw:第i个神经元到第j个神经元的连接权系数;
其中:激发状态时jiw取正数,抑制情况下jiw取的是负值; 2
js:第j个神经元的外部输入信号。
输出可以表示为
1njjiijjiNetwxs (2.1)
()jjufNet (2.2)
()()jjjyguhNet (2.3)
一般(.)g是单位映射,也就是说()jjguu 。 jNet表示第j个神经元的输入;
(.)f表示第j个神经元的激励函数; (.)g表示第j个神经元的输出函数。 激活函数往往采用这三种函数: (1)二值函数(阈值型): 1,0()0,0xfxx
(2.4)
(2) S型函数: 1()1xfxe
,0()1fx (2.5)
(3)双曲正切函数: 1()1xxefxe
,1()1fx (2.6)
2.1.2神经网络的分类 以连接方式对神经网络可分为两大类:一是没有反馈的前向网络,二是相互结合型网络(含有反馈网络)[10]。 (1)前向神经网络 3
每层的神经元仅仅会接受源于上一层神经元的输入,结构如图2-2: 输入层隐含层输出层 图2-2前向网络
(2)反馈型神经网络 如下图2-3所示,任一个神经元既能接收前一层节点的输入,也能接收后面节点的反馈输入。
输入输出
图2-3反馈型神经网络 2.1.3神经网络的特性 (1)具有学习和自适应性。 神经网络是先通过系统实际数据以达到训练网络的目的。在经过训练之后,后期如果输入中无训练时的数据情况下,网络也可以完成辨识功能。这个功能特性在预测分析趋势方面上有重大意义和广泛应用。 (2)非线性特性。 4
神经网络能够对任意的非线函数进行趋近,所以一般将其用于复杂的非线性系统当中。 (3)高速寻优特性。 在复杂问题中,如果要找到一个最优解,一般要通过繁重的计算量,然而通过神经网络,就可能快速得到优化解,这样比其他方法快捷实用。 (4)硬件处理。 神经网络除了可以通过软件,还能借助硬件来达到并行处理的目的。 2.2神经网络基础 2.2.1单神经元感知器 单层感知器只有一个神经元模型,如图2-2显示:
图2-2单层神经元感知器 n个输入构成的输入向量X,12TnXxxx
神经元的净输入表示为:
1niiiNetwx (2.7)
当感知器的激发函数取阈值型函数时,此时,神经元的输出为: 10()00NetyNetNet
(2.8)
激活函数采用值域为[-1,+1]的符号函数时,输出取: 1,0()1,0NetyNetNet
(2.9)
...
1xy1w
nw2w
nx2
x
5
如果把偏置也看为权值,那么感知器的矢量形式可以表示为: TNetwX (2.10)
感知器将X分成1和2两种,以激活函数取符号函数为例:若感知器输出是1,就把12,,...,mXxxx表示的点放入1类,同样,输出是1的话,就分入2
类。
如果1和2可分的话,那么方程10niiiwx就定义了一个n维空间上的超平面(处在二维空间时超平面是一条直线),这个方程叫作线性方程。若这两类输入向量能通过超平面区开,就是线性可分,否则是不可分。
一些具有非线性可分的集合分类问题大大超出了感知器的计算能力,也就是说感知器只能在简单分类问题上发挥作用。 2.2.2多层感知器
实质上是在输入层和输出层中间增加一个或者多个隐含层。输入向量从外部进到第一层中,然后该层的各个神经元的输出会被传递到第二层各神经元,依次类推,直至网络的输出。其结构如图2-2所示。
输入层隐含层输出层 图2-2多层感知器结构图 每一个神经元都能由单个的M-P模型来表示,采用的激活函数中比较常用的为Sigmoid函数: 6
1()1NetyNete
(2.11)
式中:0,是用来控制函数上升的陡峭程度,一般常取1使得函数简单化。 因为 Sigmoid函数是可微的,这就使得通过权值向量调整的自适应算法成为可能。感知器的训练算法使用规则,若有目标向量,经过有限时间的训练后,能够收敛至正确的目标向量。训练学习结束以后,样本的模式是通过权值、阈值的形式存储在网络中。
多层感知器网络特点: (1) 层跟层之间是有联系的,第l层的任何的一个节点和第1l层的任一个节点为前馈相连的。
(2)输入层有n个节点,它仅被用来获取外部信息的,因为其自身是没有函数处理这一能力的。
(3) 信息在层跟层中的传递是有目的性的,信息传递在同层之间无影响的,只会对下一层神经元产生影响。 2.2.3 BP神经网络 BP网络的学习过程: (1)信号的正向传输; (2)偏差的反向传播。 7
图2-3 BP神经网络结构图 在进行正向传输阶段时,输入样本数据在经过各个隐层逐一处理之后,最后向输出层传播。把输出层实际输出和期望输出相比较,如果这两个输出值不相等的话,则会步入反向传输阶段。反向传播过程的意义是把误差以某种形式,经由隐含层再到输入层逐层传播,最后把输出误差平均分到各层的全部单元,得出各层神经元的误差信号,这个信号就是修正各个神经元连接权值的依据[11]。 上面所说的两个过程不断循环往复,直至网络输出的误差达到要求,或者是到达规定的学习次数就可以结束训练。
(1)前向传输过程 为了方便计算,采用Sigmoid函数,其表达式为: 1()1NetfNete
(2.12)
其导数为: '()()()(1())dfNetfNetfNetfNetdNet (2.13)
根据上面的公式: 8
网络第l层第j个节点的输入: 1,,,1,0,1,2lNljljiliiNetwul
(2.14)
输出,lju为: 1,,,1,0lNljljiliiufwu
(2.15)
其中:,lju是第l层第j个节点的输出; ,,ljiw是第1l层中第i个节点和第l层中第j个神经元节点的连接权值; (2)偏差的反向传播 网络的输出和期望输出不尽相同的情况下,偏差E产生,表示为:
1PppEE
(2.16)
其中:P是所训练样本的个数; 2
,11()()2LNpLqpqpqEuxdx
()jpdx:训练样本px在第j个输出节点的期望输出;
LN:输出层节点的个数。
将上面公式展开到隐层: 1122,,1,101()2NNpjiiqpqiEfwudx
(2.17)
进而再把上面的式子展开到输入层: 9
011
2
2,,1,,1001()2NNNpjijiiqpqiiEfwfwxdx
(2.18)
从上面那个公式,我们能够得到,网络输出的偏差是关于权值,,ljiw的函数,所
以调节偏差能够采用调整权值的手段。权值调节是根据使偏差逐渐减小为规则的,也就是让权值的变化量和误差的梯度下降成为正比,即:
,,,,ljilji
Eww
(2.19)
其中,叫作学习率,表示比例系数,(0,1)。调节之后的权值是 ,,,,,,(1)()()ljiljiljiwkwkwk 推导如何得到式子(2.19)的理论过程。 由式(2.16),有
1,,,,PppljiljiEEww
(2.20)
借由链式求导规则: ,,,,,,ppljljiljlji
EEuwuw
(2.21)
考虑右端第二个因子,由式(2.17)有:
11,,,1,0,,,,'',,1,1,,1,0 llNljljklkkljiljiNljklkliljlikufwuwwfwuufuu
(2.22)
把公式(2.13)代进入式子(2.20),得到: ,,,1,,,1lj
ljljliljiuuuuw
(2.23)
对于,plj
Eu这一项,定义,,,ppljljEu为广义偏差以方便说明。这一项的计算
过程可以看作是系统偏差进行反向传播的过程。