基于BP神经网络的变压器故障诊断研究

基于BP神经网络的变压器故障诊断研究
基于BP神经网络的变压器故障诊断研究

……………………. ………………. …………………

山东农业大学

毕 业 设 计

题目:

基于BP 神经网络的变压器故障诊断研究

学 院 机电学院

专业班级 电气五班

届 次 10 级

学生姓名 王友福

学 号 20100802

指导教师 王冉冉

二O 一四年五月十二日 装

线

……………….……. …………. …………. ………

目录

摘要 (Ⅰ)

Abstract (Ⅱ)

第一章引言

1.1 变压器故障诊断的意义 (1)

1.2 变压器故障诊断的现状和发展趋势 (1)

第二章变压器油中气体的产生机理

2.1 油中溶解气体的来源 (3)

2.2 特征气体产生的原因和特点 (4)

2.3 气体在变压器油中的溶解与扩散 (4)

2.4 变压器内部故障与油中特征气体的关系 (5)

第三章神经网络系统研究

3.1 人工神经网络理论概述 (6)

3.2 人工神经元模型 (6)

3.3 神经网络的分类 (8)

第四章基于BP神经网络的变压器故障诊断

4.1 BP神经网络原理 (9)

4.2 BP神经网络的算法 (10)

4.3 变压器故障诊断的BP神经网络模型 (13)

4.3.1 BP神经网络模型建立 (14)

4.3.2 神经网络数据处理 (16)

4.3.3 BP神经网络的训练过程 (17)

第五章变压器故障诊断仿真

5.1 仿真工具的选择 (18)

5.2 BP网络参数设计 (18)

5.3 BP网络结构参数设计 (22)

5.4 仿真结果分析 (23)

总结 (24)

参考文献 (25)

致谢 (27)

Contents

Chinese abstract (Ⅰ)

Abstract (Ⅱ)

The first chapter is introduction

1.1 Transformer fault diagnosis significance (1)

1.2 Current situation and development trend of transformer fault diagnosis (1)

The second chapter the generation mechanism of gas in transformer oil

2.1 Sources of dissolved gas in oil (3)

2.2 The causes and characteristics of gas generation (4)

2.3 The dissolution and diffusion of gas in transformer oil (4)

2.4 The relationship between the characteristics of gas and oil in the transformer internal fault (5)

The third chapter neural network system

3.1 Overview of artificial neural network theory (6)

3.2 The artificial neuron model (6)

3.3 Classification neural network (8)

The fourth chapter fault diagnosis of transformer based on BP neural network

4.1 The principle of BP neural network (9)

4.2 The algorithm of BP neural network (10)

4.3 BP neural network model for fault diagnosis of transformer (13)

4.3.1 A BP neural network model (14)

4.3.2 Neural network data processing (16)

4.3.3 The training process of BP neural network (17)

The fifth chapter the simulation of transformer fault diagnosis

5.1 The simulation tool of choice (18)

5.2 The parameters of BP network design (18)

5.3 BP network structure parameters design (22)

5.4 The analysis of simulation results (23)

Summary (24)

Reference (25)

Thank (27)

基于BP神经网络的变压器故障诊断研究

作者:王友福指导老师:王冉冉

【摘要】电力变压器是电力系统的重要组成部分之一,也是系统中发生故障率最高的电气设备之一,它的安全可靠运行对电力系统的安全可靠供电有很大的影响。因此,研究变压器的故障诊断技术,实时发现变压器的潜伏性故障,使变压器能够稳定安全运行,对提高电力系统的供电可靠性,具有很重要的现实意义。论文讨论了变压器油中溶解气体的来源、产生原因及特点,根据变压器油中溶解气体与变压器故障之间的相互对应关系,确定以油中溶解气体分析法进行变压器故障诊断。文中采取非线性映射能力强的BP神经网络,对变压器油中溶解的特征气体进行分析,从而对变压器故障进行诊断。对神经网络进行变压器故障诊断的原理和结构进行研究,建立了基于BP神经网络的变压器故障诊断模型。

关键词:变压器;故障诊断;BP神经网络;仿真

Abstract

Author:Wang Youfu Supervisor:Wang Ranran

Abstract Transformer is one of the important parts of power system,it is one of the electrical equipments which has the highest failure rate in electric power system,and its safety operation has great influence in the power system safe operation.Therefore,researching on fault diagnosis technology of transformer,which can timely find the potential faults of the transformer, safely and stably operate transformer and improve the reliability of power supply system,has very important practical significance.This paper discusses the source, dissolved gases in transformer oil and the causes and characteristics and according to the relationship between dissolved gases and the transformer fault in transformer oil, transformer fault diagnosis to determine the dissolved gas in oil analysis.Take the BP neural network nonlinear mapping ability in this paper, the characteristics of gas dissolved in transformer oil is analyzed, which is used to diagnose transformer faults. The neural network is investigated the principle and structure of transformer fault diagnosis, a transformer fault diagnosis model based on BP neural network.

Key words:transformer;fault diagnosis;BP neural network;simulation

第一章引言

1.1变压器故障诊断的意义

