❶ 神经网络异常检测方法和机器学习异常检测方法对于入侵检测的应用
神经网络异常检测方法神经网络入侵检测方法是通过训练神经网络连续的信息单元来进行异常检测,信息单元指的是命令。网络的输入为用户当前输入的命令和已执行过的W个命令;用户执行过的命令被神经网络用来预测用户输入的下一个命令,如下图。若神经网络被训练成预测用户输入命令的序列集合,则神经网络就构成用户的轮郭框架。当用这个神经网络预测不出某用户正确的后继命令,即在某种程度上表明了用户行为与其轮廓框架的偏离,这时表明有异常事件发生,以此就能作异常入侵检测。
上面式子用来分类识别,检测异常序列。实验结果表明这种方法检测迅速,而且误警率底。然而,此方法对于用户动态行为变化以及单独异常检测还有待改善。复杂的相似度量和先验知识加入到检测中可能会提高系统的准确性,但需要做进一步工作。
❷ 异常检测有哪些主要的分析方法
1. 概率统计方法
在基于异常检测技术的IDS中应用最早也是最多的一种方法。
首先要对系统或用户的行为按照一定的时间间隔进行采样,样本的内容包括每个会话的登录、退出情况,CPU和内存的占用情况,硬盘等存储介质的使用情况等。
将每次采集到的样本进行计算,得出一系列的参数变量对这些行为进行描述,从而产生行为轮廓,将每次采样后得到的行为轮廓与已有轮廓进行合并,最终得到系统和用户的正常行为轮廓。IDS通过将当前采集到的行为轮廓与正常行为轮廓相比较,来检测是否存在网络入侵行为。
2. 预测模式生成法
假设条件是事件序列不是随机的而是遵循可辨别的模式。这种检测方法的特点是考虑了事件的序列及其相互联系,利用时间规则识别用户行为正常模式的特征。通过归纳学习产生这些规则集,并能动态地修改系统中的这些规则,使之具有较高的预测性、准确性。如果规则在大部分时间是正确的,并能够成功地运用预测所观察到的数据,那么规则就具有高可信度。
3. 神经网络方法
基本思想是用一系列信息单元(命令)训练神经单元,这样在给定一组输入后、就可能预测出输出。与统计理论相比,神经网络更好地表达了变量间的非线性关系,并且能自动学习并更新。实验表明UNIX系统管理员的行为几乎全是可以预测的,对于一般用户,不可预测的行为也只占了很少的一部分。
❸ 数据挖掘 | 数据理解和预处理
数据挖掘 | 数据理解和预处理
小编遇到过很多人(咳咳,请不要对号入座),拿到数据后不管三七二十一,先丢到模型中去跑,管它具体什么样呢,反正“大数据”嘛,总能整出点东西来。
但就像上次说过的,“大数据”很有可能带来“大错误”!所以在数据挖掘工作开始前,认真的理解数据、检查数据,对数据进行预处理是至关重要的。
很多人说,数据准备工作真是个“体力活”,耗时耗力不说,还异常的枯燥无味。这点小编承认,建模之前的数据处理确实是平淡的,它往往不需要多高的智商,多牛的编程技巧,多么高大上的统计模型。
但是,它却能时时触发你的兴奋点,因为它需要足够的耐心和细心,稍不留神就前功尽弃。
在这次的内容里,小编首先会从“数据理解”、“变量类型”和“质量检查”三个方面进行阐述,然后会以一个自己做过的实际数据为例进行展示。
一、数据理解
拿到数据后要做的第一步就是理解数据。
什么是理解数据呢?不是简单看下有多少Excel表,有多少行,多少列,而是要结合自己的分析目标,带着具体的业务需求去看。
首先,我们需要明确数据记录的详细程度,比方说某个网站的访问量数据是以每小时为单位还是每天为单位;一份销售数据记录的是每家门店的销售额还是每个地区的总销售额。
其次,我们需要确定研究群体。研究群体的确定一定和业务目标是密切相关的。
比方说,如果我们想研究用户对产品的满意度与哪些因素有关,就应该把购买该产品的所有客户作为研究群体;如果我们想研究用户的购买行为受哪些因素影响,就应该同时考察购买人群和非购买人群,在两类人群的对比中寻找关键因素。
研究群体的确定有时也和数据的详细程度有关。
比如我们想研究“观众影评”对“电影票房”的影响,我们既可以把“每部电影”看成一个个体,研究“影评总数”对“电影总票房”的影响,也可以把“每部电影每天的票房”看成一个个体,研究“每天的影评数”对“每天的电影票房”的影响。
具体选择哪一种取决于我们手上有什么样的数据,如果只有总票房和总影评数的数据,那我们只能选择第一种;如果有更详细的数据,那就可以考虑第二种方案。
需要注意的是,这两种方案还会影响我们对于模型的选择。
例如,如果研究“每天的影评数”对“每天电影票房”的影响,那每部电影又被细分为很多天,同一部电影不同时间的票房会有较高的相似性,这就形成了一种层次结构,可以考虑使用层次模型(hierarchical model)进行分析。
最后,当我们确定了研究目标和研究群体后,我们需要逐一理解每个变量的含义。有些变量和业务目标明显无关,可以直接从研究中剔除。
有些变量虽然有意义,但是在全部样本上取值都一样,这样的变量就是冗余变量,也需要从研究中剔除。
还有一些变量具有重复的含义,如“省份名称”和“省份简称”,这时只需要保留一个就可以了。
二、变量类型
所有变量按其测量尺度可以分成两大类,一类是“分类变量”,一类是“数值变量”。不同类型的变量在处理方法和后期的模型选择上会有显着差别。
【分类变量】
分类变量又称属性变量或离散变量,它的取值往往用有限的几个类别名称就可以表示了,例如“性别”,“教育程度”,“收入水平”,“星期几”等。细分的话,分类变量又可分为两类,一类是“名义变量”,即各个类别间没有顺序和程度的差别,就像“手机系统”中ios和安卓并没有明显的好坏差别,“电影类型”中“动作片”和“科幻片”也都是一样的,说不上哪个更好或更差。
另外一类是定序变量,即不同类别之间存在有意义的排序,如“空气污染程度”可以用“差、良、优”来表示、“教育程度”可以用“小学、初中、高中、大学”来表示。
当研究的因变量是分类变量时,往往对应特定的分析方法,我们在后面的章节会陆续讲到,这里暂且不谈。
当研究中的自变量是分类变量时,也会限制模型选择的范围。有些数据挖掘模型可以直接处理分类自变量,如决策树模型;但很多数据挖掘模型不能直接处理分类自变量,如线性回归、神经网络等,因此需要将分类变量转换成数值变量。
对于定序自变量,最常用的转换方法就是按照类别程度将其直接转换成数值自变量,例如将空气污染程度 “差、良、优”转换为“1,2,3”。
对于名义自变量,最常用的转换方法就是构造0-1型哑变量。例如,对于“性别”,可以定义“1=男,0=女”。
当某个名义变量有K个类别取值时,则需要构造K-1个哑变量。例如教育程度“小学,初中,高中,大学及以上”,可以构造三个哑变量分别为:x1:1=小学,0=其它;x2:1=初中,0=其它;x3:1=高中,0=其它。当x1,x2,x3三个哑变量取值都为0时,则对应着“大学及以上”。
需要注意的是,有时候名义变量的取值太多,会生成太多的哑变量,这很容易造成模型的过度拟合。
这时可以考虑只把观测比较多的几个类别单独拿出来,而把剩下所有的类别都归为“其它”。
例如,中国一共包含56个民族,如果每个民族都生成一个哑变量就会有55个,这时我们可以只考虑设置“是否为汉族”这一个0-1哑变量。
【数值变量】
我们再来看看数值变量。数值变量就是用数值描述,并且可以直接进行代数运算的变量,如“销售收入”、“固定资本”、“评论总数”、“访问量”、“学生成绩”等等都是数值变量。
需要注意的是,用数值表示的变量不一定就是数值型变量,只有在代数运算下有意义的变量才是数值型变量。
例如财务报表的年份,上市时间等,虽然也是用数值表示的,但我们通常不将它们按照数值型变量来处理。
上面我们讲到,分类变量通常要转换成数值型变量,其实有些时候,数值型变量也需要转换成分类变量,这就用到了“数据分箱”的方法。
为什么要进行数据分箱呢?通常有以下几个原因:
1. 数据的测量可能存在一定误差,没有那么准确,因此按照取值范围转换成不同类别是一个有效的平滑方法;
2.有些算法,如决策树模型,虽然可以处理数值型变量,但是当该变量有大量不重复的取值时,使用大于、小于、等于这些运算符时会考虑很多的情况,因此效率会很低,数据分箱的方法能很好的提高算法效率;
3.有些模型算法只能处理分类型自变量(如关联规则),因此也需要将数值变量进行分箱处理。
数据分箱后,可以使用每个分箱内的均值、中位数、临界值等作为这个类别的代表值,也可以直接将不同取值范围定义成不同的类别,如:将污染程度划分后定义为“低、中、高”等。
那如何进行数据分箱呢?常用的数据分箱的方法有:等宽分箱(将变量的取值范围划分成等宽的几个区间)、等频分箱(按照变量取值的分位数进行划分)、基于k均值聚类的分箱(将所有数据进行k均值聚类,所得的不同类别即为不同的分箱),还有一些有监督分箱方法,如:使分箱后的结果达到最小熵或最小描述长度等。这里不详细介绍了,有兴趣的童鞋可以自行网络。
三、质量检查
对数据中的各个变量有了初步了解后,我们还需要对数据进行严格的质量检查,如果数据质量不过关,还需要进行数据的清洗或修补工作。
一般来说,质量检查包括检查每个变量的缺失程度以及取值范围的合理性。
【缺失检查】
原始数据中经常会存在各种各样的缺失现象。
有些指标的缺失是合理的,例如顾客只有使用过某个产品才能对这个产品的满意度进行评价,一笔贷款的抵押物中只有存在房地产,才会记录相应的房地产的价值情况等。
像这种允许缺失的变量是最难搞的,因为我们很难判断它的缺失是合理的,还是由于漏报造成的。
但无论哪种情况,如果变量的缺失率过高,都会影响数据的整体质量,因为数据所反映的信息实在太少,很难从中挖掘到有用的东西。
对于不允许缺失的变量来说,如果存在缺失情况,就必须进行相应的处理。如果一个变量的缺失程度非常大,比方说达到了70%,那就考虑直接踢掉吧,估计没救了。
如果缺失比例还可以接受的话,可以尝试用缺失值插补的方法进行补救。
插补的目的是使插补值能最大可能的接近其真实的取值,所以如果可以从其他途径得到变量的真实值,那一定优先选择这种方法。
比如某个公司的财务信息中缺失了“最终控制人类型”和“是否国家控股”这两个取值,这些可以通过网上的公开信息得到真实值;再比如缺失了“净利润率”这个指标的取值,但是却有“净利润”和“总收入”的取值,那就可以通过变量间的关系得到相应的缺失值,即净利润率=净利润/总收入。
当然,更多的时候,我们无法得到缺失值的真实信息,这时就只能借用已有的数据来进行插补了。
对数值变量来说,可以用已观测值的均值、中位数来插补缺失值;对分类型变量来说,可以用已观测数据中出现比例最高的类别取值来进行插补。
这些方法操作起来非常简单,但它们都是对所有缺失值赋予了相同的取值,所以当缺失比例较大时,可能会扭曲被插补变量与其余变量的关系。
更复杂一点的,我们可以选择模型插补方法,即针对被插补变量和其它自变量之间的关系建立统计模型(如回归、决策树等),将模型预测值作为插补值。
如何处理缺失值是一个很大的研究课题,我们这里只是介绍了最简单可行的方法,有兴趣的读者可以参阅Little和Rubin 2002年的专着“Statistical Analysis with Missing Data”。
【变量取值合理性检查】
除了缺失外,我们还要考察每个变量的取值合理性。每个变量都会有自己的取值范围,比如“用户访问量”、“下载次数”一定是非负的,“投资收益率”一定在0~1之间。通过判断变量的取值是否超出它应有的取值范围,可以简单的对异常值进行甄别。
除了根据变量的取值范围来检查变量质量外,还可以根据变量之间的相互关系进行判断。例如一家公司的“净利润率”不应该大于“总利润率”等。
只有通过了各个方面检测的数据才是一份高质量的数据,才有可能带来有价值的模型结果。
四、实例分析——电影票房分析
最后,我们给出一个实例分析。在这个例子中,我们的目标是研究电影哪些方面的特征对电影票房有影响。
我们有两方面的数据,一是描述电影特征的数据,二是描述电影票房的数据。
由于我们关注的是北美的票房市场,所以描述电影特征的数据可以从IMDB网站得到,它是一个关于演员、电影、电视节目、电视明星和电影制作的在线数据库,里面可以找到每部上映电影的众多信息;电影每天的票房数据可以从美国权威的票房网站Box Office Mojo得到,上面记录了每部电影上映期间内每天的票房数据。
我们将从IMDB得到的数据放到“movieinfor.csv”文件中,将从Box Office Mojo中得到的数据放到“boxoffice.csv”文件中。
这里,我们以2012年北美票房市场最高的前100部电影为例进行讲解。下表给出了这两个数据集中包含的所有变量以及相应的解释。
在这两个数据中,movieinfor.csv数据的记录是精确到每部电影的,而boxoffice.csv数据精确到了每部电影中每天的票房数据,是精确到天的。上表中给出的变量中,除了电影名称和ID外,“电影类型”“MPAA评级”(美国电影协会对电影的评级)和“星期几”是分类型变量;“放映时长”、“制作预算”、“电影每天的票房”和“每天放映的影院数”是数值型变量。两份数据都不存在缺失值。
我们首先对两个数据集分别进行变量预处理,然后再根据电影ID将两个数据整合到一起。下面给出了每个变量的处理方法:
【电影类型】
电影类型是一个分类变量。在这个变量中我们发现每部电影都不止一个类型,例如“The Dark Knight Rises”这部电影就有“Action”、“Crime”和“Thriller”三个类型,并且它们以“|”为分隔符写在了一起。
同时,不同电影之间可能有相同的类型,也可能有不同的类型,例如票房排名第二的电影“Skyfall”,它的类型是“Action |Adventure |Thriller”。
因此,我们首先需要做的是把每部电影所属的类型逐一取出来,然后将所有出现过的类型分别形成一个0-1哑变量,如果这部电影在某个类型上出现了,则相应变量的取值就是1,否则是0.
通过上面一步,我们知道这个数据集中出现过的所有电影类型一共有11个。
那是不是按照之前所讲的,应该把它转换为10个哑变量呢?这里需要注意的是,所有的电影类型之间并不是互斥的(即有了action,就不能有其他的类型),所以我们无需因为共线性的原因去掉其中一个。
也就是说,如果把每一个电影类型单独作为一个独立的变量,可以衍生出11个新的0-1变量,这完全没有问题。但11个变量未免有点过多,所以我们根据不同电影类型的频数分布情况,只把出现次数明显较多的类型单独拿出来,最终生成了6个0-1型变量,分别为Adventure,Fantasy,Comedy,Action,Animation,Others。
【MPAA评级】
对于这个分类型变量,我们首先可以看一下数据中它所包含的全部取值,发现一共有“PG”,“PG-13”和“R”三个。
和上面的电影类型(Genre)不同,对于一部电影而言,它只能有一个MPAA取值。因此,在MPAA变量中,我们需要选择一个作为基准,将另外两个构造成哑变量。
例如,我们以“PG”为基准,构造的两个哑变量分别为PG13和R,如果这两个哑变量的取值同时为0,那就相当于电影的MPAA评级是PG。
【放映当天是星期几】
这个变量同MPAA评级一样,每部电影只能有一个取值。
如果它在星期一到星期日上都有取值的话,我们可以衍生出6个0-1型哑变量。
因为这里我们更关注周末和非周末对电影票房的影响,而并不关注具体是哪一天,所以我们将其进一步概括成一个变量,即“是否是周末”。
【放映时长和制作预算】
放映时长和制作预算这两个变量都是取值大于0的数值型变量,我们可以分别检查它们的取值是否在合理的范围内,然后直接保留它们的数值信息。
同时,对“制作预算”而言,假设我们这里关心的不是制作预算的具体数值,而是“小成本电影”和“大成本电影”的票房差异,那我们就可以将这个数值型变量进行分箱处理,转换为一个0-1型的分类变量,即 “是否为小成本电影”。
在决定按照什么标准来划分是否为小成本电影时,我们根据之前文献里的研究结果,将制作预算在100 million以下的电影看成是小成本电影。
上述所有变量的处理过程都可以使用R中最基本的语句(table,rep,which等)完成,由于篇幅限制,小编这里就不列出详细的code了,大家感兴趣的话,可以阅读狗熊会的“R语千寻”系列(戳这里),相信会在R语言的学习上受到更多启发。
最后,我们将所有新生成的变量按照电影ID整合到一起,就大功告成啦。
五、总结
最后总结一下,小编在这次内容中向大家介绍了拿到数据后的数据理解和预处理工作,内容虽然不难,但同样需要我们认真对待。就好像生活一样,只有踏踏实实走好前面的路,才有可能迎接后面的高潮迭起!
❹ 学校科研立项,关于神经网络的计算机仿真模拟,诸位大侠有没有好一点的课题,不要太大,适合大二学生
神经网络,是个好东西,居然问到网络上来了,看来网络做的真成功,把各个领域的问题都吸引来了,哈哈。
神经网络的是模式识别的一种常用方法,它的数学本质是数据划分。从数学的层面看并不难,但对于大二的学生确实蛮有些挑战。
不知道你们的课题是侧重理论还是应用。如果侧重理论的话,就找一个简单一些的应用背景,然后在神经网络的结构上下功夫,从基本的BP网络到径向基神经网络在到其他的乱七八糟的网络,你可以根据应用背景适当搭配或变种。这种理论层面的东西其实很难,但由于国内有做假大空文章的传统,所以理论文章在国内反倒容易做了。如果你真要做点产品出来,我不建议做理论研究,那是真正的数学家的事情。作为大二的学生,你们立项大约更侧重实际应用,我推荐几个项目给你,这些项目不是我一拍脑袋想起来的,你看过以后就知道了。
1、定量预测化工产品。化工生产中一般是N种原料经过反应炉生产出M种产品。N种原料不同比重的配方生产出的产品种类和数量也各不相同,其生产过程为复杂函数映射,适合用神经网络识别,此项目的难点在于生产数据的搜集,你需要用大量不同配方的投入产出数据做训练。这个项目做好了,在化工行业有很强的实用价值。
2、电子中医产品。需要一个电子脉搏传感器(人民币约300-800元),依据脉搏数据特征诊断病情。该项目需要与中医合作,对不同病人进行脉搏信号采集,优势是实验成本很低,难点在于人体系统十分复杂,其数学映射的复杂程度远高于化工生产。
3、语音识别。用神经网络判别语音的语义。这个苹果、谷歌和微软很多年前就在做了,也有成熟产品,例如微软可以识别几十种人的声带发出的指令,例如开关机之类,但是做的还不够,最理想的产品是能正常听懂人类的日常用语。这个实验成本最低,但实验规模并不比电子中医小,你要做比脉诊更多得多的实验。
4、数据校正。根据相互关联的几组数据校正一组有嫌疑的数据,主要用在化工领域,比如生产线上某几个指标如液位A、流量B等等,相互都用复杂的函数关联,相互不独立。你可以通过常规生产数据用神经网络拟合出大致的映射,然后在某些生产数据出现异常的时候,用神经网络给出这个数据在该工况下的参考值,以辅助检修人员查看。
5、逻辑模拟。用神经网络模拟与非门组合逻辑的功能,机器人系统中大量用到,实验很简单。本项目的好处是不需要设计人员去苦心钻研逻辑系统的设计与搭建,只要建立恰当的神经网络,自动训练出逻辑即可。
6、函数曲线、曲面拟合。这是偏理论一些的项目,主要针对低维函数,这个不需要大量实验,比较简单些,适合对神经网络结构优化的理论研究。
神经网络算法是十分有技术前途的算法,祝你申请顺利!
❺ 如何进行神经网络控制系统的稳定性判别与分析
输入级每一个节点输入一个特征的值(或向量,向量时要复杂一点)。 输出级输出的是分类的结果,即属于哪一类。以二分类问题为例输出端只有一个节点输出0或1。 中间的结构在进行测试时不用关心。 不过这仅限于BP等比较简单的神经网络。
❻ 关于神经网络 需要学习python的哪些知识
最基础的部分的话需要:线性代数,机器学习,微积分,优化等等。
几乎所有操作都有矩阵运算,所以至少最基础的线性代数需要掌握
建议从单一的感知机Perceptron出发,继而认识到Decision Boundary(判别边界),以及最简单的一些“监督训练”的概念等,有机器学习的基础最好。就结果而言,诸如“过拟合”之类的概念,以及对应的解决方法比如L1 L2归一,学习率等也都可以从单个感知机的概念开始入门。
从单层感知器推广到普通的多层感知器MLP。然后推广到简单的神经网络(激活函数从阶跃“软化”为诸如tanh等类型的函数),然后引入特定类型的网络结构,比如最基本的全连接、前向传播等等概念。进而学习训练算法,比如反向传播,这需要微积分的知识(Chain rule),以及非线性优化的最基础部分,比如梯度下降法。
其次至少需要具备一些适用于研究的编程语言的技能,例如python,matlab,(C++也可行)等,哪怕不自己实现最简单的神经网络而是用API,也是需要一定计算机能力才能应用之。
❼ 神经网络ART1模型
一、ART1模型概述
自适应共振理论(Adaptive Resonance Theory)简称ART,是于1976年由美国Boston大学S.Grossberg提出来的。
这一理论的显着特点是,充分利用了生物神经细胞之间自兴奋与侧抑制的动力学原理,让输入模式通过网络双向连接权的识别与比较,最后达到共振来完成对自身的记忆,并以同样的方法实现网络的回想。当提供给网络回想的是一个网络中记忆的、或是与已记忆的模式十分相似的模式时,网络将会把这个模式回想出来,提出正确的分类。如果提供给网络回想的是一个网络中不存在的模式,则网络将在不影响已有记忆的前提下,将这一模式记忆下来,并将分配一个新的分类单元作为这一记忆模式的分类标志。
S.Grossberg和G.A.Carpenter经过多年研究和不断发展,至今已提出了ART1,ART2和ART3三种网络结构。
ART1网络处理双极型(或二进制)数据,即观察矢量的分量是二值的,它只取0或1。
二、ART1模型原理
ART1网络是两层结构,分输入层(比较层)和输出层(识别层)。从输入层到输出层由前馈连接权连接,从输出层到输入层由反馈连接权连接。
设网络输入层有N个神经元,网络输出层有M个神经元,二值输入模式和输出向量分别为:Xp=(
ART1网络的学习及工作过程,是通过反复地将输入学习模式由输入层向输出层自下而上的识别和由输出层向输入层自上而下的比较过程来实现的。当这种自下而上的识别和自上而下的比较达到共振,即输出向量可以正确反映输入学习模式的分类,且网络原有记忆没有受到不良影响时,网络对一个输入学习模式的记忆分类则告完成。
ART1网络的学习及工作过程,可以分为初始化阶段、识别阶段、比较阶段和探寻阶段。
1.初始化阶段
ART1网络需要初始化的参数主要有3个:
即W=(wnm)N×M,T=(tnm)N×M和ρ。
反馈连接权T=(tnm)N×M在网络的整个学习过程中取0或1二值形式。这一参数实际上反映了输入层和输出层之间反馈比较的范围或强度。由于网络在初始化前没有任何记忆,相当于一张白纸,即没有选择比较的余的。因此可将T的元素全部设置为1,即
tnm=1,n=1,2,…,N,m=1,2,…,M。(1)
这意味着网络在初始状态时,输入层和输出层之间将进行全范围比较,随着学习过程的深入,再按一定规则选择比较范围。
前馈连接权W=(wnm)N×M在网络学习结束后,承担着对学习模式的记忆任务。在对W初始化时,应该给所有学习模式提供一个平等竞争的机会,然后通过对输入模式的竞争,按一定规则调整W。W的初始值按下式设置:
中国矿产资源评价新技术与评价新模型
ρ称为网络的警戒参数,其取值范围为0<ρ≤1。
2.识别阶段
ART1网络的学习识别阶段发生在输入学习模式由输入层向输出层的传递过程中。在这一阶段,首先将一个输入学习模式Xp=(
中国矿产资源评价新技术与评价新模型
中国矿产资源评价新技术与评价新模型
中国矿产资源评价新技术与评价新模型
至此,网络的识别过程只是告一段落,并没有最后结束。此时,神经元m=g是否真正有资格代表对输入学习模式Xp的正确分类,还有待于下面的比较和寻找阶段来进一步确定。一般情况下需要对代表同一输入学习模式的分类结果的神经元进行反复识别。
3.比较阶段
ART1网络的比较阶段的主要职能是完成以下检查任务,每当给已学习结束的网络提供一个供识别的输入模式时,首先检查一下这个模式是否是已学习过的模式,如果是,则让网络回想出这个模式的分类结果;如果不是,则对这个模式加以记忆,并分配一个还没有利用过的输出层神经元来代表这个模式的分类结果。
具体过程如下:把由输出层每个神经元反馈到输入层的各个神经元的反馈连接权向量Tm=(t1m,t2m,…,tNm),m=1,2,…,M作为对已学习的输入模式的一条条记录,即让向量Tm=(t1m,t2m,…,tNm)与输出层第m个神经元所代表的某一学习输入模式Xp=(
当需要网络对某个输入模式进行回想时,这个输入模式经过识别阶段,竞争到神经元g作为自己的分类结果后,要检查神经元g反馈回来的向量Tg是否与输入模式相等。如果相等,则说明这是一个已记忆过的模式,神经元g代表了这个模式的分类结果,识别与比较产生了共振,网络不需要再经过寻找阶段,直接进入下一个输入模式的识别阶段;如果不相符,则放弃神经元g的分类结果,进入寻找阶段。
在比较阶段,当用向量Tg与输入模式XP进行比较时,允许二者之间有一定的差距,差距的大小由警戒参数ρ决定。
首先计算
中国矿产资源评价新技术与评价新模型
Cg表示向量Tg与输入模式XP的拟合度。
在式中,
当Tg=XP时,Cg=1。
当Cg≥ρ时,说明拟合度大于要求,没有超过警戒线。
以上两种情况均可以承认识别结果。
当Cg≠1且Cg>ρ时,按式(6)式(7)将前馈连接权Wg=(w1g,w2g,…,wNg)和反馈连接权Tg=(t1g,t2g,…,tNg)向着与XP更接近的方向调整。
中国矿产资源评价新技术与评价新模型
tng(t+1)=tng(t)*xn,n=1,2,…,N。(7)
当Cg<ρ时,说明拟合度小于要求,超过警戒线,则拒绝识别结果,将神经元g重新复位为0,并将这个神经元排除在下次识别范围之外,网络转入寻找阶段。
4.寻找阶段
寻找阶段是网络在比较阶段拒绝识别结果之后转入的一个反复探寻的阶段,在这一阶段中,网络将在余下的输出层神经元中搜索输入模式Xp的恰当分类。只要在输出向量Yp=(
三、总体算法
设网络输入层有N个神经元,网络输出层有M个神经元,二值输入模式和输出向量分别为:Xp=(
(1)网络初始化
tnm(0)=1,
中国矿产资源评价新技术与评价新模型
n=1,2,…,N,m=1,2,…,M。
0<ρ≤1。
(2)将输入模式Xp=(
(3)计算输出层各神经元输入加权和
中国矿产资源评价新技术与评价新模型
(4)选择XP的最佳分类结果
中国矿产资源评价新技术与评价新模型
令神经元g的输出为1。
(5)计算
中国矿产资源评价新技术与评价新模型
中国矿产资源评价新技术与评价新模型
判断
中国矿产资源评价新技术与评价新模型
当式(8)成立,转到(7),否则,转到(6)。
(6)取消识别结果,将输出层神经元g的输出值复位为0,并将这一神经元排除在下一次识别的范围之外,返回步骤(4)。当所有已利用过的神经元都无法满足式(8),则选择一个新的神经元作为分类结果,转到步骤(7)。
(7)承认识别结果,并按下式调整连接权
中国矿产资源评价新技术与评价新模型
tng(t+1)=tng(t)*xn,n=1,2,…,N。
(8)将步骤(6)复位的所有神经元重新加入识别范围之内,返回步骤(2)对下一模式进行识别。
(9)输出分类识别结果。
(10)结束。
四、实例
实例为ART1神经网络模型在柴北缘-东昆仑造山型金矿预测的应用。
1.建立综合预测模型
柴北缘—东昆仑地区位于青海省的西部,是中央造山带的西部成员——秦祁昆褶皱系的一部分,是典型的复合造山带(殷鸿福等,1998)。根据柴北缘—东昆仑地区地质概括以及造山型金矿成矿特点,选择与成矿相关密切的专题数据,建立柴北缘—东昆仑地区的综合信息找矿模型:
1)金矿重砂异常数据是金矿的重要找矿标志。
2)金矿水化异常数据是金矿的重要找矿标志。
3)金矿的化探异常数据控制金矿床的分布。
4)金矿的空间分布与通过该区的深大断裂有关。
5)研究区内断裂密集程度控制金矿的产出。
6)重力构造的存在与否是金矿存在的一个标志。
7)磁力构造线的存在也是金矿存在的一个重要标志。
8)研究区地质复杂程度也对金矿的产出具有重要的作用。
9)研究区存在的矿(化)点是一个重要的标志。
2.划分预测单元
预测工作是在单元上进行的,预测工作的结果是与单元有着较为直接的联系,在找矿模型指导下,以最大限度地反映成矿信息和预测单元面积最小为原则,通过对研究区内地质、地球物理、地球化学等的综合资料分析,对可能的成矿地段圈定了预测单元。采用网格化单元作为本次研究的预测单元,网格单元的大小是,40×40,将研究区划分成774个预测单元。
3.变量选择(表8-6)
4.ART1模型预测结果
ART1神经网络模型算法中,给定不同的阈值,将改变预测分类的结果。本次实验选取得阈值为ρ=0.41,系统根据此阈值进行计算获得计算结果,并通过将不同的分类结果赋予不同的颜色,最终获得ART模型预测单元的分类结果。分类的结果是形成29个类别。分类结果用不同的颜色表示,其具体结果地显示见图8-5。图形中颜色只代表类别号,不代表分类的好坏。将矿点专题图层叠加以后,可以看出,颜色为灰色的单元与矿的关系更为密切。
表8-6 预测变量标志的选择表
图8-5 东昆仑—柴北缘地区基于ARTL模型的金矿分类结果图
❽ 如何用人工神经网络进行判别分析
经过几十年的发展,神经网络理论在模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功。
将人工神经网络应用至实际问题时,需先分析问题有哪些参量,如何抽象建立模型,最后选择一种适当的神经网络模型,经过训练即可映射该问题。
人工神经网络由于其独特的模型结构和固有的非线性模拟能力,以及高度的自适应和容错特性等突出特征,在控制系统中获得了广泛的应用。其在各类控制器框架结构的基础上,加入了非线性自适应学习机制,从而使控制器具有更好的性能。基本的控制结构有监督控制、直接逆模控制、模型参考控制、内模控制、预测控制、最优决策控制等。
❾ 神经网络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 预测结果(部分)
续表
❿ 神经网络输出神经元个数如何确定
输出神经元个数是按你的需要确定的,比如你需要模拟函数y=1/x,那么你的输入向量就是x,输出就是y=1/x,也就是一个输出。再比如你需要模拟水体中的cod,bod参数值,那么你的输出就是两个。你的情况,比如说,你做符号识别的目的是将符号区分为正常符号和异常符号,那么你的输出就是2个,是由实际需要来的。