BP神经网络基本原理
2.1 BP神经网络基本原理
BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号Yk,网络训练的每一个样本包含输入向量X和期望输出量t,网络输出值Y与期望输出值t之间的偏差,通过调整输入节点与隐层节点的联接强度取值Wij和隐层节点与输出节点之间的联接强度Tjk以及阈值,使误差沿梯度方向下降,经过重复学习训练,确定与最小误差相相应的网络參数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对相似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
2.2 BP神经网络模型
BP网络模型包含其输入输出模型、作用函数模型、误差计算模型和自学习模型。
(1)节点输出模型
隐节点输出模型:Oj=f(∑Wij×Xi-q j) (1)
输出节点输出模型:Yk=f(∑Tjk×Oj-q k) (2)
f-非线形作用函数;q -神经单元阈值。
图1
典型BP网络结构模型
(2)作用函数模型
作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数: f(x)=1/(1+e-x) (3)
(3)误差计算模型
误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:
Ep=1/2×∑(tpi-Opi)2 (4)
tpi- i节点的期望输出值;Opi-i节点计算输出值。
(4)自学习模型
神经网络的学习过程,即连接下层节点和上层节点之间的权重拒阵Wij的设定和误差修正过程。BP网络有师学习方式-须要设定期望值和无师学习方式-仅仅需输入模式之分。自学习模型为
△Wij(n+1)= h ×Фi×Oj+a×△Wij(n) (5)
h -学习因子;Фi-输出节点i的计算误差;Oj-输出节点j的计算输出;a-动量因子。
2.3 BP网络模型的缺陷分析及优化策略
(1)学习因子h 的优化
採用变步长法依据输出误差大小自己主动调整学习因子,来降低迭代次数和加快收敛速度。
h =h +a×(Ep(n)- Ep(n-1))/ Ep(n) a为调整步长,0~1之间取值 (6)
(2)隐层节点数的优化
隐节点数的多少对网络性能的影响较大,当隐节点数太多时,会导致网络学习时间过长,甚至不能收敛;而当隐节点数过小时,网络的容错能力差。利用逐步回归分析法并进行參数的显著性检验来动态删除一些线形相关的隐节点,节点删除标准:当由该节点出发指向下一层节点的全部权值和阈值均落于死区(通常取±0.1、±0.05等区间)之中,则该节点可删除。最佳隐节点数L可參考以下公式计算:
L=(m+n)1/2+c (7)
m-输入节点数;n-输出节点数;c-介于1~10的常数。
(3)输入和输出神经元的确定
利用多元回归分析法对神经网络的输入參数进行处理,删除相关性强的输入參数,来降低输入节点数。
(4)算法优化
因为BP算法採用的是剃度下降法,因而易陷于局部最小而且训练时间较长。用基于生物免疫机制地既能全局搜索又能避免未成熟收敛的免疫遗传算法IGA代替传统BP算法来克服此缺点。
3. 优化BP神经网络在系统安全评价中的应用
系统安全评价包含系统固有危急性评价、系统安全管理现状评价和系统现实危急性评价三方面内容。当中固有危急性评价指标有物质火灾爆炸危急性、工艺危急性、设备装置危急性、环境危急性以及人的不可靠性。
3.1 基于优化BP神经网络的系统安全评价模型