近年来我国的电力技术飞速发展,拥有了相当庞大的电网规模,变电站数量达到了约2.8万个。此外,自备电厂与变电站在其他各个行业也有较多应用。现在,我国电力系统正朝着超高压方向发展,并且自动化水平也逐渐进步。变压器是电力系统中重要的电力设备,其造价高、任务重,所以确保其可靠性就显得尤为重要了,在变压器容量方面,以500kV 电压等级为例,单台的容量现已达到了1 500MVA[1],如此大容量的电力设备一旦产生故障,就会造成不可弥补的经济损失。变压器故障一直是危害电力系统安全的主要因素,据统计,只2001年一年里,就发生了200余次非正常停运。而变压器主要发生故障的位置在其内部,原因有很多,如绝缘过于老化,变压器长久使用而产生的质量问题,工作环境不好等。变压器内部结构是非常繁琐的,所以工作时在内部产生电的场也不是均匀分布的,且事故发生率也会随着电压的升高而逐步上涨。变压器故障往往同时会放出很多电弧,有时强烈的放电现象还会导致燃烧现象。一但变压器发生故障,其它电力设备也会发生短路等问题。这样,则需要停电并进行修理,对生产产生了严重的影响。有些情况故障更为严重,甚至发生爆炸,这样不仅生产受到影响,还会带来经济损失甚至人身安全问题。在大型的电力变压器设计时,耐热性能,机械性能、电气强度都加以考虑,并且留有一定裕.量,但是,制造过程中往往也会有缺陷存在,而很小的缺陷也能为变压器故障埋下隐患。与此同时,随着变压器的长期使用,各种电、热应力的影响,加之有时恶劣的环境,其性能也会逐步劣化。并且这种逐步劣化速度会越来越快,过程也是不可逆转的。最近几年里,电力行业一直都在在线监测技术方面投以力度,并积极展开变压器维修。加强设备常规测试和综合性分析,可以及早发现变压器的潜在故障。据统计表明,全国电网在2001年供电可靠率已经有了明显的提高,已经达到了百分之九十九以上,虽然如此,我国的供电可靠性和达国家相比,仍有较大差别。电力系统中的输变电的核心设备是变压器,它是最容易发生故障的电力设备,电力系统是否能够安全平稳运行的主要取决于变压器的运行状态的好坏。就全世界范围来看,电力变压器的安全性与稳定性已经受到各国极大关注。各种相关资料已经表明[2],采用运行状态的在线实时监测,并针对变压器运用各种故障诊断技术,可以有效的将变压器年维修费用降低,其减少幅度可以达到25%到50%之间,由故障引起的停电的时间也减少至不足75%。由此可见,电力变压器故障诊断技术的合理应用能带来有效的经济利益,并避免不必要的损失。

通过定期对变压器采取预防目的的保养并做好定期维护,对高压电力设备的工作情况做好实时监测,侦测与判断其潜在的故障以及缺陷,提升故障诊断水准,针对故障进行监视和维修,可以实现故障预报警,对于工程实际有着重要意义。

1.2 变压器故障诊断的现状和发展趋势

变压器的故障诊断是指不通过拆分设备来对运行的变压器进行检测,对其可能发生的

故障进行预判和报警的技术,变压器故障诊断不需拆分设备,只需要人们长期的经验和数据作为诊断资料。伴随一些专业知识理论,如传感器、计算机技术等和专家系统、模糊理论等综合智能系统的应用,电力变压器的实时监测技术和高水平的故障诊断技术也得以飞速发展,并已经发展为了一个电力系统中的重要研究方向。电力变压器故障诊断主要包含下面几个方面:

(1)首先能够准确判断变压器的故障性质、故障程度、故障类型以及产生故障的主要位置。

(2)其次要可以明确故障发生的前兆,判断分析产生故障的原因,以及指出故障的发展趋势。

目前在运行中的大型变压器将油作为绝缘介质,而油在电应力和热应力作用下会加速老化和逐渐分解,所以,对于充油变压器来说,在其运行状态下,以油为介质的绝缘材料就会分解出部分CO、CO2,和低分子烃类;当有放电故障时,分解出CO、CO2和低分子烃类的速度会更快。随着故障越来越严重,这些气体也就在变压器绝缘中汇集,之后通过对流、扩散而逐渐溶解。溶于油的气体的成分以及含量都能或多或少的反应出变压器绝缘材料发生故障的程度,因而,油中溶解气体组分可以反应变压器故障,作为一种特征量,可将其运用在诊断技术中。Martin等人曾在1 952年提出过一种故障诊断方法一气相色谱法,1961年,Pugh、Wagner等人提出了一种设想,就是把Martin等人提出的气相色谱法与故障诊断技术相结合,对绝缘故障分解出的气体,该设想为故障诊断技术提供了理论依据[3]。

在我国情况来看,变压器故障诊断技术的相关研究是从上世纪70年代开始的,并有了研究成果。据研究表明了,将色谱分析法应用在变压器故障诊断中,依据变压器中溶解的气体,再根据变压器内部因故障而分解出来的气体,对变压器故障进行分析诊断,运用此方法不会受到故障点位置的影响[4]。目前,该法已经成为了充油变压器预防性试验项目中的重点项目[5]。

为了能够及时检测出变压器故障,实现其油中溶解气体实时、定时监测,最近的十年里,国内外都在努力发展基于将特征量选为油中油中溶解气体组成及含量的实时监视检测装置及系统,并致力于研发出以更多理论基础的智能化故障诊断方法,并将多种智能诊断方法应用到诊断技术中,提出了多种在线故障检测和故障诊断装置,推动了在线故障诊断技术的进步和发展。

第二章变压器油中气体的产生机理

目前运行中的电力变压器多为充油式变压器,以绝缘油作为绝缘和散热介质。在实际运行中,变压器绝缘油和有机绝缘材料在电场及磁场(即电和热)的作用下,会逐渐老化和分解,产生某些可燃性气体,使油的闪点降低,引起早期故障。当存在潜伏性过热故障或放电性故障时,产气量和产气速率会逐渐增加,气体在油中不断积累,并经过对流、扩散而不断溶解,直到饱和而析出气泡。因此,变压器油中特征气体与变压器油和绝缘材料的性能存在密切的关系。

2.1 油中溶解气体的来源

油色谱分析中总烃含量的高低在一定程度上取决于油中溶解气体量的多少。油中溶解气体量是指在充油电气设备内部溶解在油中的气体组分,其来源主要有以下几种[6][7]。

(1)空气

一般变压器油中溶解气体的主要成分是O

2和N

2

,它们都是来源于空气。在101.3kPa、

25℃时,空气在油中溶解的饱和含量约为10%,但其组成与空气不一样。空气中N

2

占79%,

O 2占20%,其它气体占1%;而油中溶解的空气则N

2

占71%,O

2

占28%,其它气体占l%。

其原因是O

2在油中的溶解度比N

2

大。

(2)变压器油在正常运行下产生的气体

在正常运行时,变压器油和固体绝缘材料由于受到温度、电场、氧气及水分和铜、铁等材料的催化作用,随运行时间延长而发生速度缓慢的氧化、裂解与碳化等反应,除产生一些非气态的劣化物外,还产生少量的H

2

、低分子烃类气体和碳的氧化物等。其中,碳的

氧化物(CO、CO

2

)成分最多,其次是氢气和烃类气体,这就是绝缘油的老化和劣化作用。正常的老化和劣化情况下,变压器油中仅能产生少量的气体,通常它们的含量在临界值之下。

(3)变压器油在变压器故障状态下运行时产生的气体

