一种互联网宏观流量异常检测方法(2007-11-7 10:37) 摘要:网络流量异常指网络中流量不规则地显着变化。网络短暂拥塞、分布式拒绝服务攻击、大范围扫描等本地事件或者网络路由异常等全局事件都能够引起网络的异常。网络异常的检测和分析对于网络安全应急响应部门非常重要,但是宏观流量异常检测需要从大量高维的富含噪声的数据中提取和解释异常模式,因此变得很困难。文章提出一种分析网络异常的通用方法,该方法运用主成分分析手段将高维空间划分为对应正常和异常网络行为的子空间,并将流量向量影射在正常子空间中,使用基于距离的度量来检测宏观网络流量异常事件。公共互联网正在社会生活的各个领域发挥着越来越重要的作用,与此同时,由互联网的开放性和应用系统的复杂性所带来的安全风险也随之增多。2006年,国家计算机网络应急技术处理协调中心(CNCERT/CC)共接收26 476件非扫描类网络安全事件报告,与2005年相比增加2倍,超过2003—2005年3年的总和。2006年,CNCERT/CC利用部署的863-917网络安全监测平台,抽样监测发现中国大陆地区约4.5万个IP地址的主机被植入木马,与2005年同期相比增加1倍;约有1千多万个IP地址的主机被植入僵尸程序,被境外约1.6万个主机进行控制。黑客利用木马、僵尸网络等技术操纵数万甚至上百万台被入侵的计算机,释放恶意代码、发送垃圾邮件,并实施分布式拒绝服务攻击,这对包括骨干网在内的整个互联网网络带来严重的威胁。由数万台机器同时发起的分布式拒绝服务攻击能够在短时间内耗尽城域网甚至骨干网的带宽,从而造成局部的互联网崩溃。由于政府、金融、证券、能源、海关等重要信息系统的诸多业务依赖互联网开展,互联网骨干网络的崩溃不仅会带来巨额的商业损失,还会严重威胁国家安全。据不完全统计,2001年7月19日爆发的红色代码蠕虫病毒造成的损失估计超过20亿美元;2001年9月18日爆发的Nimda蠕虫病毒造成的经济损失超过26亿美元;2003年1月爆发的SQL Slammer蠕虫病毒造成经济损失超过12亿美元。针对目前互联网宏观网络安全需求,本文研究并提出一种宏观网络流量异常检测方法,能够在骨干网络层面对流量异常进行分析,在大规模安全事件爆发时进行快速有效的监测,从而为网络防御赢得时间。1 网络流量异常检测研究现状在骨干网络层面进行宏观网络流量异常检测时,巨大流量的实时处理和未知攻击的检测给传统入侵检测技术带来了很大的挑战。在流量异常检测方面,国内外的学术机构和企业不断探讨并提出了多种检测方法[1]。经典的流量监测方法是基于阈值基线的检测方法,这种方法通过对历史数据的分析建立正常的参考基线范围,一旦超出此范围就判断为异常,它的特点是简单、计算复杂度小,适用于实时检测,然而它作为一种实用的检测手段时,需要结合网络流量的特点进行修正和改进。另一种常用的方法是基于统计的检测,如一般似然比(GLR)检测方法[2],它考虑两个相邻的时间窗口以及由这两个窗口构成的合并窗口,每个窗口都用自回归模型拟合,并计算各窗口序列残差的联合似然比,然后与某个预先设定的阈值T 进行比较,当超过阈值T 时,则窗口边界被认定为异常点。这种检测方法对于流量的突变检测比较有效,但是由于它的阈值不是自动选取,并且当异常持续长度超过窗口长度时,该方法将出现部分失效。统计学模型在流量异常检测中具有广阔的研究前景,不同的统计学建模方式能够产生不同的检测方法。最近有许多学者研究了基于变换域进行流量异常检测的方法[3],基于变换域的方法通常将时域的流量信号变换到频域或者小波域,然后依据变换后的空间特征进行异常监测。P. Barford等人[4]将小波分析理论运用于流量异常检测,并给出了基于其理论的4类异常结果,但该方法的计算过于复杂,不适于在高速骨干网上进行实时检测。Lakhina等人[5-6]利用主成分分析方法(PCA),将源和目标之间的数据流高维结构空间进行PCA分解,归结到3个主成分上,以3个新的复合变量来重构网络流的特征,并以此发展出一套检测方法。此外还有一些其他的监测方法[7],例如基于Markov模型的网络状态转换概率检测方法,将每种类型的事件定义为系统状态,通过过程转换模型来描述所预测的正常的网络特征,当到来的流量特征与期望特征产生偏差时进行报警。又如LERAD检测[8],它是基于网络安全特征的检测,这种方法通过学习得到流量属性之间的正常的关联规则,然后建立正常的规则集,在实际检测中对流量进行规则匹配,对违反规则的流量进行告警。这种方法能够对发生异常的地址进行定位,并对异常的程度进行量化。但学习需要大量正常模式下的纯净数据,这在实际的网络中并不容易实现。随着宏观网络异常流量检测成为网络安全的技术热点,一些厂商纷纷推出了电信级的异常流量检测产品,如Arbor公司的Peakflow、GenieNRM公司的GenieNTG 2100、NetScout公司的nGenius等。国外一些研究机构在政府资助下,开始部署宏观网络异常监测的项目,并取得了较好的成绩,如美国研究机构CERT建立了SiLK和AirCERT项目,澳大利亚启动了NMAC流量监测系统等项目。针对宏观网络异常流量监测的需要,CNCERT/CC部署运行863-917网络安全监测平台,采用分布式的架构,能够通过多点对骨干网络实现流量监测,通过分析协议、地址、端口、包长、流量、时序等信息,达到对中国互联网宏观运行状态的监测。本文基于863-917网络安全监测平台获取流量信息,构成监测矩阵,矩阵的行向量由源地址数量、目的地址数量、传输控制协议(TCP)字节数、TCP报文数、数据报协议(UDP)字节数、UDP报文数、其他流量字节数、其他流量报文书、WEB流量字节数、WEB流量报文数、TOP10个源IP占总字节比例、TOP10个源IP占总报文数比例、TOP10个目的IP占总字节数比例、TOP10个目的IP占总报文数比例14个部分组成,系统每5分钟产生一个行向量,观测窗口为6小时,从而形成了一个72×14的数量矩阵。由于在这14个观测向量之间存在着一定的相关性,这使得利用较少的变量反映原来变量的信息成为可能。本项目采用了主成份分析法对观测数据进行数据降维和特征提取,下面对该算法的工作原理进行介绍。 2 主成分分析技术主成分分析是一种坐标变换的方法,将给定数据集的点映射到一个新轴上面,这些新轴称为主成分。主成分在代数学上是p 个随机变量X 1, X 2……X p 的一系列的线性组合,在几何学中这些现线性组合代表选取一个新的坐标系,它是以X 1,X 2……X p 为坐标轴的原来坐标系旋转得到。新坐标轴代表数据变异性最大的方向,并且提供对于协方差结果的一个较为简单但更精练的刻画。主成分只是依赖于X 1,X 2……X p 的协方差矩阵,它是通过一组变量的几个线性组合来解释这些变量的协方差结构,通常用于高维数据的解释和数据的压缩。通常p 个成分能够完全地再现全系统的变异性,但是大部分的变异性常常能够只用少量k 个主成分就能够说明,在这种情况下,这k 个主成分中所包含的信息和那p 个原变量做包含的几乎一样多,于是可以使用k 个主成分来代替原来p 个初始的变量,并且由对p 个变量的n 次测量结果所组成的原始数据集合,能够被压缩成为对于k 个主成分的n 次测量结果进行分析。运用主成分分析的方法常常能够揭示出一些先前不曾预料的关系,因而能够对于数据给出一些不同寻常的解释。当使用零均值的数据进行处理时,每一个主成分指向了变化最大的方向。主轴以变化量的大小为序,一个主成分捕捉到在一个轴向上最大变化的方向,另一个主成分捕捉到在正交方向上的另一个变化。设随机向量X '=[X 1,X 1……X p ]有协方差矩阵∑,其特征值λ1≥λ2……λp≥0。考虑线性组合:Y1 =a 1 'X =a 11X 1+a 12X 2……a 1pX pY2 =a 2 'X =a 21X 1+a 22X 2……a 2pX p……Yp =a p'X =a p 1X 1+a p 2X 2……a p pX p从而得到:Var (Yi )=a i' ∑a i ,(i =1,2……p )Cov (Yi ,Yk )=a i '∑a k ,(i ,k =1,2……p )主成分就是那些不相关的Y 的线性组合,它们能够使得方差尽可能大。第一主成分是有最大方差的线性组合,也即它能够使得Var (Yi )=a i' ∑a i 最大化。我们只是关注有单位长度的系数向量,因此我们定义:第1主成分=线性组合a 1'X,在a1'a 1=1时,它能够使得Var (a1 'X )最大;第2主成分=线性组合a 2 'X,在a2'a 2=1和Cov(a 1 'X,a 2 'X )=0时,它能够使得Var (a 2 'X )最大;第i 个主成分=线性组合a i'X,在a1'a 1=1和Cov(a i'X,a k'X )=0(k<i )时,它能够使得Var (a i'X )最大。由此可知主成分都是不相关的,它们的方差等于协方差矩阵的特征值。总方差中属于第k个主成分(被第k个主成分所解释)的比例为:如果总方差相当大的部分归属于第1个、第2个或者前几个成分,而p较大的时候,那么前几个主成分就能够取代原来的p个变量来对于原有的数据矩阵进行解释,而且信息损失不多。在本项目中,对于一个包含14个特征的矩阵进行主成分分析可知,特征的最大变化基本上能够被2到3个主成分捕捉到,这种主成分变化曲线的陡降特性构成了划分正常子空间和异常子空间的基础。3 异常检测算法本项目的异常流量检测过程分为3个阶段:建模阶段、检测阶段和评估阶段。下面对每个阶段的算法进行详细的介绍。3.1 建模阶段本项目采用滑动时间窗口建模,将当前时刻前的72个样本作为建模空间,这72个样本的数据构成了一个数据矩阵X。在试验中,矩阵的行向量由14个元素构成。主成份分为正常主成分和异常主成份,它们分别代表了网络中的正常流量和异常流量,二者的区别主要体现在变化趋势上。正常主成份随时间的变化较为平缓,呈现出明显的周期性;异常主成份随时间的变化幅度较大,呈现出较强的突发性。根据采样数据,判断正常主成分的算法是:依据主成分和采样数据计算出第一主成分变量,求第一主成分变量这72个数值的均值μ1和方差σ1,找出第一主成分变量中偏离均值最大的元素,判断其偏离均值的程度是否超过了3σ1。如果第一主成分变量的最大偏离超过了阈值,取第一主成份为正常主成分,其他主成份均为异常主成分,取主成份转换矩阵U =[L 1];如果最大偏离未超过阈值,转入判断第下一主成分,最后取得U =[L 1……L i -1]。第一主成份具有较强的周期性,随后的主成份的周期性渐弱,突发性渐强,这也体现了网络中正常流量和异常流量的差别。在得到主成份转换矩阵U后,针对每一个采样数据Sk =xk 1,xk 2……xk p ),将其主成份投影到p维空间进行重建,重建后的向量为:Tk =UU T (Sk -X )T计算该采样数据重建前与重建后向量之间的欧氏距离,称之为残差:dk =||Sk -Tk ||根据采样数据,我们分别计算72次采样数据的残差,然后求其均值μd 和标准差σd 。转换矩阵U、残差均值μd 、残差标准差σd 是我们构造的网络流量模型,也是进行流量异常检测的前提条件。 3.2 检测阶段在通过建模得到网络流量模型后,对于新的观测向量N,(n 1,n 2……np ),采用与建模阶段类似的分析方法,将其中心化:Nd =N -X然后将中心化后的向量投影到p维空间重建,并计算残差:Td =UUTNdTd =||Nd -Td ||如果该观测值正常,则重建前与重建后向量应该非常相似,计算出的残差d 应该很小;如果观测值代表的流量与建模时发生了明显变化,则计算出的残差值会较大。本项目利用如下算法对残差进行量化:3.3 评估阶段评估阶段的任务是根据当前观测向量的量化值q (d ),判断网络流量是否正常。根据经验,如果|q (d )|<5,网络基本正常;如果5≤|q (d )|<10,网络轻度异常;如果10≤|q (d )|,网络重度异常。4 实验结果分析利用863-917网络安全监测平台,对北京电信骨干网流量进行持续监测,我们提取6小时的观测数据,由于篇幅所限,我们给出图1—4的时间序列曲线。由图1—4可知单独利用任何一个曲线都难以判定异常,而利用本算法可以容易地标定异常发生的时间。本算法计算结果如图5所示,异常发生时间在图5中标出。我们利用863-917平台的回溯功能对于异常发生时间进行进一步的分析,发现在标出的异常时刻,一个大规模的僵尸网络对网外的3个IP地址发起了大规模的拒绝服务攻击。 5 结束语本文提出一种基于主成分分析的方法来划分子空间,分析和发现网络中的异常事件。本方法能够准确快速地标定异常发生的时间点,从而帮助网络安全应急响应部门及时发现宏观网络的流量异常状况,为迅速解决网络异常赢得时间。试验表明,我们采用的14个特征构成的分析矩阵具有较好的识别准确率和分析效率,我们接下来将会继续寻找更具有代表性的特征来构成数据矩阵,并研究更好的特征矩阵构造方法来进一步提高此方法的识别率,并将本方法推广到短时分析中。6 参考文献[1] XU K, ZHANG Z L, BHATTACHARYYA S. Profiling Internet backbone traffic: Behavior models and applications [C]// Proceedings of ACM SIGCOMM, Aug 22- 25, 2005, Philadelphia, PA, USA. New York, NY,USA:ACM,2005:169-180.[2] HAWKINS D M, QQUI P, KANG C W. The change point model for statistical process control [J]. Journal of Quality Technology,2003, 35(4).[3] THOTTAN M, JI C. Anomaly detection in IP networks [J]. IEEE Transactions on Signal Processing, 2003, 51 )8):2191-2204.[4] BARFORD P, KLINE J, PLONKA D, et al. A signal analysis of network traffic anomalies [C]//Proceedings of ACM SIGCOMM Intemet Measurement Workshop (IMW 2002), Nov 6-8, 2002, Marseilles, France. New York, NY,USA:ACM, 2002:71-82.[5] LAKHINA A, CROVELLA M, DIOT C. Mining anomalies using traffic feature distributions [C]// Proceedings of SIGCOMM, Aug 22-25, 2005, Philadelphia, PA, USA. New York, NY,USA: ACM, 2005: 217-228.[6] LAKHINA A, CROVELLA M, DIOT C. Diagnosing network-wide traffic anomalies [C]// Proceedings of ACM SIGCOMM, Aug 30 - Sep 3, 2004, Portland, OR, USA. New York, NY,USA: ACM, 2004: 219-230.[7] SCHWELLER R, GUPTA A, PARSONS E, et al. Reversible sketches for efficient and accurate change detection over network data streams [C]//Proceedings of ACM SIGCOMM Internet Measurement Conference (IMC’04), Oct 25-27, 2004, Taormina, Sicily, Italy. New York, NY,USA: ACM, 2004:207-212.[8] MAHONEY M V, CHAN P K. Learning rules for anomaly detection of hostile network traffic [C]// Proceedings of International Conference on Data Mining (ICDM’03), Nov 19-22, Melbourne, FL, USA . Los Alamitos, CA, USA: IEEE Computer Society, 2003:601-604.
‘贰’ 网络异常如何修复网络故障修复方法
一、修复IP 的操作 如果日常使用时出现断网的问题该怎么办呢?这可能是硬件、网络的问题或者是由于软件的IP 设置问题引起的。如果不是网络问题的话,那么可能就是你的设置问题,你可以先按上小节说的把应安装的协议服务都装齐,如果还不能解决,可以试着自己修复I P 。 方法如下:进入“本地连接 状态”的设置对话框中,单击“支持”选项标签,然后单击“修复”按钮即可完成修复IP 的操作 二、ipconfig 命令的应用 很多时候可以通过输入一些命令检测网络,例如查看I P 地址、看看网络是否正常工作等等。 (1 )单击打开“开始”→“程序”→“附件”→“命令提示符”命令,或者直接在“运行”对话框中输入“c m d ”命令。在“命令提示符”对话框中,输入命令:i p c o n f i g 如果一切正常的话可以看见你的IP和子网掩码以及默认网关信息。 如果看不见或者看见的是不可以应用的IP地址,说明是IP 出了问题。 小技巧:你也可以在C:\Documents and Settings\(你的用户名如Kitty)\Favorites里直接编辑修改。 (2)如果是IP 出了问题,先释放这个不可以应用的IP 地址,方法是输入:ipconfig/release。这个命令将释放现有IP (3)如果要让系统重新分配IP 地址,那么可以输入命令:ipconfig/renew 三、Ping 命令的应用 Ping 语句一般是用来显示网络连接的成功已否,以及别人的计算机是否工作等等。 单击“开始”→“运行”,在空方框里输入例如:Ping 192.168.1.1 – t,如果屏幕出现提示信息,表明网络是连通的;如果出现“Request time out”(请求返回超时),或“Bad IP Address”(错误IP 地址),说明网络有问题,必须一步一步检查。 四、route print 命令的应用 route print 命令可以用来检测网关是否正确。 打开网络中的所以机器,在其中的一台客户机的“命令提示符”对话框中键入route print 命令,按回车键后显示对话框。如果正确,会显示网关的信息,如果是错误,会显示出下图的信息。 文章总结: 利用Windows 系统自带的网络管理和维护工具,可以轻松地实现强大的管理功能。当然在应用这些工具的过程中必须要清楚工具的使用对象和实现的功能。做到灵活有效地应用这些工具。 已有很多想学电脑知识的朋友加入了我们!想和大家一起学电脑知识的朋友,请关注电脑知识网的官方空间! 朋友,我们期待你的加入!
‘叁’ 用MATLAB进行人工神经网络建模,有多个输入因素的情况下,如何分析哪个因素对输出的
你说的是主成分分析吧,主成分分析建议使用spss软件,里面有很直接的主成分分析算法,不需要编程,直接使用就可以了,或者你确实需要使用matlab来做的话,请使用princomp函数,这个函数用来进行主成分分析,具体调用格式你可以doc princomp看看,有很详细的例子,祝好。
‘肆’ 神经网络BP模型
一、BP模型概述
误差逆传播(Error Back-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型。
Pall Werbas博士于1974年在他的博士论文中提出了误差逆传播学习算法。完整提出并被广泛接受误差逆传播学习算法的是以Rumelhart和McCelland为首的科学家小组。他们在1986年出版“Parallel Distributed Processing,Explorations in the Microstructure of Cognition”(《并行分布信息处理》)一书中,对误差逆传播学习算法进行了详尽的分析与介绍,并对这一算法的潜在能力进行了深入探讨。
BP网络是一种具有3层或3层以上的阶层型神经网络。上、下层之间各神经元实现全连接,即下层的每一个神经元与上层的每一个神经元都实现权连接,而每一层各神经元之间无连接。网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,神经元的激活值从输入层经各隐含层向输出层传播,在输出层的各神经元获得网络的输入响应。在这之后,按减小期望输出与实际输出的误差的方向,从输入层经各隐含层逐层修正各连接权,最后回到输入层,故得名“误差逆传播学习算法”。随着这种误差逆传播修正的不断进行,网络对输入模式响应的正确率也不断提高。
BP网络主要应用于以下几个方面:
1)函数逼近:用输入模式与相应的期望输出模式学习一个网络逼近一个函数;
2)模式识别:用一个特定的期望输出模式将它与输入模式联系起来;
3)分类:把输入模式以所定义的合适方式进行分类;
4)数据压缩:减少输出矢量的维数以便于传输或存储。
在人工神经网络的实际应用中,80%~90%的人工神经网络模型采用BP网络或它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分。
二、BP模型原理
下面以三层BP网络为例,说明学习和应用的原理。
1.数据定义
P对学习模式(xp,dp),p=1,2,…,P;
输入模式矩阵X[N][P]=(x1,x2,…,xP);
目标模式矩阵d[M][P]=(d1,d2,…,dP)。
三层BP网络结构
输入层神经元节点数S0=N,i=1,2,…,S0;
隐含层神经元节点数S1,j=1,2,…,S1;
神经元激活函数f1[S1];
权值矩阵W1[S1][S0];
偏差向量b1[S1]。
输出层神经元节点数S2=M,k=1,2,…,S2;
神经元激活函数f2[S2];
权值矩阵W2[S2][S1];
偏差向量b2[S2]。
学习参数
目标误差ϵ;
初始权更新值Δ0;
最大权更新值Δmax;
权更新值增大倍数η+;
权更新值减小倍数η-。
2.误差函数定义
对第p个输入模式的误差的计算公式为
中国矿产资源评价新技术与评价新模型
y2kp为BP网的计算输出。
3.BP网络学习公式推导
BP网络学习公式推导的指导思想是,对网络的权值W、偏差b修正,使误差函数沿负梯度方向下降,直到网络输出误差精度达到目标精度要求,学习结束。
各层输出计算公式
输入层
y0i=xi,i=1,2,…,S0;
隐含层
中国矿产资源评价新技术与评价新模型
y1j=f1(z1j),
j=1,2,…,S1;
输出层
中国矿产资源评价新技术与评价新模型
y2k=f2(z2k),
k=1,2,…,S2。
输出节点的误差公式
中国矿产资源评价新技术与评价新模型
对输出层节点的梯度公式推导
中国矿产资源评价新技术与评价新模型
E是多个y2m的函数,但只有一个y2k与wkj有关,各y2m间相互独立。
其中
中国矿产资源评价新技术与评价新模型
则
中国矿产资源评价新技术与评价新模型
设输出层节点误差为
δ2k=(dk-y2k)·f2′(z2k),
则
中国矿产资源评价新技术与评价新模型
同理可得
中国矿产资源评价新技术与评价新模型
对隐含层节点的梯度公式推导
中国矿产资源评价新技术与评价新模型
E是多个y2k的函数,针对某一个w1ji,对应一个y1j,它与所有的y2k有关。因此,上式只存在对k的求和,其中
中国矿产资源评价新技术与评价新模型
则
中国矿产资源评价新技术与评价新模型
设隐含层节点误差为
中国矿产资源评价新技术与评价新模型
则
中国矿产资源评价新技术与评价新模型
同理可得
中国矿产资源评价新技术与评价新模型
4.采用弹性BP算法(RPROP)计算权值W、偏差b的修正值ΔW,Δb
1993年德国 Martin Riedmiller和Heinrich Braun 在他们的论文“A Direct Adaptive Method for Faster Backpropagation Learning:The RPROP Algorithm”中,提出Resilient Backpropagation算法——弹性BP算法(RPROP)。这种方法试图消除梯度的大小对权步的有害影响,因此,只有梯度的符号被认为表示权更新的方向。
权改变的大小仅仅由权专门的“更新值”
中国矿产资源评价新技术与评价新模型
其中
权更新遵循规则:如果导数是正(增加误差),这个权由它的更新值减少。如果导数是负,更新值增加。
中国矿产资源评价新技术与评价新模型
RPROP算法是根据局部梯度信息实现权步的直接修改。对于每个权,我们引入它的
各自的更新值
于在误差函数E上的局部梯度信息,按照以下的学习规则更新
中国矿产资源评价新技术与评价新模型
其中0<η-<1<η+。
在每个时刻,如果目标函数的梯度改变它的符号,它表示最后的更新太大,更新值
为了减少自由地可调参数的数目,增大倍数因子η+和减小倍数因子η–被设置到固定值
η+=1.2,
η-=0.5,
这两个值在大量的实践中得到了很好的效果。
RPROP算法采用了两个参数:初始权更新值Δ0和最大权更新值Δmax
当学习开始时,所有的更新值被设置为初始值Δ0,因为它直接确定了前面权步的大小,它应该按照权自身的初值进行选择,例如,Δ0=0.1(默认设置)。
为了使权不至于变得太大,设置最大权更新值限制Δmax,默认上界设置为
Δmax=50.0。
在很多实验中,发现通过设置最大权更新值Δmax到相当小的值,例如
Δmax=1.0。
我们可能达到误差减小的平滑性能。
5.计算修正权值W、偏差b
第t次学习,权值W、偏差b的的修正公式
W(t)=W(t-1)+ΔW(t),
b(t)=b(t-1)+Δb(t),
其中,t为学习次数。
6.BP网络学习成功结束条件每次学习累积误差平方和
中国矿产资源评价新技术与评价新模型
每次学习平均误差
中国矿产资源评价新技术与评价新模型
当平均误差MSE<ε,BP网络学习成功结束。
7.BP网络应用预测
在应用BP网络时,提供网络输入给输入层,应用给定的BP网络及BP网络学习得到的权值W、偏差b,网络输入经过从输入层经各隐含层向输出层的“顺传播”过程,计算出BP网的预测输出。
8.神经元激活函数f
线性函数
f(x)=x,
f′(x)=1,
f(x)的输入范围(-∞,+∞),输出范围(-∞,+∞)。
一般用于输出层,可使网络输出任何值。
S型函数S(x)
中国矿产资源评价新技术与评价新模型
f(x)的输入范围(-∞,+∞),输出范围(0,1)。
f′(x)=f(x)[1-f(x)],
f′(x)的输入范围(-∞,+∞),输出范围(0,
一般用于隐含层,可使范围(-∞,+∞)的输入,变成(0,1)的网络输出,对较大的输入,放大系数较小;而对较小的输入,放大系数较大,所以可用来处理和逼近非线性的输入/输出关系。
在用于模式识别时,可用于输出层,产生逼近于0或1的二值输出。
双曲正切S型函数
中国矿产资源评价新技术与评价新模型
f(x)的输入范围(-∞,+∞),输出范围(-1,1)。
f′(x)=1-f(x)·f(x),
f′(x)的输入范围(-∞,+∞),输出范围(0,1]。
一般用于隐含层,可使范围(-∞,+∞)的输入,变成(-1,1)的网络输出,对较大的输入,放大系数较小;而对较小的输入,放大系数较大,所以可用来处理和逼近非线性的输入/输出关系。
阶梯函数
类型1
中国矿产资源评价新技术与评价新模型
f(x)的输入范围(-∞,+∞),输出范围{0,1}。
f′(x)=0。
类型2
中国矿产资源评价新技术与评价新模型
f(x)的输入范围(-∞,+∞),输出范围{-1,1}。
f′(x)=0。
斜坡函数
类型1
中国矿产资源评价新技术与评价新模型
f(x)的输入范围(-∞,+∞),输出范围[0,1]。
中国矿产资源评价新技术与评价新模型
f′(x)的输入范围(-∞,+∞),输出范围{0,1}。
类型2
中国矿产资源评价新技术与评价新模型
f(x)的输入范围(-∞,+∞),输出范围[-1,1]。
中国矿产资源评价新技术与评价新模型
f′(x)的输入范围(-∞,+∞),输出范围{0,1}。
三、总体算法
1.三层BP网络(含输入层,隐含层,输出层)权值W、偏差b初始化总体算法
(1)输入参数X[N][P],S0,S1,f1[S1],S2,f2[S2];
(2)计算输入模式X[N][P]各个变量的最大值,最小值矩阵 Xmax[N],Xmin[N];
(3)隐含层的权值W1,偏差b1初始化。
情形1:隐含层激活函数f( )都是双曲正切S型函数
1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];
2)计算输入模式X的每个变量的范围均值向量Xmid[N];
3)计算W,b的幅度因子Wmag;
4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];
5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];
6)计算W[S1][S0],b[S1];
7)计算隐含层的初始化权值W1[S1][S0];
8)计算隐含层的初始化偏差b1[S1];
9))输出W1[S1][S0],b1[S1]。
情形2:隐含层激活函数f( )都是S型函数
1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];
2)计算输入模式X的每个变量的范围均值向量Xmid[N];
3)计算W,b的幅度因子Wmag;
4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];
5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];
6)计算W[S1][S0],b[S1];
7)计算隐含层的初始化权值W1[S1][S0];
8)计算隐含层的初始化偏差b1[S1];
9)输出W1[S1][S0],b1[S1]。
情形3:隐含层激活函数f( )为其他函数的情形
1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];
2)计算输入模式X的每个变量的范围均值向量Xmid[N];
3)计算W,b的幅度因子Wmag;
4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];
5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];
6)计算W[S1][S0],b[S1];
7)计算隐含层的初始化权值W1[S1][S0];
8)计算隐含层的初始化偏差b1[S1];
9)输出W1[S1][S0],b1[S1]。
(4)输出层的权值W2,偏差b2初始化
1)产生[-1,1]之间均匀分布的S2×S1维随机数矩阵W2[S2][S1];
2)产生[-1,1]之间均匀分布的S2×1维随机数矩阵b2[S2];
3)输出W2[S2][S1],b2[S2]。
2.应用弹性BP算法(RPROP)学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b总体算法
函数:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)
(1)输入参数
P对模式(xp,dp),p=1,2,…,P;
三层BP网络结构;
学习参数。
(2)学习初始化
1)
2)各层W,b的梯度值
(3)由输入模式X求第一次学习各层输出y0,y1,y2及第一次学习平均误差MSE
(4)进入学习循环
epoch=1
(5)判断每次学习误差是否达到目标误差要求
如果MSE<ϵ,
则,跳出epoch循环,
转到(12)。
(6)保存第epoch-1次学习产生的各层W,b的梯度值
(7)求第epoch次学习各层W,b的梯度值
1)求各层误差反向传播值δ;
2)求第p次各层W,b的梯度值
3)求p=1,2,…,P次模式产生的W,b的梯度值
(8)如果epoch=1,则将第epoch-1次学习的各层W,b的梯度值
(9)求各层W,b的更新
1)求权更新值Δij更新;
2)求W,b的权更新值
3)求第epoch次学习修正后的各层W,b。
(10)用修正后各层W、b,由X求第epoch次学习各层输出y0,y1,y2及第epoch次学习误差MSE
(11)epoch=epoch+1,
如果epoch≤MAX_EPOCH,转到(5);
否则,转到(12)。
(12)输出处理
1)如果MSE<ε,
则学习达到目标误差要求,输出W1,b1,W2,b2。
2)如果MSE≥ε,
则学习没有达到目标误差要求,再次学习。
(13)结束
3.三层BP网络(含输入层,隐含层,输出层)预测总体算法
首先应用Train3lBP_RPROP( )学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b,然后应用三层BP网络(含输入层,隐含层,输出层)预测。
函数:Simu3lBP( )。
1)输入参数:
P个需预测的输入数据向量xp,p=1,2,…,P;
三层BP网络结构;
学习得到的各层权值W、偏差b。
2)计算P个需预测的输入数据向量xp(p=1,2,…,P)的网络输出 y2[S2][P],输出预测结果y2[S2][P]。
四、总体算法流程图
BP网络总体算法流程图见附图2。
五、数据流图
BP网数据流图见附图1。
六、实例
实例一 全国铜矿化探异常数据BP 模型分类
1.全国铜矿化探异常数据准备
在全国铜矿化探数据上用稳健统计学方法选取铜异常下限值33.1,生成全国铜矿化探异常数据。
2.模型数据准备
根据全国铜矿化探异常数据,选取7类33个矿点的化探数据作为模型数据。这7类分别是岩浆岩型铜矿、斑岩型铜矿、矽卡岩型、海相火山型铜矿、陆相火山型铜矿、受变质型铜矿、海相沉积型铜矿,另添加了一类没有铜异常的模型(表8-1)。
3.测试数据准备
全国化探数据作为测试数据集。
4.BP网络结构
隐层数2,输入层到输出层向量维数分别为14,9、5、1。学习率设置为0.9,系统误差1e-5。没有动量项。
表8-1 模型数据表
续表
5.计算结果图
如图8-2、图8-3。
图8-2
图8-3 全国铜矿矿床类型BP模型分类示意图
实例二 全国金矿矿石量品位数据BP 模型分类
1.模型数据准备
根据全国金矿储量品位数据,选取4类34个矿床数据作为模型数据,这4类分别是绿岩型金矿、与中酸性浸入岩有关的热液型金矿、微细浸染型型金矿、火山热液型金矿(表8-2)。
2.测试数据准备
模型样本点和部分金矿点金属量、矿石量、品位数据作为测试数据集。
3.BP网络结构
输入层为三维,隐层1层,隐层为三维,输出层为四维,学习率设置为0.8,系统误差1e-4,迭代次数5000。
表8-2 模型数据
4.计算结果
结果见表8-3、8-4。
表8-3 训练学习结果
表8-4 预测结果(部分)
续表
‘伍’ 神经网络建模问题
首先将输入数据存为矩阵,然后找Matlab与神经网络的书,构建起来就行了。
‘陆’ 数据分析建模步骤有哪些
1、分类和聚类
分类算法是极其常用的数据挖掘方法之一,其核心思想是找出目标数据项的共同特征,并按照分类规则将数据项划分为不同的类别。聚类算法则是把一组数据按照相似性和差异性分为若干类别,使得同一类别数据间的相似性尽可能大,不同类别数据的相似性尽可能小。分类和聚类的目的都是将数据项进行归类,但二者具有显着的区别。分类是有监督的学习,即这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。而聚类则是无监督的学习,不需要对数据进行训练和学习。常见的分类算法有决策树分类算法、贝叶斯分类算法等;聚类算法则包括系统聚类,K-means均值聚类等。
2、回归分析
回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,其主要研究的问题包括数据序列的趋势特征、数据序列的预测以及数据间的相关关系等。按照模型自变量的多少,回归算法可以分为一元回归分析和多元回归分析;按照自变量和因变量间的关系,又可分为线性回归和非线性回归分析。
3、神经网络
神经网络算法是在现代神经生物学研究的基础上发展起来的一种模拟人脑信息处理机制的网络系统,不但具备一般计算能力,还具有处理知识的思维、学习和记忆能力。它是一种基于导师的学习算法,可以模拟复杂系统的输入和输出,同时具有非常强的非线性映射能力。基于神经网络的挖掘过程由数据准备、规则提取、规则应用和预测评估四个阶段组成,在数据挖掘中,经常利用神经网络算法进行预测工作。
4、关联分析
关联分析是在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的关联、相关性或因果结构,即描述数据库中不同数据项之间所存在关系的规则。例如,一项数据发生变化,另一项也跟随发生变化,则这两个数据项之间可能存在某种关联。关联分析是一个很有用的数据挖掘模型,能够帮助企业输出很多有用的产品组合推荐、优惠促销组合,能够找到的潜在客户,真正的把数据挖掘落到实处。4市场营销大数据挖掘在精准营销领域的应用可分为两大类,包括离线应用和在线应用。其中,离线应用主要是基于客户画像进行数据挖掘,进行不同目的针对性营销活动,包括潜在客户挖掘、流失客户挽留、制定精细化营销媒介等。而在线应用则是基于实时数据挖掘结果,进行精准化的广告推送和市场营销,具体包括DMP,DSP和程序化购买等应用。
‘柒’ 如何解决不能绘制网络模型,报错protobuf
publicbooleandoDecode(IoSessionsession,IoBufferin,ProtocolDecoderOutputout)throwsException{log.info("in.remaining:"+in.remaining());if(in.remaining()>0){//有数据时,读取前8字节判断消息长度byte[]sizeBytes=newbyte[8];in.mark();//标记当前位置,以便reset//因为我的前数据包的长度是保存在第4-8字节中,in.get(sizeBytes,0,8);//读取4字节//DataTypeChangeHelper是自己写的一个byte[]转int的一个工具类intsize=(int)DataTypeUtil.bytesToInt(sizeBytes,4);log.info("size:"+size);in.reset();if(size>in.remaining()){//如果消息内容不够,则重置,相当于不读取sizereturnfalse;//父类接收新数据,以拼凑成完整数据}else{byte[]bytes=newbyte[size];in.get(bytes,0,size);//把字节转换为Java对象的工具类PackageDatapack=packetComponent.getDataFromBuffer(IoBuffer.wrap(bytes));out.write(pack);if(in.remaining()>0){//如果读取内容后还粘了包,就让父类再重读一次,进行下一次解析returntrue;}}}returnfalse;//处理成功,让父类进行接收下个包}getter();Setter();}二、实现编解码工厂和解码器我们还需要一个编解码工厂,用来为编解码过滤器提供编码器和解码器,解码器此处我们用不到,但是也必须提供,所以可以提供一个空的实现。/****编解码工厂**/{privateProtocolEncoderencoder=null;privateProtocolDecoderdecoder=null;publicMyCodecFcatory(ProtocolEncoderencoder,ProtocolDecoderdecoder){this.encoder=encoder;this.decoder=decoder;}@(IoSessionsession)throwsException{returnthis.encoder;}@(IoSessionsession)throwsException{returnthis.decoder;}}/****编码器:不做任何操作,数据已是约定好的格式,按原格式编码**/{@Overridepublicvoidencode(IoSessionsession,Objectmessage,ProtocolEncoderOutputout)throwsException{//TODODonothing}}三、配置编解码过滤器下面就可以配置编解码过滤器了:需要注意的是:在doDecode中通过out.write(pack)把数据输出后,官方的说明文档中说接下来会继续执行后面的过滤器,然后是IoHandle。如果你是只用了一个编解码过滤器的话,这可能完全没问题,但是如果使用了两个编解码过滤器(可能很少有人会这样做,但本人由于前期使用了另外一个自定义的编解码过滤器,后来想加上这个可累加的解码器,为了图省事就在原过滤器的前面新增加了一个编解码过滤器,后来数据流就不走我原来的编解码过滤器了,out.write()之后直接到了IoHandle里面,搞了我好久,无奈最后把两个编解码过滤器合二为一啦,其中原因我还没时间去搞个清楚,为防止大家和我犯同一个错误,特此提醒!)
‘捌’ vv5网络异常怎么办
vv5网络异常检查原因,检查车辆的wifi,移动网络开关是否打开,检查车辆网络信号是否正常,若无信号请尝试移动到信号较好的地方,可以尝试重启一下车辆,刷新网络连接,可能是没有充值缴费,可以查询一下缴费情况,可以尝试恢复出厂设置,重新设置网络。
网络介绍
一般用来对管道系统,交通系统,通讯系统来建模,有时特指计算机网络Computer Network,或特别指有其中的互联网Internet由有关联的个体组成的系统,如,人际网络,交通网络,政治网络。有时用的带箭头的连线表示从一个节点到另一个节点存在某种顺序关系。
在节点或连线旁标出的数值,称为点权或线权,有时不标任何数。用数学定义,网络是一种图,一般认为它专指加权图。物理定义,网络是从某种相同类型的实际问题中抽象出来的模型。习惯上就称其为什么类型网络,如开关网络,运输网络,通信网络,计划网络等。