图-2 基于优化BP神经网络的系统安全评价模型
3.2 BP神经网络在系统安全评价中的应用实现
(1)确定网络的拓扑结构,包含中间隐层的层数,输入层、输出层和隐层的节点数。
(2)确定被评价系统的指标体系包含特征參数和状态參数
运用神经网络进行安全评价时,首先必须确定评价系统的内部构成和外部环境,确定能够正确反映被评价对象安全状态的主要特征參数(输入节点数,各节点实际含义及其表达形式等),以及这些參数下系统的状态(输出节点数,各节点实际含义及其表达方式等)。
(3)选择学习样本,供神经网络学习
选取多组相应系统不同状态參数值时的特征參数值作为学习样本,供网络系统学习。这些样本应尽可能地反映各种安全状态。当中对系统特征參数进行(-∞,∞)区间地预处理,对系统參数应进行(0,1)区间地预处理。神经网络的学习过程即依据样本确定网络的联接权值和误差重复修正的过程。
(4)确定作用函数,通常选择非线形S型函数
(5) 建立系统安全评价知识库
通过网络学习确认的网络结构包含:输入、输出和隐节点数以及反映其间关联度的网络权值的组合;即为具有推理机制的被评价系统的安全评价知识库。
(6) 进行实际系统的安全评价
经过训练的神经网络将实际评价系统的特征值转换后输入到已具有推理功能的神经网络中,运用系统安全评价知识库处理后得到评价实际系统的安全状态的评价结果。实际系统的评价结果又作为新的学习样本输入神经网络,使系统安全评价知识库进一步充实。
3.3 BP神经网络理论应用于系统安全评价中的长处
(1)利用神经网络并行结构和并行处理的特征,通过适当选择评价项目,能克服安全评价的片面性,能够全面评价系统的安全状况和多因数共同作用下的安全状态。
(2)运用神经网络知识存储和自适应特征,通过适应补充学习样本,能够实现历史经验与新知识完满结合,在发展过程中动态地评价系统的安全状态。
(3)利用神经网络理论的容错特征,通过选取适当的作用函数和数据结构,能够处理各种非数值性指标,实现对系统安全状态的模糊评价。
BP神经网络基本原理的更多相关文章
- BP神经网络的基本原理
2.1 BP神经网络基本原理 BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点.经过非线形变换,产生输出信号Yk,网络训练的每一个样本包含输入向量X和期望输出量t,网 ...
- BP神经网络
BP神经网络基本原理 BP神经网络是一种单向传播的多层前向网络,具有三层或多层以上的神经网络结构,其中包含输入层.隐含层和输出层的三层网络应用最为普遍. 网络中的上下层之间实现全连接,而每层神经元之 ...
- BP神经网络学习笔记_附源代码
BP神经网络基本原理: 误差逆传播(back propagation, BP)算法是一种计算单个权值变化引起网络性能变化的较为简单的方法.由于BP算法过程包含从输出节点开始,反向地向第一隐含层(即最接 ...
- bp神经网络及matlab实现
本文主要内容包含: (1) 介绍神经网络基本原理,(2) AForge.NET实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法 . 第0节.引例 本文以Fisher的Iris数据集 ...
- 神经网络中的BP神经网络和贝叶斯
1 贝叶斯网络在地学中的应用 1 1.1基本原理及发展过程 1 1.2 具体的研究与应用 4 2 BP神经网络在地学中的应用 6 2.1BP神经网络简介 6 2.2基本原理 7 2.3 在地学中的具体 ...
- 模式识别之ocr项目---(模板匹配&BP神经网络训练)
摘 要 在MATLAB环境下利用USB摄像头采集字符图像,读取一帧保存为图像,然后对读取保存的字符图像,灰度化,二值化,在此基础上做倾斜矫正,对矫正的图像进行滤波平滑处理,然后对字符区域进行提取分割出 ...
- 字符识别OCR研究一(模板匹配&BP神经网络训练)
摘 要 在MATLAB环境下利用USB摄像头採集字符图像.读取一帧保存为图像.然后对读取保存的字符图像,灰度化.二值化,在此基础上做倾斜矫正.对矫正的图像进行滤波平滑处理,然后对字符区域进行提取切割出 ...
- 基于BP神经网络的简单字符识别算法自小结(C语言版)
本文均属自己阅读源代码的点滴总结.转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email:gzzaigcn2009@163.com 写在前面的闲话: 自我感觉自己应该不是一个非常 ...
- BP神经网络原理及python实现
[废话外传]:终于要讲神经网络了,这个让我踏进机器学习大门,让我读研,改变我人生命运的四个字!话说那么一天,我在乱点百度,看到了这样的内容: 看到这么高大上,这么牛逼的定义,怎么能不让我这个技术宅男心 ...
随机推荐
- java MYSQL做分页
MySql中查询语句实现分页功能 语句: select * from 表名 where 条件 limit 要找第几页,每页多少行; import java.util.*; import java.sq ...
- html多行注释方法
Html单行:<!-- -->多行:<!-- -->javascript单行://多行:/* */Vbscript单行:'多行:'ASP <% %>中: 单行:' ...
- c/c++ 传统数组的缺点
专题: 动态内存分配 (所有高级语言,没有C里深刻) 传统数组的缺点: 1.数组长度必须事先指定,而且只能是常整数,不能是变量 例子 ]; //必须事先指定,而且只能是常整数 ; int a ...
- hdu 4763 && 2013 ACM/ICPC 长春网络赛解题报告
一个KMP的简单题 不过好久没用过这个东东了,今天写的时候花了很多时间: 只需要花点时间判断下所有的元素都相同的的情况就行了! #include<cstdio> #include<c ...
- css全局设置
/***** 全局设置 *****/ body,h1,h2,h3,h4,h5,h6,p,form,ul,ol,li,dt,dl,dd,th,td,label,bottom,input,textar ...
- 时区 : America/Mexico_City 中文:美国中部时间(墨西哥城) 的夏令时
方法: (参数为: TimeZone timeZone = TimeZone.getTimeZone("America/Mexico_City"); private static ...
- eclipse环境NDK问题汇总
1. 配置NDK路径设置 可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量 NDK=/ ...
- 约瑟夫环的java实现
转自:http://www.cnblogs.com/timeng/p/3335162.html 约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到 ...
- (转载)Linux下IPTABLES配置详解
(转载)http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 ...
- Devexpress之popupMenu
1.拖放一个BarManager控件barManager1和一个PopupMenu控件popupMenu1 2.设置popupMenu1的Manager属性为barManager1 3.拖放一个Tex ...