当变压器存在潜伏性故障,变压器油受到高电场能量的作用时,即使温度较低,也会分解产气。在场强为130kV/cm的电场作用下,变压器油在25-30℃时产气成分如表2.1

所示。变压器油在运行中受到高温的作用将会分解产生CO

2、低分子烃类气体和H

2

等气体,

变压器油在230---600℃时产气情况如表2.2所示。

Table 2.1 The gas produced components under the electric field strength 130 kV/cm 表2.1场强为130kV/cm的电场作用下变压器油的产气组分(体积%) 试样编号 CH4 C2H6 C2H4 C2H2

1 3.3 1.7 1.9 3.0

2 2.2 1.4 2.

3 2.4

3 3.72 1.01 1.61 1.42

Table 2.2 Oil decomposition Gas when local heating at 230℃一600℃

表2.2 230~600℃局部加热时变压器油的产气组分(×10-1mg/g油)

气体种类230℃300℃400℃500℃600℃

氢气—————— 1.52 3.20

甲烷——————42.58 58.48

乙烷——————0.45 26.01

乙烯——————0.17 32.47

丙烷—————— 1.18 2.08 异.J.烯—————— 3.26 6.97

二氧化碳0.17 0.22 2.19 0.67 0.28

其他——————0.96 2.25

2.2特征气体产生的原因和特点

绝缘材料在热、电和机械应力的作用下发生裂解而产生特征气体。不同故障类型产生

的气体组分不同。故障类型可分为:过热、电弧放电、油和纸绝缘中局部放电、油中电火花放电、进水受潮或油中气泡放电等[8]。

(1)绝缘物的热分解

变压器固体绝缘材料分子内含有大量的无水右旋糖环和弱的C-O键,它们的热稳定性比油中的C-H键弱,并能在较低温度下重新化合。当变压器内部发生各种过热性故障时,由于局部温度较高,可导致热点附近的绝缘物发生热分解,析出气体。固体绝缘中聚合物裂解的有效温度高于105℃,完全裂解和碳化温度高于300℃。在生成水的同时,生成大量的CO、CO

2

及少量的烃类气体和呋喃化合物,同时油被氧化。随着热点温度升高,油里

产生低分子烃的不饱和度不断增加,亦有烯烃和炔生成,各种烃类和H

2

含量也逐步增加;

变压器内的油浸绝缘纸,在空气中加热分解的主要产物是CO

2和CO,其次是H

2

和气态烃。

CO和CO

2

的产生速率随温度升高而加快,也随油中氧的含量和纸的湿度增大而增加。其它

固体绝缘材料的热解气体主要是CO和CH

4

,其次为少量的低分子气态烃,固体绝缘材料比

绝缘纸和油容易产生C

2H

2

。由表2.3可知,纤维素在温度470℃时热分解的产物。

Table 2.3 Thermal decomposition of cellulose molecules product

表2.3温度470℃时纤维素热分解产物

分解产物重量/(%) 分解产物重量/(%)

水35.5 CO2 10.40

醋酸 1.40 CO 4.20

丙酮0.07 CH4 0.27

焦油 4.20 C2H4 0.17

其他有机物 5.20 焦油35.59

(2)绝缘物的放电分解

放电能量高低对变压器油分解时产生的气体组分有一定影响。一般情况下,放电能量较低时,产气中H2含量较多,其次为CH4、C2H4等低分子气态烃。随着放电能量的增高,还有C2H2产生,且其含量将不断增大。若油中存固体绝缘物,放电时还会产生较多的CO 和 C02,其含量随固体绝缘物的不同而异。

2.3气体在变压器油中的溶解与扩散

在一定温度和压力下,故障源产生的气体将逐步溶解于变压器油中。当气体在油中的溶解速度达到与气体从油中析出的速度时,则气一油两相处于动态平衡,此时一定量的油中溶解的气体量,即为气体在油中的溶解度。气体在变压器油中的溶解度大小与气体的特

性、油的化学组成有密切关系,受压力和温度等因素的影响。当其它条件相同时,气体溶解度随压力的增高而增大;除CO、N2和H2外,大部分故障气体的溶解度随温度的升高而减小;烃类气体的溶解度随分子量增加而增加。正常运行的变压器油中往往会溶解一部分“正常气体’’。当变压器内部存在潜伏性故障时,若分解产生气体的速度很慢,气体仍以分子的形态扩散并溶解在油中,只要尚未过饱和,就不会有自由气体释放出来;如果故障存在时间较长,油中溶解气体已达到饱和状态,则会释放出自由气体,进入气体继电器中。当产气速率很高时,溶解度较大的故障气体组分,会将原来油中溶解度较小的气体组分(H2、空气等)从油中“挤’’出来。若油—气接触时间较长,经过反复交换,可使所有气体组分达到饱和状态。可见,变压器故障早期阶段,只有溶解度低的气体才会聚积于气体继电器中,而溶解度高的气体仍在油中;当变压器发生突发性故障时,分解气体以气泡形态进入气体继电器中,且气体继电器中积存的故障特征气体往往比油中含量高得多。

综上所述,对于运行的充油电气设备,其内部的溶解气体的增加主要来自绝缘油和固体绝缘材料的正常老化及内部故障的发展。特别是当故障进一步发展扩大时,变压器油会裂解产生大量低分子烃类气体,如CH4、C2H6、C2H4、C2H2等。这些气体会溶解在变压器油中,直至达到其饱和溶解度为止。

2.4变压器内部故障与油中特征气体的关系

充油电力变压器内部的故障模式主要是机械、热和电三种类型,而以后两者为主,机械性故障常以热或电故障的形式表现出来。过热性故障和高能放电故障是运行中变压器故障的主要类型,其次分别是过热兼高能放电故障、火花放电故障和受潮或局部放电故障。根据故障的原因及严重程度将变压器的典型故障分为六种,包括局部放电、低能量放电、高能量放电、低温过热、中温过热、高温过热。根据试验研究发现,电弧放电时,变压器油主要分解出乙炔、氢及少量甲烷;局部放电时,变压器油主要分解出氢和甲烷;变压器油过热时分解出氢、甲烷、乙烯、丙烯等;纸及某些绝缘材料过热时还会分解出一氧化碳、二氧化碳等气体。我国现行的《变压器油中溶解气体分析和判断导则》(GB/T7252-2001),将不同故障类型产生的特征气体归纳成表2.4。

Table 2.4 the type of fault and decomposition of gas

