之前必须确定这些权值,而没有经过训练的神经网络的权值是没有任何意义的,神经网络的学习过程就是通过已知数据确定权值的过程。即通过这些权值使神经网络具有了一定的记忆功能,可以对数据的规律进行记忆(信息保存在权值中)。从而可以用于以后的预测。从已知数据确定权值是一个无约束最优化问题,典型的算法是BP法,对于前馈神经网络模型还有很多其他权值修正法。
2)人工神经元基本原理
人工神经元模型是生物神经元的模拟与抽象。这里所说的抽象是
从数学角度而言,所谓模拟是对神经元的结构和功能而言,相当于一个多输入单输出的非线性阐值器件。激活函数有许多种类型,其中比较常用的激活函数可归结为三种形式:闽值型,S型和线性型。
①人工神经元网络模型将前面介绍的神经元通过一定的结构组织起来,就可构成人工神经元网络。按照神经元连接的拓扑结构不同,可分为分层网络和相互连接型网络。分层网络是将一个神经元网络模型中的所有神经元按功能分为若干层,一般有输入层、中间层和输出层。相互连接型网络是指网络中任意两个单元之间都可以相互连接。
②神经元网络的学习过程模仿人的学习过程,人们提出了多种神经元网络。人工神经元模型的学习方式,其中主要三种:有导师学习、无导师学习和强化学习。学习是一个相对持久的变化过程,学习往往也是一个推理过程,例如通过经验也可以学习,学习是神经元网络最重要的能力。
③神经元网络的学习规则在学习过程中主要是网络的连接权的值发生了改变,学习到的内容也是记忆在连接权之中。学习规则有:Hebb学习规则、感知机 (Perception)学习规则、Delta学习规则等等。
④神经元网络的工作过程当网络训练好了以后,就可以正常进行工作,可以用来分析数据和处理问题。神经元网络的工作过程有许多种形式,比如回想和分类。
(2)BP网络
本文采用BP网络,BP网络学习规则的指导思想:对网络权值和阈值的修正要沿着表现函数下降最快的方向-负梯度方向.
xk?1?xk?akgk (5-11)
第 21 页 共 48 页
其中xk是当前的权值和阈值矩阵, gk是当前表现函数的梯度,ak是学习速度。 下面介绍B P算法的推倒过程。 假设三层BP网络,输入节点,隐层节点,输出节点.输入节点与隐层节点间的网络权值为,隐层节点与输出节点间的网络权值为.当输出节点的期望值为时,模型的计算公式如下: 隐层节点的输出
yj?f(?wjixi??j)?f(netj) (5-12)
i其中
netj??wjixi??j (5-13)
i输出节点的计算输出
zl?f(?vljyj??l)?f(netl) (5-14)
j其中
netl??vljyj??l (5-15)
j输出节点的误差
E?111 (tl?zl)2??(tl?f(?vljyj??l))2??(tl?f(?vljf(?wjixi??j)??l))2(5-16)?2l2l2jlji1)误差函数对输出节点求导
n?E?E?zk?E?zl (5-17) ????vljk?1?zk?vlj?zl?vljE是多个zk的函数. 但有一个zl与vlj有关,各zk间相互独立,其中
?z?E1??[?2(tk?zk)?k]??(tl?zl) (5-18) ?zl2k?zl?zl?zl?netl??f'(netl)?yj (5-19) ?vlj?netl?vlj则
?E??(tl?zl)?f'(netl)?yj (5-20) ?vlj第 22 页 共 48 页
设输入节点误差为
?l?(tl?zl)?f'(netl) (5-21)
则
?E???l?yj (5-22) ?vlj2)误差函数对隐层节点求导
?E?E?zl?yj (5-23) ??wji???z?y?wljjjilE是多个zl的函数,针对某一个wji,对应一个yj,它与所有zl有关,其中
?z?E1??[?2(tk?zk)?k]??(tl?zl) (5-24) ?zl2k?zl
?zl?z?netl?netl?l??f'(netl)?(?1)?f'(netl)?vlj(5-25) ??l?netl??l?yj?yj?yj?netj???f'(netl)?xi (5-26) ?wji?netj?wji则
?E???(tl?zl)?f'(netl)?vlj?f'(netj)?xi????lvlj?f'(netj)?xi(5-27) ?wjill设隐层节点误差为
?'j?f'(netj)???lvlj (5-28)
l则
?E???'jxi (5-29) ?wji由于权值的修正?vlj,?wji正比于误差函数沿梯度下降,则有
?wji???'?E??'?'jxi (5-30) ?wjivlj(k?1)?vlj(k)??vlj?vlj(k)???lyj (5-31)
?l??(tl?zl)?f'(netl) (5-32)
第 23 页 共 48 页
??l???E???l (5-33) ??l''wji(k?1)?wji(k)??wji?wji(k)???jxi (5-34)
?'j?f'(netj)???lvlj (5-35)
l其中隐层节点误差?'j中的??lvlj表示输出节点的zl的误差?l通过权值vlj向节点
lyj反向传播成为隐层节点的误差。
3)阈值的修正
阈值?也是变化值,在修正权值的同时也需要修正,原理同权值修正一样。误差函数对输出节点阈值求导
?E?E?zl (5-36) ???l?zl??l其中
?E??(tl?zl) (5-37) ?zl?zl?zl?netl???f'(netl)?(?1) (5-38) ??l?netl??l则
?E?(tl?zl)?f'(netl)??l (5-39) ??l阈值修正
??l???E???l (5-40) ??l?l(k?1)??l(k)???l (5-41)
误差函数对隐层节点阈值求导
?E?E?zl?yj (5-42) ????jl?zl?yj??j其中
第 24 页 共 48 页
?E??(tl?zl) (5-43) ?zl?zl?f'(netl)?vlj (5-44) ?yj?yj?yj?netj???f'(netj)?(?1)??f'(netj) (5-45) ??j?netj??j则
?E??(tl?zl)?f'(netl)?vlj?f'(netj)???lvlj?f'(netj)??'j(5-46) ??jll阈值修正
??j??'?E??'?'j (5-47) ??j''?j(k?1)??j(k)???j (5-48)
4)传递函数f(x)的导数 S型函数f(x)?则
1?x 1?ef'(x)?f(x)?(1?f(x)) (5-49)
f'(netk)?f(netk)?(1?f(netk)) (5-50)
对输出节点
zl?f(netl) (5-51)
f'(netl)?zl?(1?zl) (5-52)
对输出节点
yj?f(netj) (5-53)
f'(netj)?yj?(1?yj) (5-54)
求函数梯度有两种方法:递增和批处理。递增模式,就是每增加一个输入样本,重新计算一次梯度并调整权值;批处理模式,就是利用所有的输入样本计算梯度,然后调整权值。
第 25 页 共 48 页