1、 毕业论文文献综述 计算机科学与技术 基于人工神经网络的赤潮预测方法研究 引言: 近年来,赤潮发生的频率越来越高,对海洋渔业、海水养殖业和滨海旅游业等均造成了一定的危害,经济损失严重。因此,弄清楚赤潮发生的机理并对其进行准确地预报,对预防赤潮的发生以及减少赤潮灾害带来的损失至关重要。鉴于赤潮突发性和复杂性和对其机理的认识,目前常用的预测方法主要依据赤潮影响因子的变化判断其是否发生,它是一个模式识别过程。由于生态系统各因子之间表现出高度的非线性和不确定性,传统的预测方法有效的很少。 人工神经网络具有较好的处理非 线性模式识别特性,它独特的信息处理和解算能力对机制尚不明确的高维非线性系统具有很好的
2、建模能力。目前神经网络在生态系统模拟、生态数据处理以及要干生态参数的提取方面等方面得到广泛应用 1, 2。本文介绍一种常见的神经网络算法网络,即 BP( Back Propagation)网络,以及它在赤潮预测中的应用。 1 赤潮及赤潮的预测研究 1.1 赤潮 赤潮 (red tide)也称红潮,通常是指一些海洋微藻、原生动物或细菌在水体中过度繁殖或聚集而令海水变色的现象,藻华 (algal bloom)有时称水华或藻花,是指水体中藻 类大量繁殖的一种现象,习惯上将水体中藻类达到一定密度后的藻华称作赤潮 3。自 20 世纪 70年代有比较齐全的赤潮资料以来,我国赤潮发生主要有以下趋势:赤潮的发
3、生以每 10 年 3倍的速度不断上升;赤潮的规模不断扩大;危害程度增加。 有害赤潮是一种有多种因素综合作用引起的生态异常现象,人们至今还没有对其发生机理有完整、统一的认识,而且赤潮生物的繁殖与其影响因子之间具有高度的复杂性和非线性,从而很难采用传统的偏微分方程对其规律进描述。在这种情况下,以数据挖掘技术为主的数据驱动模型就开始显示出其优势。其中,人工神经网络 ANN(Artificial Neural Network)的应用最为广泛,尤其是在寻求和建立信号输入和输出方面,具有许多其他方法所不具有的优势,并在实际应用中取得了很好的效果 4。 1.2 赤潮的预测 赤潮是一种由多因素综合作用引发的生
4、态异常现象,具有突发性及非线性等特点,并且赤潮生物种类繁多,不同海域发生赤潮的主要影响因子又不尽相同,因此,对其进行成功预测并进行有效的预防减灾已成为社会迫切需要 5。国内外学者从不同角度开展了赤潮预测的研究,并提出了众多的赤潮预测方法。近几年随着计算机软件技术、人工智能 以及生物技术的迅猛发展,人们开始探索将其应用与赤潮的预测。 20世纪 90年代, RECKNAGEL6将 ANN(Artificial neural networks)运用于蓝 -绿藻的种类丰度和演替预测研究,结果证明, ANN浮游植物模型具有较好的预测潜力,并促进了 ANN在水华、赤潮方面的研究。 WILSON和 RECK
5、NAGEL7与 KUDELA和 COCHLAN8虽然将 ANN应用于赤潮预测计算中,但未在网络结构的优化方面做工作,而国内的一些学者则在这一方面作了大量的工作。蔡如钰 9、董婧等 10、吴京洪 11谢中华和晏丽红 12等在人工神经网络对赤潮进行预测方面做出了巨大贡献。 上述研究初步表明, ANN用于赤潮生物生长的研究是一种行之有效的新途径,与传统统计模型相比有一定的优越性,与传统统计模型相比,人工神经网络方法不要求监测数据具有很强的规律性,就可以用训练后的网络模型对其进行预测,具有一定的实用性。 2 人工神经网络及 BP 算法网络 人工神经网络 (Artificial Neural Netwo
6、rk)是指由大量与自然神经系统细胞类似的人工神经元连接而形成的网络,其由应用工程技术、计算机手段模拟生物神经 网络的结构和功能,实现只是并行分别处理,是一个人工智能信息处理系统,与较高的建模能力和对数据良好的拟合能力 13。 人工神经网络模仿人脑神经的活动,力图建立脑神经活动的数学模型。近年来,只能控制作为一门新的交叉学科蓬勃兴起。人们在更高层次上寻求控制、计算机和神经生理学的新结合,以此来解决显示世界中常规控制论难以解决的一些问题。 2.1 神经网络国内外研究现状 20 世纪 90 年代以来,神经网络网络的应用领域迅速扩大。近百种近百种网络结构、学习算法相继出现,硬件实现的研究工作也取得了重
7、要进展。神经网络理论的应 用研究已经渗透到大量的工程领域,并取得了令人瞩目的成果。 1987 年 6月 IEEE在 San Diego 召开了第一节神经网络会议,标志着神经网络研究在世界范围内形成了高潮,此后国际上每年都有以神经网络为主题的国际会议召开。随着神经网络理论研究的进展,其应用产品开发也获得了初步的成功。目前已有的神经网络应用产品有 HNC 公司的手写体识别, Neural teach 的专家系统设计, HNC 的脑电图分析, HNC 和 AI-WARE 的过程与机器人控制等众多产品。在举世瞩目的海湾战争中,美国空军也采用了神经网络进行决策和控制 。 近年 来,我国在神经网络的研究方
8、面发展规模大、速度快而且取得了不少成果。中国科学院半导体研究所神经网络组在王守觉院士的带领下,研究开发了一种适合我国神经网络研究需要的通用神经网络处理机 -“预言神” 神经计算机;承担的“九五”国家重点攻关“半导体神经网络技术及其应用” 、“高精度双权值突出神经计算机”、“高速二值 Hopfield 网络神经计算机”等项目于 2000 年 12 月通过了中科院的鉴定、验收。我国在神经网络的应用研究中的另一项具有较大影响的成果是国防科技大学的胡守仁教授等人研制成功的一个通用神经网络模拟系统 NNSS,该系统能按用户意图建立各种复杂的互连模型,实现从学习、分别到识别结果的全过程 14。 2.2 B
9、P 神经网络 (一)、 BP 神经网络的基本原理 BP( Back Propagation)网络是 1986 年由 Rumelhart和 McCelland 为首的科学家小组提出,是一种按 误差逆传播 算法训练的 多层前馈网络 ,是目前应用最广泛的神经网络模型之一。 BP 网络能学习和存贮大量的输入 -输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。 它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络 的误差平方和最小。 BP 神经网络模型拓扑结构包括输入层( input layer)、隐层 (hide layer)和输出层 (output layer)(
10、图 1)。 .X 1 ( p )X 2 ( p )X n ( p )O 1 ( p )O 2 ( p )O n ( p )输 入 层 节 点 隐 层 节 点 输 出 层 节 点 图 1 神经网络结构示意图 (二)、 BP 网络及其权值调整规则 1、 BP 算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层隐层输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空 间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程
11、。 1.1 正向传播 X 1X i.X nn q mVWZ 1Z kZ p.,.Y 1Y jY mj图 2 前向运算(正向传播) 设 BP 网络的输入层有 n 个节点,隐层有 q 个节点,输出层有 m 个节点,输入层与隐层之间的权值为 kiv ,隐层与输出层之间的权值为 jkw ,如图 5.4 所示。隐层的传递函数为f1( ),输出层的传递函数为 f2( ),则隐层节点的输出为(将阈值写入求和项中): )( 01 ni ikik xvfz qk ,.,2,1 ( 1.1) 输出层节点的输出为: )( 02 qk kjkj zwfy mj ,.,2,1 ( 1.2) 至此 B-P 网络就完成了
12、n 维空间向量对 m 维空间的近似映射。 1.2 反向传播 1) 定义误差函数 输入 p 个学习样本,用 pxxx ,., 21 来表示。第 p 个样本输入到网络后得到输出 pjy( mj ,.,2,1 )。采用平方型误差函数,于是得到第 p 个样本的误差 pE : mjpjpjp ytE12)(21 ( 1.3) 式中: pjt 为期望输出。 对于 P 个样本,全局误差为: Pp mj Pp ppjpj EytE 1 1 1)(21 ( 1.4) 2)输出层权值的变化 采用累计误差 BP 算法调整 jkw ,使全局误差 E 变小,即 Pp jkpPp pjkjkjk wEEwwEw 11 )
13、()( ( 1.5) 式中: 学习率 定义误差信号为: ijjpjpyj SyyESE ( 1.6) 其中第一项: mj pjpjmj pjpjjjp ytytyyE 11 2 )()(21 ( 1.7) 第二项: )(2 jjj SfSy ( 1.8) 是输出层传递函数的偏微分。 于是: )()( 21 jmj pjpjyj Sfyt ( 1.9) 由链定理得: mj kjpjpjkyjjkjjpjkp zSfytzwSSEwE 1 2 )()( ( 1.10) 于是输出层各神经元的权值调整公式为: kjppmjpjpjjk zSfytw )()( 21 1 ( 1.11) 3)隐层权值的变
14、化 pp kippp pkikiki vEEvvEv 11 )()( ( 1.12) 定义误差信号为: kkkpkpk SzzESEz ( 1.13) 其中第一项: kjmjpjpjmjpjpjkkp zyytytzzE 112 )()(21 ( 1.14) 依链定理有: jkjkjjjkj wSfzSSyzy )(2( 1.15) 第二项: )(1 kkk SfSz ( 1.16) 是隐层传递函数的偏微分。 于是: )()()( 11 2 kjkmj jpjpjzk SfwSfyt ( 1.17) 由链定理得: ikjkjmjpjpjizkkikkpkip xSfwSfytxvSSEvE )
15、()()(121 ( 1.18) 从而得到隐层各神经元的权值调整公式为: ikjppmjki xSfSfv )()()11 12 ( 1.19) 1.3 BP 算法的改进 BP 算法用于具有非线性转移函数的三层前 馈网后可以以任意精度逼近任何非线性函数,这一非凡优势使 BP 网络得到越来越广泛的应用。然而标准的 BP 算法在应用中暴露出不少内在的缺陷。 ( 1)、易想成局部最小得不到全局最优。 ( 2)、训练吃素多使得学习效率低,收敛速度慢。 ( 3)、隐节点的选取缺乏理论指导。 ( 4)、训练时学习新样本有遗忘旧样本的趋势。 针对上述问题,国内外已提出不少有效的改进算法,线面介绍几种常用的方
16、法。 1.3.1 增加动量项 一些学者于 1986 年提出,标准 BP 算法在调整权值时,只按 t 时刻误差的梯度降方向调整,而没有考虑 t 时刻以前的梯度方向 ,从而常使训练过程发生震荡,收敛缓慢。为了提高网络的训练速度,可以在权值的调整公式中加入一动量项。若用 W 代表某层权矩阵, X某层输入向量,则含有动量项的牵制调整向量表达式为 )1()( tWXtW (1.20) 可以看出,增加动量项即从前权值一次调整量中去除一部分叠加到本次权值调整量中, 为动量系数, )1,0( 。动量项反映了以前积累的调整经验,对于 t 时刻的调整其阻尼作用。当误差曲面出现骤然起伏时,克减小震荡趋势,调高训练速
17、度。目前, bp 算法中都增加了动量项,以至于有动量项的 BP 算法陈峰伟一种标准算法。 1.3.2 自适应调节学习率 学习率 也称为步长,在标准 BP 算法中定为常量,然而在实际应用中很难确定一个从始至终都和合适额度学习率。从误差曲面可以看出,在平坦区域内 太小回事训练吃素增加,因而希望增大 值;而在误差变化剧烈的区域, 太大会因调整量过大而跨过较窄的“凹坑”处,是训练出现震荡,反而是迭代 次数增加。为了加速收敛过程,一个较好的思路是自适用改变学习率,使其该大时增大,该小时减小。 改变学习率的方法很多,其目的都是使其在整个训练过程中得到合理调节。设一初始学习率若经过一次权值调整后时期总误差
18、E 总 增大,则本次调整无效,且 )1(, ;若经过一批次权值调整过后是中误差 E 总 减小,则本次调整有效,且 )1(, 。 1.3.3Levenberg-Marquardt 算法 BP 网络的训练实质上是非线性木匾函数的优化问题,与前面基于一阶梯度的 BP 算法不同,基于数字优化的 LM 算法不仅利用了目标函数的一阶导数信息,还利用了目标函数的二姐导数信息。 LM 算法的迭代公式为: )()()()()()1( 1 KXFkJIkJkJkXkX T (1.21) 式中 J(k)是包含网络误差对权值和阈值一阶导数的 Jacobin 矩阵, I 为单位矩阵, 为阻尼因子。 LM 算法根据迭代的
19、结果动态地天界阻尼因子,即动态地调整迭代额度收敛方向,可是 每次迭代的误差函数值都有所下降。它是梯度下降法和牛顿法的结合,收敛速度较快。但 LM 算法在计算过程中会产生大量的中间结果矩阵,因此需要较大的内存空间。 1.4 确定 BP 网络对结构 在使用基于 BP 算法的人工神经元网络时,必将会遇到选择基于 BP 算法人工神经元网络对最佳结构问题,具体说就是给定了某个应用任务,如何选择网络的层数和每层应选多少个单元,到目前为止还没有一个通用的理论公式来确定,随着不同的条件会有不同的结论,下面介绍一些方法作为确定网络的参考。 1.4.1 隐层节点数的选择 1989年 Robert Hecht-Ni
20、elson证明了在任何闭区间的一个连续函数都可以用一个隐层的 BP 网络来逼近,因而一个 3 层的 BP 网络可以完成任意的 N 维到 M 维的映射,因而在 BP网络中采用单隐层网络。然而隐层节点数选择一直是一个令人感兴趣的话题,隐含层节点数目过少,网络降不能建立复杂的判断接,是网络训练不出来,或不能识别以前没有的样本,且容错性差;而节点数目过多,学习时间过长,使网络的泛化能力降低。因此 BP 网络应有一个最佳隐层节点数。 13中提出了 3 个经验函数,有代表性的是 : ni inCk1 )1( ( 1.22) 其中 k 为样本数, n 为输入样本数, n1 为隐层样本数。 14中指出了 n1
21、 =P-1 时( P 为学习样本数),迭代次数有明显减少。 多次实验经验表明,隐层节点数取输入节点数和输出节点数之间的值,在靠近输入节点数时,网络的收敛速度较快,如下是一个故障诊断样本算例;输入样本 4 个,输出样本 6 个表 1为节点数与迭代次数的关系(其中:误差取 0.001,学习率为 0.9)。 表 1 隐层节点数与迭代次数之间的关系 节点数 3 4 5 6 7 8 9 10 11 12 13 迭代次数 4160 1270 900 550 580 630 590 590 570 560 530 从表中可以看出,隐层节点数取 6 个时最好。当节点数变大时,虽然迭代次数变少,但网路明显变大,
22、计算量也变大了,计算时间反而变长,因此我们提出了一个单隐层隐层节点数的公式(其中, n 为输入节点数, m 为输出节点数, n1 为隐层节点数) mnnmm mnmnnn )(6 1 8.0 )(6 1 8.01( 1.23) 经实验证明,在 2-1(输入节点 -输出节点), 4-10, 36-26, 8-14 网络中,式( 1.25)得到的隐节点数 2, 6, 32, 10 都是最佳值。 1.4.2 初始权值 在反向传播网络中,初始权值与网络的收敛有很大关系,就此故障诊断样本算例,不同的初始权值迭代数见表 2(其中, *表示迭代次数超过 20000 次仍不收敛)。 表 2 初始权值对学 习速
23、度的影响 误差 固定值 随即值(最大值) 0 0.5 1.0 0.5 1.0 1.5 0.001 * * * 110 80 150 0.0001 * * * 117 92 210 从表 2 中可以看出,初始权值不能取固定值,只能取一定范围内的随机值。且输入的取值范围不同 ,初始权值的取值范围也不同。我们在设计中采用限制输入值的方法,降各输入节点的输入值限制在 0-1 范围内,发现初始权值取 0.5-1.0 之间的随机值比较好。而对任意范围的输入,初始权值的优化尚待研究。 1.4.3 学习率 在反向传播 网络的训练中,学习率的选取一直是一个重要的研究方向。表 3 为不同的学习率对算例的学习速度的
24、影响(其中, *代表迭代次数超过 10000 次仍不收敛)。 表 3 学习率对迭代次数的影响 学习率 0.05 0.1 0.3 0.5 0.7 0.9 1.0 1.5 2.0 迭代次数 * 4000 1300 760 530 420 380 570 * 从表 3 可以看出,随着学习率的增大,迭代次数明显减少。但鱼鱼算例是一个小规模的网络,学习率可以取得较大 。而在稍大规模的网络 中,当学习率较大时,网络就会发散。14中提出的学习率为 (其中 n1 为隐层节点数) )1(2 1 n ( 1.24) 我们在实验中发现,学习率的取值与网络的输入输出节点数有关。规模越大,学习率要越小。我们的经验公式为
25、( n1 为( 1.25)算出的隐层节点数): )(1 1n ( 1.25) 经实验,该公式基本满足需求,对于动态学习率,该值也是一个较好的初值。 采用动态学习率的方法,在一定程度上可以环节学习率玄虚的问题,但仍有两个参数需要设定,设置不当时,学习率剧烈摆动,导致网络不收敛。我们对算法进行改进:当学习率放慢时缓慢增长学习率,同时限制最大学习率;一旦网络发散,大幅度减少学习率。 通过对 BP 网络设计中的隐层节点数、初始权值及学习率进行研究,提出了隐层节点数及学习率的经验公式,并将其应用于神经网络并行推理机的研究中,加快了网络 的构造时间,缩短了网络的学习时间,并在一定程度上改善了网络的泛化能力。 3.总结 通过本文献综述,对赤潮及赤潮预防的研究方法都做了简要的介绍,并介绍了方法 BP神经网络原理。从而为毕业设计过程及论文中的相关技术和术语做了阐释,对进行毕业设计和论文的叙写都是有效的帮助。