表2.4充油电力变压器不同故障类型产气成分

故障类型产生的主要气体组分产生的次要气体组分

油过热CH4、C2H4 H2、C2H6

油中绝缘纸过热CH4、C2H4、CO、CO2 H2、C2H6

油中有电弧H2、C2H2 CH4、C2H4、C2H6

油和绝缘纸中有电弧H2、C2H2、CO、CO2 CH4、C2H4、C2H6

油中局部放电H2、CH4、C2H2 C2H6

油和纸中局部放电H2、CH4、C2H2、CO C2H6、C02

油中火花放电H2、C2H2 ---------

进水受潮或油中汽泡H2 ----------

由于对于判断充油变压器内部故障有价值的气体是甲烷(CH4)、乙烷(C2H6)、乙烯(C2H4)、乙炔(C2H2)以及一氧化碳(CO)、二氧化碳(C02)、氢气(H2),称这些气体为特征气体,将甲烷、乙烷、乙烯及乙炔含量的总和称为烃类气体含量的总和或总烃。特征气体的组分含量与故障类型及故障严重程度有着非常密切的关系,可以作为反映变压器异常的特征量。第三章神经网络系统研究

3.1 人工神经网络理论概述

早在1943年,心理学家W.McCulloch和数学家W.Pitts合作,从数学理论逻辑的角度,提出了神经元和神经网络最早的数学模型(MP模型),MP模型的提出标志着人们对神经网络研究的开始。经过半个多世纪的发展,神经网络经历了萌芽期、第一次高潮发展期、反思低潮期、第二次高潮发展期、对神经网络再认识以及应用研究期五个阶段。到目前为止,神经网络已成为计算机科学、脑神经科学、人工智能、智能控制和信息科学等多种学科和领域交叉的一门新兴的前沿学科[9][10]。

随着Frued提出精神逻辑分析学,越来越多的的科学家在揭开人脑神经运转的基本问题上投入了大量精力,结合数学和物理学角度,渐渐形成了一个兼容多学科知识的综合交叉前沿学科一神经网络(Neural Networks)。人体的神经网络是大脑的一个重要组成部分。截止目前,人体的神经网络研究方向分为两类[11]:一种是以生物学家、心理学家和物理学家为主,以研究大脑和神经系统信息处理原理并给出其精细模型,我们称之为生物神经网络;第二种是以工程技术人员为主,主要研究方向为神经网络基本原理及其应用,建立能实现信息处理的人工神经网络模型,称之为人工神经网络(artificial neuralnetwork,ANN)。人工神经网络可以模拟人体大脑进行自适应、自学习,他由大量神经元相互连接构成。人工神经网络在很多领域得到了广泛应用,电力研究工作者将神经网络引用到电气设备的故障诊断中。现在基于人工神经网络的变压器故障诊断用的最多的是BP(Back Propagation)神经网络。

3.2人工神经元模型

人工神经网络的最小处理单元就是人工神经元,人工神经元是人对动物神经元学习、简化后得到的产物。人工神经神经网络模型和其神经元的输入输出关系是[12]:

(3.1)

在上式3.1中, ij是固定的权值,且上式中输入输出都是二值量。在实际的工作使用中我们通常将人工神经元简化为图3—1的形式:

在上图中人工神经元的输入设为,其来自于其它神经元的输出或外部的输入。表示从结点i(1≤i≤N)到结点j的加权或i与J间的连接强度。此外,考

虑到内部门限,用的固定输入点表示,则其连接强度取,于是便可得到输入的加权和,表达式为:

如果把输入与加权用向量表示,可得:

(3.2)式可改写为X和w,的内积或点积:

上式中S

j ,表示激励电平。S

j

可以将可能的无限域通过激活函数转换为有限范围内的输出。

人工神经网络中,人工神经元会对给他输入的信息用激活函数进行处理,然后再将处理后的数据输出给下一个神经元。其中,激活函数起到的作用非常大。他除了要控制神经元的输入输出外,还要对输入量进行转换,变成有限域内的输出。因此,激活函数在很大程度上决定着神经网络处理问题的能力。我们针对不同的实际问题选择不同的激活函数,常用的激活函数如下[13][14]:

(1)阈值函数的表达式为:

(2)线性函数(Linear)的表达式为:

该函数作为输出神经元的激活函数时输出结果可以为任意值,但是线性激活函数也有致命的缺点。当网络的结构比较复杂时,采用线性函数的网络往往很难收敛,因此线性函数一般较少被采用。

(3)对数S形函数其表达式为:

对数S形函数的输出值介于0~1之间,故常被选用为要求输入在0~1范围信号的激活函数;

(4)双曲正切S形函数其表达式为:

双曲正切S形函数和平滑的阶跃函数相类似,形状与对数S形函数相同。但是以原点为对称点,双曲正切函数输出值介于-1~l之间,因此常常作为要求输入在-1~l范围的激活函数。

3.3神经网络的分类

人工神经网络实际上就是由多个人工神经元按照一定顺序组成的可以相互传递信息的网络。因此神经网络的结构主要由组成该网络的神经元的相互间连接特性决定的。而为了实现我们的目的如何训练神经网络则主要由神经网络的学习算法来决定。因而我们可以按照其结构的不同和算法的不同对神经网络进行分类[15]:

(1)按网络结构的不同可将神经网络分为前馈网络和反馈网络。

1)前馈网络:神经元只是通过层与层之间相互连接。上一层神经元的输出信号作为其下一层神经元的输入信号,每一层神经元只与其上一层和下一层的神经元发生关系。输入信号通过输入层的神经元进入神经网络,然后进入隐含层最终从输出层输出。其中隐含层可以是一层也可以是多层。在前馈网络中,我们可以使得任意给定时刻的输入都可以得到该时刻的输出。

2)反馈网络:一般情况下,我们说的反馈网络就是指包含有反馈连接的神经网络。这里说的反馈连接就是下一层或者是下几层的神经元把他的输出作为输入再重新送回到他前面的神经元中。正是由于反馈型网络的这一特性,他的神经元的输出不仅仅取决于当前的输入量还和以前的输出量有关。比较有代表性的反馈型神经网络如Jordan网络和Hop

field网络[16]。

(2)按照采用算法的不同,我们也可以把神经网络分为有监督训练网络和无监督训练网络两种。我们要想用某个神经网络去解决相应的问题,就必须对他进行训练。让他通过学习,把这些知识信息储存到某个矩阵中。对于神经网络的训练我们也可以按照训练方法的不同把他们分为有监督的训练和无监督的训练两种。

1)有监督的训练:针对有监督的训练算法,首先需要给出训练用的输入向量和与每个输入向量对应的输出目标向量。每加入一个输入向量时,都需要计算网络的实际输出值,并且把目标向量与该输出值比较,用两者比较结果的误差来改变权值。把训练组中的每个输入向量都相继加入,然后再分别对每个向量计算误差和调节权值,一直到训练组中的误差达到我们可接受的预期最低值为止。

2)无监督的训练:神经网络无监督的训练不需要有目标向量。网络会在在训练过程中自动调节权值以便使相似的模式集结在一个区域内。实质上这种训练就是提取训练组的统计特性,然后再针对其图形的不同类别进行分类。典型的无监督训练算法如Gcossberg 的ART算法和Kohonen自组织特征映射等。

第四章BP神经网络

4.1BP神经网络原理

BP(Back—Propagation)网络又名误差反向传播神经网络,1986年由D.E.Rumethart 等人提出[17]。BP网络学习的主要特点是把网络学习的过程分为正向传播输出过程以及反向传播调整过程这两部分。正向学习传播过程中,输入信号从输入层输入后,经隐含层的逐层传输处理,最终经输出层输出,每一层神经元的状态只受上一层神经元的影响。如果在输出层的输出与期望值差距过多,则输出信号将把误差按着原来的传播通路反向传播回去,直到输入层。通过沿途每步修改各隐含层神经元间的连接权值,将输出误差逐步达到最小。下图表示一个典型的三层BP网络的拓扑结构[18]。

图中BP网络由输入层、隐含层和输出层组成,上下层的节点之间相互连接,但是同一层的各节点间不连接。信号经输入层输入后,先向前传播到每个隐含层节点,信号经激活函数处理后,经过隐含层节点的输出信号往下传播至输出层。BP神经网络的学习流程

图3-3所示[19][20]。

4.2 BP神经网络的算法

在三层前馈网络中,假设输入向量为,如果加入,则为隐

含层神经元引入阀值:隐含层输出向量为,如果加入,可以

给输出层神经元引入阀值,则输出层向量为,期望输出向量为

,输入层和隐含层之间的权值矩阵用V表示,,列向量,,为隐层第J个神经元对应的权值向量:隐含层到输出层之间的权值矩阵命名为

,其中列向量为输出层第k个神经元对应的权向量。下面我们用数学方法分析各层信号之间的关系[21][22]:对于输入层,输入、输出均为X:

对于输出层有:

在上式中,f(*)是激励函数,这里激励函数采用Sigmoid函数:

具有连续、可导的特点,且有

但是在网络的实际应用中,实际输出往往与期望输出不等,如果把二者之间的误差设为E,公式如下:

将3-15误差公式展开到隐层有:

进一步变化展开得到输入层公式:

由上面推理公式可得,网络输入的误差是每一层权值的函数。由此可知,误差E可以通过调节权值改变。调整权值的原则是使误差逐渐减小,因此应使误差的负梯度与权值的调整量成正比,即

上面公式中的负号不是表示为负,意义为梯度下降。为比例系数,因为在训练中反映了网络的学习速度,故也称为学习率[23]。

为了得到进一步的明确的权值调整公式,我们再做以下推导。在推导过程中,对输出层均有j=0,I,…,m;k=l,2,…,n:对隐含层均有i=0,l,…,n;j=l,2,…,

m

若令成为输出层误差信号,则

同样可推得[24]:

若令,则被称为隐含层的误差信号,则

容易看出,由输出层输出的误差信号取决于网络的期望输出和实际输出之差。而各隐含层的误差信号与其前面各层的误差信号都有关,而且是从输出层开始层层反传过来的。由以上推导将各层权值调整为:

以公式3.26为推倒依据便可对权值进行调整,再用调整后的权值对神经网络完成训练,而信号的前向计算和结果误差的反向传播是BP神经网络的特点。

4.3变压器故障诊断的BP神经网络模型

神经网络是对人脑的思维、记忆方式进行模拟,然后实现对信息的相关处理[25]。由于神经网络具有较强的自适应、自学习、非线性映射能力以及鲁棒性能,比较适合应用于信号处理、控制、模式识别和故障的诊断等领域所以论文采用BP神经网络算法对变压器进行故障诊断,BP网络的计算原理是通过实际的输出跟所期望的目标输出之间的误差反向传

播调节阈值和权值,使两者的差最终能够变为最小。在采用BP神经网络进行变压器故障诊断的步骤为:

1)列出输入和输出训练样本。

2)建立神经网络,确定各层的节点数,网络层数,以及传递函数、学习方法,同时设定所需的网络参数和将权值、阈值初始化。

3)利用样本学习训练网络,其训练步骤为:(1)计算隐含层节点的输出;(2)计算输出层节点的输出;(3)计算实际输出与目标输出的误差;(4)如果训练误差满足期望误差就终止学习,若是没有满足则从输出层返回计算隐含层误差,然后求出误差梯度进行权值调整,接着返回步骤(2)。

4)用训练好的的网络进行仿真预测变压器的故障。

4.3.1 BP神经网络模型建立

运用BP神经网络对故障进行预测诊断时,首先当然是要生成网络对象。在Matlab中通常使用newff函数进行BP神经网络的生成:

net=newff(RP,[Sl S2…SN],{TFl TF2…TFN},BTF)

上述语句中,RP是一个R×2维的矩阵,是指R维的输入向量的最小值和最大值的范围。[S1 S2…SN]中的各个元素分别表示的是每层的节点数,{TFl TF2…TFN)中的元素表示的是每个网络层使用的传递函数,BTF表示的是在学习过程中用来进行训练的函数[26]。在使用newff语句生成所需神经网络的同时,会自动初始化网络的权值和阀值,init函数也可以实现初始化功能。

由上面神经网络生成及初始化语句可以看出,要建立一个网络模型,必须对它的网络层数以及各层的节点数等基本结构进行确定。下面针对变压器故障诊断问题进行BP神经网络结构的确定。

1.网络层数设计

由于BP神经网络层的作用是实现网络输入输出的非线性映射,一般来说,隐含层越多,网络对复杂问题的非线性的拟合能力就会跟更好。但是,当两层BP网络具备充足的隐层节点时,已经可以实现任意输入输出的非线性映射,这时隐层数目太多,不但对网络的拟合能力没有明显的改善,还会延长网络的训练时间。所以论文中BP网络确定为具有一个隐层的双层BP神经网络。

2.网络各层的节点数

(1)输入节点数

由于神经网络的输入层的节点数由输入矢量的维数决定,论文是基于油中溶解气体与变压器内部故障的对应关系进行网络仿真,所以是用油中溶解的5种特征气体H2, CH4,C2H4,C2H2,C3H6作为依据来判别变压器的内部故障,因此,这五种气体的含量即作为网络的输入,也就是说网络的输入节点数为5。

(2)输出层节点数

BP神经网络预测的matlab代码

BP神经网络预测的matlab代码附录5: BP神经网络预测的matlab代码: P=[ 0 0.1386 0.2197 0.2773 0.3219 0.3584 0.3892 0.4159 0.4394 0.4605 0.4796 0.4970 0.5278 0.5545 0.5991 0.6089 0.6182 0.6271 0.6356 0.6438 0.6516

0.6592 0.6664 0.6735 0.7222 0.7275 0.7327 0.7378 0.7427 0.7475 0.7522 0.7568 0.7613 0.7657 0.7700] T=[0.4455 0.323 0.4116 0.3255 0.4486 0.2999 0.4926 0.2249 0.4893 0.2357 0.4866 0.2249 0.4819 0.2217 0.4997 0.2269 0.5027 0.217 0.5155 0.1918 0.5058 0.2395 0.4541 0.2408 0.4054 0.2701 0.3942 0.3316 0.2197 0.2963 0.5576 0.1061 0.4956 0.267 0.5126 0.2238 0.5314 0.2083 0.5191 0.208 0.5133 0.1848 0.5089 0.242 0.4812 0.2129 0.4927 0.287 0.4832 0.2742 0.5969 0.2403 0.5056 0.2173 0.5364 0.1994 0.5278 0.2015 0.5164 0.2239 0.4489 0.2404 0.4869 0.2963 0.4898 0.1987 0.5075 0.2917 0.4943 0.2902 ] threshold=[0 1] net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');

基于BP神经网络预测模型指南

基于BP神经网络的国际黄金价格预测模型 公文易文秘资源网顾孟钧张志和陈友2009-1-2 13:35:26我要投稿添加到百度搜藏 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型。 [关键词] MATLAB BP神经网络预测模型数据归一化 一、引言 自20世纪70年代初以来的30多年里,世界黄金价格出现了令人瞠目的剧烈变动。20 世纪70年代初,每盎司黄金价格仅为30多美元。80年代初,黄金暴涨到每盎司近700美元。本世纪初,黄金价格处于每盎司270美元左右,此后逐年攀升,到2006年5月12日达到了26年高点,每盎司730美元,此后又暴跌,仅一个月时间内就下跌了约160美元,跌幅高达21.9%。最近两年,黄金价格一度冲高到每盎司900多美元。黄金价格起伏如此之大,本文根据国际黄金价格的影响因素,通过BP神经网络预测模型来预测长期黄金价格。 二、影响因素 刘曙光和胡再勇证实将观察期延长为1972年~2006年时,则影响黄金价格的主要因素扩展至包含道琼斯指数、美国消费者价格指数、美元名义有效汇率、美国联邦基金利率和世界黄金储备5个因素。本文利用此观点,根据1972年~2006年各因素的值来建立神经网络预测模型。 三、模型构建

BP神经网络实验 Matlab

计算智能实验报告 实验名称:BP神经网络算法实验 班级名称: 2010级软工三班 专业:软件工程 姓名:李XX 学号: XXXXXX2010090

一、实验目的 1)编程实现BP神经网络算法; 2)探究BP算法中学习因子算法收敛趋势、收敛速度之间的关系; 3)修改训练后BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。 二、实验要求 按照下面的要求操作,然后分析不同操作后网络输出结果。 1)可修改学习因子 2)可任意指定隐单元层数 3)可任意指定输入层、隐含层、输出层的单元数 4)可指定最大允许误差ε 5)可输入学习样本(增加样本) 6)可存储训练后的网络各神经元之间的连接权值矩阵; 7)修改训练后的BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果。 三、实验原理 1 明确BP神经网络算法的基本思想如下: 在BPNN中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN的网络构架 反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小 BPNN是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN会根据已经训练好的参数进行运算,得到输出结果 2 明确BP神经网络算法步骤和流程如下: 1初始化网络权值 2由给定的输入输出模式对计算隐层、输出层各单元输出 3计算新的连接权及阀值, 4选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

用matlab编BP神经网络预测程序加一个优秀程序

求用matlab编BP神经网络预测程序 求一用matlab编的程序 P=[。。。];输入T=[。。。];输出 % 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值 inputWeights=net_1.IW{1,1} inputbias=net_1.b{1} % 当前网络层权值和阈值 layerWeights=net_1.LW{2,1} layerbias=net_1.b{2} % 设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; % 调用TRAINGDM 算法训练BP 网络 [net_1,tr]=train(net_1,P,T); % 对BP 网络进行仿真 A = sim(net_1,P); % 计算仿真误差 E = T - A; MSE=mse(E) x=[。。。]';%测试 sim(net_1,x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 不可能啊我2009 28对初学神经网络者的小提示

第二步:掌握如下算法: 2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:“最小二乘法”。 3.在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。 4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第15和16章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1算法小节中的算法. 4.BP算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社,Tom M. Mitchell著,中英文都有)的第4章和《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第11章。 BP神经网络Matlab实例(1) 分类:Matlab实例 采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。 % 例1 采用动量梯度下降算法训练BP 网络。 % 训练样本定义如下: % 输入矢量为 % p =[-1 -2 3 1 % -1 1 5 -3] % 目标矢量为t = [-1 -1 1 1] close all clear clc % --------------------------------------------------------------- % NEWFF——生成一个新的前向神经网络,函数格式: % net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes, % PR -- R x 2 matrix of min and max values for R input elements % (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的

BP神经网络matlab源程序代码

close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 % 定义训练样本 % P为输入矢量 P=[0.7317 0.6790 0.5710 0.5673 0.5948;0.6790 0.5710 0.5673 0.5948 0.6292; ... 0.5710 0.5673 0.5948 0.6292 0.6488;0.5673 0.5948 0.6292 0.6488 0.6130; ... 0.5948 0.6292 0.6488 0.6130 0.5654; 0.6292 0.6488 0.6130 0.5654 0.5567; ... 0.6488 0.6130 0.5654 0.5567 0.5673;0.6130 0.5654 0.5567 0.5673 0.5976; ... 0.5654 0.5567 0.5673 0.5976 0.6269;0.5567 0.5673 0.5976 0.6269 0.6274; ... 0.5673 0.5976 0.6269 0.6274 0.6301;0.5976 0.6269 0.6274 0.6301 0.5803; ... 0.6269 0.6274 0.6301 0.5803 0.6668;0.6274 0.6301 0.5803 0.6668 0.6896; ... 0.6301 0.5803 0.6668 0.6896 0.7497]; % T为目标矢量 T=[0.6292 0.6488 0.6130 0.5654 0.5567 0.5673 0.5976 ... 0.6269 0.6274 0.6301 0.5803 0.6668 0.6896 0.7497 0.8094]; % Ptest为测试输入矢量 Ptest=[0.5803 0.6668 0.6896 0.7497 0.8094;0.6668 0.6896 0.7497 0.8094 0.8722; ... 0.6896 0.7497 0.8094 0.8722 0.9096]; % Ttest为测试目标矢量 Ttest=[0.8722 0.9096 1.0000]; % 创建一个新的前向神经网络 net=newff(minmax(P'),[12,1],{'logsig','purelin'},'traingdm'); % 设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 5000; net.trainParam.goal = 0.001; % 调用TRAINGDM算法训练 BP 网络 [net,tr]=train(net,P',T); % 对BP网络进行仿真 A=sim(net,P'); figure; plot((1993:2007),T,'-*',(1993:2007),A,'-o'); title('网络的实际输出和仿真输出结果,*为真实值,o为预测值'); xlabel('年份'); ylabel('客运量'); % 对BP网络进行测试 A1=sim(net,Ptest');

基于Bp神经网络的股票预测

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

BP神经网络matlab实例

神经网络Matlab p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2

S S SNl:各层的神经元个数。 [1 2...] TF TF TFNl:各层的神经元传递函数。 { 1 2...} BTF:训练用函数的名称。 (2)网络训练 = [,,,,,] (,,,,,,) net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp' BP网络的训练函数 训练方法训练函数 梯度下降法traingd 有动量的梯度下降法traingdm 自适应lr梯度下降法traingda 自适应lr动量梯度下降法traingdx 弹性梯度下降法trainrp Fletcher-Reeves共轭梯度法traincgf Ploak-Ribiere共轭梯度法traincgp Powell-Beale共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg-Marquardt trainlm

BP神经网络的预测理论的及程序 学习

12、智能算法 12.1 人工神经网络 1、人工神经网络的原理假如我们只知道一些输入和相应的输出,但是不清楚这些输入和输出之间的具体关系是什么,我们可以把输入和输出之间的未知过程看成是一个“网络”,通过不断的网络输入和相应的输出进行“训练”(学习),网络根据输入和对应输出不断调整连接网络的权值,直到满足我们的目标要求,这样就训练好了一个神经网络,当我们给定一个输入, 网络就会计算出一个相应的输出。 2、网络结构神经网络一般有一个输入层,多个隐层,和一个输出层。隐层并非越多越好。如下图所示: 神经网络工具箱几乎 MATLAB 12.2 Matlab 神经网络工具箱 BP 网络和涵盖了所有的神经网络的基本常用模型,如感知器、nntool nftool,nctool,nprtool,nntraintool 和等。它由RBFNN 函数逼近和数据拟合、信息处理和预测、神经网组成。主要应用于

在实际应用中,针对具体的问题,首先络控制和故障诊断等领域。.需要分析利用神经网络来解决问题的性质,然后依据问题的特点,提取训练和测试数据样本,确定网络模型,最后通过对网络进行训练、仿真等检验网络的性能是否满足要求。具体过程如下: (1)确定信息表达的方式,主要包括数据样本已知;数据样本之间相互关系不明确;输入/输出模式为连续的或离散的;数据样本的预处理;将数据样本分成训练样本和测试样本。 (2)网络模型的确定。确定选择何种神经网络以及网络层数。 (3)网络参数的选择,如输入输出神经元个数的确定,隐层神经元的个数等。 (4)训练模式的确定,包括选择合理的训练算法、确定合适的训练步数、指定适当的训练目标误差等 (5)网络测试,选择合理的样本对网络进行测试。 简单来讲就是三个步骤:建立网络(newXX)—训练网络(trainXX)—仿真网络(sim) 12.3 BP 神经网络的 Matlab 相关函数 BP 算法的基本思想:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号作为修正各单元权

求用matlab编BP神经网络预测程序

求用编神经网络预测程序 求一用编的程序[。。。];输入[。。。];输出 创建一个新的前向神经网络((),[],{'',''},'') 当前输入层权值和阈值{} {} 当前网络层权值和阈值{} {} 设置训练参数 ; ; ; ; ; 调用算法训练网络[](); 对网络进行仿真 (); 计算仿真误差 ; () [。。。]'测试 () 不可能啊我 对初学神经网络者的小提示

第二步:掌握如下算法: .最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第章的第十节:“最小二乘法”。 .在第步的基础上看学习算法、和近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社, . 等著,中英文都有)、《神经网络设计》(机械工业出版社, . 等著,中英文都有)。 (自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社, . 等著,中英文都有)的第和章。若看理论分析较费劲可直接编程实现一下节的算法小节中的算法. 算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社, . 著,中英文都有)的第章和《神经网络设计》(机械工业出版社, . 等著,中英文都有)的第章。 神经网络实例() 分类:实例 采用工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考帮助文档。 例采用动量梯度下降算法训练网络。 训练样本定义如下: 输入矢量为 [ ] 目标矢量为[ ] ——生成一个新的前向神经网络,函数格式: (,[ ],{ }) , (对于维输入,是一个的矩阵,每一行是相应输入的边界值) 第层的维数 第层的传递函数, '' 反向传播网络的训练函数, '' 反向传播网络的权值阈值学习函数, ''

BP神经网络matlab源程序代码

BP神经网络matlab源程序代码) %******************************% 学习程序 %******************************% %======原始数据输入======== p=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;]'; %===========期望输出======= t=[4554 2928 3497 2261 6921 1391 3580 4451 2636 3471 3854 3556 2659 ... 4335 2882 4084 1999 2889 2175 2510 3409 3729 3489 3172 4568 4015 ... 3666]; ptest=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;4568 4015 3666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化 NodeNum1 =4; % 隐层第一层节点数 NodeNum2=7; % 隐层第二层节点数 TypeNum = 5; % 输出维数 TF1 = 'tansig';

BP神经网络预测代码

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR神经网络预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图

BP神经网络matlab程序入门实例

认真品味,定会有收获。 BP神经网络matlab源程序代码) %原始数据输入 p=[284528334488;283344884554;448845542928;455429283497;29283497 2261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;]'; %期望输出 t=[4554292834972261692113913580445126363471385435562659... 4335288240841999288921752510340937293489317245684015... 3666]; ptest=[284528334488;283344884554;448845542928;455429283497;2928 34972261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;456840153666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%将数据归一化 NodeNum1=20;%隐层第一层节点数 NodeNum2=40;%隐层第二层节点数 TypeNum=1;%输出维数 TF1='tansig'; TF2='tansig'; TF3='tansig'; net=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum], {TF1TF2TF3},'traingdx'); %网络创建traingdm net.trainParam.show=50; net.trainParam.epochs=50000;%训练次数设置 net.trainParam.goal=1e-5;%训练所要达到的精度

bp神经网络MATLAB程序

%清空环境变量 clc clear %读取数据 a=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\one-input.csv'); b=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\output.csv'); c=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\c.csv'); save data1.mat b save data2.mat a load data1 load data2 %节点个数 inputnum=42; hiddennum=8; outputnum=1; %训练数据和预测数据 input_train=a(:,1:90); input_test=a(:,91:137); output_train=b(:,1:90); output_test=b(:,91:137); %将训练样本输入输出数据归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); %构建BP神经网络 net=newff(inputn,outputn,[20,12],{'tansig','purelin'},'traingdx'); net.trainParam.epochs=1000; net.trainParam.lr=0.01; net.trainParam.goal=0.00000001; %BP神经网络训练 net=train(net,inputn,outputn); %测试样本归一化 inputn_test=mapminmax('apply',input_test,inputps); %BP神经网络预测 an=sim(net,inputn_test); %%网络得到数据反归一化 BPoutput=mapminmax('reverse',an,outputps); d=BPoutput>c figure(1) %plot(d,':og'); scatter(1:(137-90),d,'rx'); hold on; %plot(output_test,'-*'); scatter(1:(137-90),output_test,'o'); legend('预测输出','期望输出','fontsize',12); title('BP网络预测输出','fontsize',12); xlabel('样本','fontsize',12);

bp神经网络及matlab实现解析

bp神经网络及matlab实现 分类:算法学习2012-06-20 20:56 66399人阅读评论(28) 收藏举报网络matlab算法functionnetworkinput 本文主要内容包括:(1) 介绍神经网络基本原理,(2) https://www.360docs.net/doc/651636563.html,实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法。 第0节、引例 本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在https://www.360docs.net/doc/651636563.html,/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集: 有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。 一种解决方法是用已有的数据训练一个神经网络用作分类器。 如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。 第一节、神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示:

图1. 人工神经元模型 图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为: 图中yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为: 若用X表示输入向量,用W表示权重向量,即: X = [ x0 , x1 , x2 , ....... , xn ]

BP神经网络预测实例

%% 清空环境变量 clc clear %% 训练数据预测数据 data=importdata('test.txt'); %从1到768间随机排序 k=rand(1,768); [m,n]=sort(k); %输入输出数据 input=data(:,1:8); output =data(:,9); %随机提取500个样本为训练样本,268个样本为预测样本input_train=input(n(1:500),:)'; output_train=output(n(1:500),:)'; input_test=input(n(501:768),:)'; output_test=output(n(501:768),:)'; %输入数据归一化 [inputn,inputps]=mapminmax(input_train); %% BP网络训练 % %初始化网络结构 net=newff(inputn,output_train,10);

net.trainParam.epochs=1000; net.trainParam.lr=0.1; net.trainParam.goal=0.0000004; %% 网络训练 net=train(net,inputn,output_train); %% BP网络预测 %预测数据归一化 inputn_test=mapminmax('apply',input_test,inputps); %网络预测输出 BPoutput=sim(net,inputn_test); %% 结果分析 %根据网络输出找出数据属于哪类 BPoutput(find(BPoutput<0.5))=0; BPoutput(find(BPoutput>=0.5))=1; %% 结果分析 %画出预测种类和实际种类的分类图 figure(1) plot(BPoutput,'og') hold on plot(output_test,'r*'); legend('预测类别','输出类别') title('BP网络预测分类与实际类别比对','fontsize',12)

BP神经网络程序

x1=rand(1,2000); x2=rand(1,2000); y1=x1.^2+x2.^2; input=[x1',x2']; output=[y1']; k=rand(1,2000); [m,n]=sort(k); input_train=input(n(1:1900),:)'; output_train=output(n(1:1900),:)'; input_test=input(n(1901:2000),:)'; output_test=output(n(1901:2000),:)'; %训练数据归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); %BP神经网络的构建 net=newff(inputn,outputn,5); %网络参数配置 net.trainParam.epochs=100; net.trainParam.goal=0.00004; net.trainParam.lr=0.1; %BP神经网络训练 net=train(net,inputn,outputn); inputn_test=mapminmax('apply',input_test,inputps); %BP神经网络预测输出 An=sim(net,inputn_test); %输出结果反归一化 BPoutput=mapminmax('reverse',An,outputps); %网络预测结果图形 figure(1) plot(BPoutput,':or') hold on plot(output_test,'-*'); legend('预测输出','期望输出'); title('BP网络预测输出','fontsize',12); ylabel('函数输出','fontsize',12); xlabel('样本','fontsize',12); %网络预测误差图形 figure(2) error=[output_test]'-[BPoutput]'; plot(error,'-*')

BP神经网络预测代码

B P神经网络预测代码 Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368 78534

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507 109300 111026

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图 %figure, plotperform(tr) %误差下降线

BP神经网络预测代码

B P神经网络预测代码 Revised as of 23 November 2020

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368 78534

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507 109300 111026

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图 %figure, plotperform(tr) %误差下降线

相关文档
最新文档