CN105160249B - 一种基于改进的神经网络集成的病毒检测方法 - Google Patents
一种基于改进的神经网络集成的病毒检测方法 Download PDFInfo
- Publication number
- CN105160249B CN105160249B CN201510381992.1A CN201510381992A CN105160249B CN 105160249 B CN105160249 B CN 105160249B CN 201510381992 A CN201510381992 A CN 201510381992A CN 105160249 B CN105160249 B CN 105160249B
- Authority
- CN
- China
- Prior art keywords
- sample
- sub
- weights
- error
- learning rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明属于计算机病毒的检测领域,具体涉及一种改进神经网络集成,并根据改进的集成系统构造病毒监测模型的基于改进的神经网络集成的病毒检测方法。首先进行训练阶段的准备,获取训练用样本集;利用N‑gram和信息增益对样本集进行提取特征,得到特征集;以特征集作为训练集,在进行训练过程中,利用Bagging有放回的随机从原始训练样本中抽取子样本集,其中子样本集的大小与原始样本集大小相等,进行样本重复取样用以增大分类器之间的差异度。在实施过程中发现,本发明构造的基于改进的神经网络集成的病毒检测方法可以更高效的检测病毒。
Description
技术领域
本发明属于计算机病毒的检测领域,具体涉及一种改进神经网络集成,并根据改进的集成系统构造病毒监测模型的基于改进的神经网络集成的病毒检测方法。
技术背景
计算机作为一种机器设备,在金融、物流、通信、娱乐、科研、医疗等领域发挥着越来越重要的作用,它帮助我们完成复杂的工作,简化工作流程,改变了我们的生活方式。但是,计算机病毒的危害随之加剧。计算机病毒在本质上是具有自我复制功能的代码文件,它不但可以攻击和破坏本系统上安装的软件系统,还可以传染文件或者软件。1988年11月2日,一位名叫莫利斯的计算机硕士研究生在其母校就读时制造了一段蠕虫代码,并且传到了网络上,导致拥有数万台设备的网络被堵塞,使得该领域的各位专家学者开始对病毒技术进行研究分析。据报道,计算机病毒在我国出现的日期是1988年,出现的软件系统是统计局,当时造成极大损失和恐慌。当下,计算机病毒已经发展到数百亿种,并且仍在持续增加,已经严重影响到我们的日常生活和工作。
计算机病毒破坏系统数据区,包括各种文件,如文件目录、引导区等,破坏方式包括将磁盘进行格式化,将文件的分配表格或者目录分区进行修改,改写文件用垃圾数据填充有用的文件,更改COM5的设置等,危害性极大,往往很难恢复受损的文件,严重情况可以直接造成软件平台的崩溃。当前大量的垃圾邮件或者垃圾信息充斥着整个网络,严重堵塞网络,大量网民愤愤不已。当下,越来越多的消费者选择在网上付费购物,这使得病毒通过潜藏在计算机中窃取用户资料、网银账号、支付宝账号、网游账号等,给用户带来了极大的经济损失,同时也造成了一定的心理压力。
当今比较流行的基本方法主要包括特征码、行为检测、校验和,这三种技术的理论基础相异。其中,特征码技术在检测技术中是最频繁的。这种方法的技术原理是研究分析检测出的病毒,然后利用某种技术提出该病毒的特征序列,最后将提取出的特征序列放入已存在的数据库里面。校验和技术方法主要是比较待测数据的前后的校验和,如果两者不相同,则表示该数据可能感染病毒。行为检测法通过研究API调用序列,跟踪注册表数据和内存变量等,根据其发生变化与否作为病毒数据的判定依据。
为了能更好的检测病毒,提高检测方法对未知或者变型病毒的准确率,世界许多反病毒研究机构的各个专家都在积极努力的探索智能的病毒检测技术。其中,启发式智能代码分析技术、自身免疫技术和人工智能检测法都取得了一定的成效。
发明内容
本发明的目的在于提供一种基于改进的神经网络集成的病毒检测方法。
本发明的目的是这样实现的:
(1)首先进行训练阶段的准备,获取训练用样本集;
(2)利用N-gram和信息增益对样本集进行提取特征,得到特征集;
(3)以特征集作为训练集,在进行训练过程中,利用Bagging有放回的随机从原始训练样本中抽取子样本集,其中子样本集的大小与原始样本集大小相等,进行样本重复取样用以增大分类器之间的差异度;
(4)构造N个BP子分类器,分别使用动量因子的引入和改进的自适应学习速率构造BP子分类器;
(5)识别训练用样本集,并根据每个子分类器对正常样本和病毒样本的识别情况,依据D-S证据理论,分配可信度概率函数;
(6)对改进的方法进行检测,对待检测样本按照步骤(2)进行特征提取,之后分别交由步骤4中的两类BP子分类器进行识别,得出识别结果;将各个子分类器的检测结果进行归一化处理,通过Dempster合成规则得出最终基本概率,判断待测样本是否为病毒。
本发明的有益效果在于:
在实施过程中发现,本发明构造的基于改进的神经网络集成的病毒检测方法可以更高效的检测病毒。
附图说明
图1为基于神经网络集成的病毒检测模型的工作流程图;
图2为BP算法的工作流程图;
图3为BP算法的反向图;
图4为改进的神经网络集成使用的D-S集成技术图;
图5为改进BP算法的训练效果图;
图6为基于改进的神经网络集成的检测效果图。
图7为基于改进的神经网络和基于投票法的神网络检测结果。
具体实施方式
下面结合附图对本发明做进一步描述。
当前,科学技术的飞速发展,使得计算机在人类的生活和工作中扮演者重要角色,但是随之而来的计算机病毒给人类带来了巨大损失。因此,有效的检测识别计算机病毒迫在眉睫。BP神经网络是神经网络中最为经典的模型结构,在信息处理分析与模式识别中使用广泛。但是BP神经网络收敛速度慢,并且容易出现极小值问题。传统的子分类器集成一般采用简单投票法和贝叶斯投票法。简单投票法使用的前提条件是倘若各个子神经网络是相同的,就是说具有的效果是相同的,然而在实际操作中不存在这种情况。贝叶斯投票法是根据各个分类器在训练过程中的表现赋予不同的权值,计算依据是贝叶斯定理。但是该投票法能够发挥最优集成效果的前提是假设空间内的每个假设的先验概率是正确的,这在实际操作中很难实现。针对这种问题,本发明公开一种基于改进的神经网络集成的病毒检测方法。该技术方法通过改进BP子分类器和集成技术方法提升集成系统的泛化能力。BP子分类器从两方面进行改进,一种是引入动量因子,另外一种是在传统自适应学习速率的基础上进行改进。针对投票法的不公平性,本发明方法引入D-S证据理论作为集成技术,将各个子分类器的分类结果归一化处理后作为数据源进行融合。经过实验证明,通过改进BP子分类器和引入D-S证据理论的集成系统可以有效的提高病毒的检测准确率。该病毒检测方法可以划分为以下四个步骤:
步骤1:构建一种基于改进的神经网络集成技术的病毒检测模型。本发明在现有反病毒技术的基础上,研究实现神经网络集成的改进技术,并基于此种改进构建智能的病毒检测模型,实现提高病毒的检测准确率。
步骤2:构造若干改进的子分类器。神经网络集成是根据已验证的理论组合若干子分类器进而提高系统的识别性能。正确选择子神经网络是首先要解决的问题。通过引入动量因子和改进传统的自适应学习速率缓解BP神经网络收敛速度慢和局部极小值的问题。
步骤3:集成各个子分类器的结果。引入新的集成技术:D-S证据理论实现最终检测结果的生成。
步骤4:准确利用收集的病毒文件和正常文件提取病毒特征。确保提取冗余度低的病毒特征是检测模型有效性的重要前提。通过n-gram模型进行第一次筛选,利用信息增益进行第二次筛选。
一种基于改进的神经网络集成的病毒检测技术方法,该技术方案的实施主要包括以下内容:
改进神经网络集成技术,提高系统的泛化能力;
改进措施主要包括以下几个步骤:
步骤1:引入动量因子;
步骤2:改进传统的自适应学习速率;
步骤3:使用D-S证据理论作为集成技术;
步骤4:样本特征提取。
在BP神经网络中引入动量因子缓解BP神经网络收敛速度和局部极小值的问题。权值的改变与与学习速率有关。随着学习速率的增大而增大,但是过大的学习速率能够导致训练过程发生振荡现象。这种现象可以通过引入动量因子修改权值的调整公式加以回避。引入动量因子有两点好处,一避免振荡的发生,二提高收敛速度。在加进动量因子后,权值的权值的修改稳定的平均的向曲线底部调整。如果系统进入误差曲面的平坦区域,权值修改值特别小,学习过程趋于停滞状态时,由于动量项的引入,调节会慢慢脱离饱和区域。如果权值修改值和导数符号相同,表示沿着这个方向修改,误差会逐渐减少,此时可以加大修改值。如果权值修改值和导数符号相反,表示可能处于误差曲面的极小值附近,此时为了避免振荡的发生,应该放慢调整速度。学习速率可以影响权值的改变,进而影响BP神经网络的性能和训练时间。当学习速率设置很小时,导致权值改变值也会很小,那么系统收敛也会很缓慢,时间过长。当设置过大的学习速率时,将使得每次的权值改变会很大,从而引起振荡。针对不同神经元的参数最优值,神经元的权值设置不同的学习速率。这种改进可以根据不同神经元的权值差异度调整不同的学习速率,不但可以扩大传统学习速率中的自适应性,而且具有极强的灵活性尽最大程度满足权值的多变性要求。改进算法的核心内容是使用差异误差,动态调节权值参数,有效调节提高收敛速度。将来自不同的数据源进行集成得出最终检测结果。在解决实际情况时,训练样本的获取要求往往很难达到实际需要的标准。如果系统中信息容量太多,那么过少的样本数不能完成系统的充分训练。所以,在无法保证足够数量的训练样本数目,应该控制输入信息的维度,以便控制信息容量。本发明使用N-gram模型和信息增益筛选特征集。
在本发明中涉及神经网络集成,其主要原理是训练若干子神经网络然后把它们的输出结果按照一定的规则进行融合,从而明显提高整个集成系统的泛化能力。本发明使用的分类器是BP神经网络,集成技术是D-S证据理论。根据改进的神经网络集成构造病毒检测模型。
BP神经网络是神经网络众多结构中经典的模型结构,该系统主要功能包括非线性映射、容错能力和泛化能力。强大的非映射能力体现在只需要提供足够多的样本数据训练网络系统,不需要了解输入输出之间的映射关系,就可以做到从n维输入信息空间非线性映射到m维输出信息空间。泛化能力体现在在进行样本数据训练学习时,系统中的权值阀值存储的是样本间的非线性映射关系,在后期工作中,根据存储的权值可以有效识别非样本数据。容错能力体现在当输入错误样本时,不会造成系统的报错或者崩溃。
针对BP神经网络的收敛速度慢和局部极小值问题,本发明通过加入动量因子和改进的自适应学习速率进行解决。
D-S证据理论的基本思想是将若干未知的数据按照一定的规则融合一起,数据的增多将逐渐减少假设的范围,最终获得具有一定准确度的推导结果。该理论可以十分详细的描述不确定、不知道等概念词汇。而且使用便捷、灵活,推理机制简单,在人工智能、检测诊断等方面广泛应用,尤其在多数据源的融合,已成为一种十分重要的方法。病毒检测模型通过使用D-S证据理论集成各个子分类器结果提高模型检测性能。
本发明根据改进的神经网络集成构造病毒检测模型,该技术解决方案的工作可以主要划分为以下六个步骤:
步骤1:首先进行训练阶段的准备,获取训练用样本集。
步骤2:利用N-gram和信息增益对样本集进行提取特征。
步骤3:以上步中得到的特征集作为训练集,在进行训练过程中,利用Bagging有放回的随机从原始训练样本中抽取子样本集(通常情况下子样本集的大小与原始样本集大小相等),进行样本重复取样用以增大分类器之间的差异度。
步骤4:之后构造若干BP子分类器。分别使用动量因子的引入和改进传统的自适应学习速率,两种技术方法进行BP子分类器。通过两种改进方法既可以避免BP算法出现局部极小值和收敛过慢问题,又可以减少若干子分类器之间的相关程度。
步骤5:识别训练用样本集,并根据每个子分类器对正常样本和病毒样本的识别情况,依据D-S证据理论,分配不同的可信度概率函数。
步骤6:之后对改进的方法进行检测,对待检测样本按照步骤2进行特征提取,之后分别交由步骤4中构造的两类BP子分类器进行识别,得出识别结果。之后将各个子分类器的检测结果进行归一化处理,然后通过Dempster合成规则得出最终基本概率,判断待测样本是否为病毒。
所述步骤1,训练用样本集可采用从Windows系统中选取的正常样本集与从VXHeavens网站下载的病毒样本集组成。
如步骤2所述样本特征的提取采用N-gram模型和信息增益技术。
N-gram是基于马尔科夫假设的概率模型。马尔科夫假设是指一个序列的概率仅仅依赖于其前面的序列,除此之外与其他无关。Bigram别名是一阶马尔科夫模型。N-gram模型的主要思想是将数据或者文件按照一定规则转化为连续的字符或者序列,然后根据数值N的大小,获取若干长度为N的字符或者子序列。例如,段长为12的十六进制字节序列67DF77DB90AD,按照4-gram进行子序列划分,可以获得9个子特征,分别为67DF、7DF7、DF77、F77D、77DB、7DB9、DB90、B90A、90AD特征。
信息增益是目前机器学习领域中的重要技术方法,主要用于特征提取,属于信息论的概念范围。在对特征进行划分选择之前,可以利用信息论中的概念和方法对该特征所携带的信息进行量化。特征的量化使用的方法主要是计算特征所携带的分类信息,含有的信息大小与其重要性成正比。
在进行信息增益筛选特征之前,首先了介绍了解一个重要概念,信息熵。假设,有N消息,每个消息等概率,概率均为则消息携带的信息为:
假设,概率分布P=(p1,p2,…,pn),则P的熵为这个分布应该包含的信息数量,公式是:
信息增益(Information Gain,简称IG)是特征在字符存在与否的信息熵的差值。计算公式如下:
IG(T)=H(C)-H(C/T)
所述步骤3,使用Bagging算法重复取样。由于子分类器之间相关度越低集成系统的泛化能力越高。通过扰动训练样本,即利用不同的算法选取不同的样本子集,通过不同的样本子集训练各个分类器,从而获取差异度大的集成系统。扰动训练样本的方法包括以下两大方向:横向和纵向。横向技术的研究比较成熟,其中包括有Boosting和Bagging两大类。在训练过程中,使用Bagging算法可以有效的增大子神经网络之间的差异度。在Bagging算法中,各个子神经网络有放回的随机从原始训练样本中抽取子样本集,通常情况下子样本集的大小与原始样本集大小相等。因此,训练数据集合中的样本数据,可能出现,也有可能不出现,这种重复取样显著的降低子分类器之间的相关度。同时,该算法是一种有放回的均匀概率的取样技术,原理简单,操作简便,特别适合花费时间较长的学习算法比如说神经网络,能够有效减少所需训练时间。同时,Bagging算法具有一定的针对性,即只适用于不稳定的学习算法。所谓不稳定的学习方法简单的讲是,当训练样本出现细微的改变不会影响分类器的分类结果。对于不稳定方法,Bagging方法能够显著提高系统的泛化能力。对于稳定的方法,Bagging算法没有效果或者降低算法原来性能。本检测模型使用的神经网络集成就是一种不稳定的机器模型,因此利用Bagging算法取样。
所述步骤4,BP算法隐藏层的修改权值表达式为:
BP算法的输出层的权值调整表达式为:
其中,各个变量的含义如下:dk代表期望输出,ok代表输出层输出,f(x)代表神经元连续可导的转移函数,wjk代表隐藏和输出层某节点间的权值,yj代表隐藏输出,vij代表隐藏层和输入层某节点间的权值,xi代表输入信号。
根据推导出的权值调整公式,可以得出权值的调整由学习常数η、本层误差信号δ和本层输入信息共同决定。在上述推理中,所有隐藏层的误差值是由输出层的误差返传得到的,输出层的误差值η由最终结果和期望结果得到。BP算法调整流程为图2。
由上述权值推导公式能够得出,权值的改变与学习速率有关,权值的改变值随着学习速率的增大而增大,但是过大的学习速率能够导致训练过程发生振荡现象。这种现象可以通过引入动量因子修改权值的调整公式加以回避。引入动量因子有两点好处,一避免振荡的发生,二提高收敛速度。调整后的公式如下:
其中,α是动量参数,正常情况下设定值大约为0.9。
学习速率变为可调节值,在加进动量因子后,权值的权值的修改稳定的平均的向曲线底部调整。如果系统进入误差曲面的平坦区域,权值修改值特别小,学习过程趋于停滞状态时,由于动量项的引入,公式改变为:
显然,调节会慢慢脱离饱和区域。
权值误差导数表示权值调整方向。如果权值修改值和导数符号相同,表示沿着这个方向修改,误差会逐渐减少,此时可以加大修改值。如果权值修改值和导数符号相反,表示可能处于误差曲面的极小值附近,此时为了避免振荡的发生,应该放慢调整速度。由此可见,引入动量项可以减少收敛时间。
另一种改进方法中,自适应学习速率在传统上每层神经元的学习速率相同。速率与速度在学习过程中是密切相关的。当学习速率设置很小时,导致权值改变值也会很小,那么系统收敛也会很缓慢,时间过长。当设置过大的学习速率时,将使得每次的权值改变会很大,从而引起振荡。学习速率的自适应性应根据误差的改变方向来确定,即当误差以减小的趋势接近于目标值时,说明沿着误差曲线的方向是正确的收敛方向,此时应该加大学习速率;当误差增大时,说明权值调整方向不正确,此时应该撤回上一次的学习速率调整值,并减小学习速率。学习速率的调整公式如下:
其中,α是增加因子,β是减少因子。
这种自适应学习速率根据某次的迭代调整整层的速率,然后根据调整的学习速率调整神经元的参数值,但是这种设置很难满足不同参数值的最优设置,所以针对这种问题,可以对传统的自适应学习速率进一步的改进。在BP算法的误差反向传播过程中,不同的神经元的权值设置不同的学习速率。例如,位于隐藏层Y和输入层I的权值分别是:在误差反向调节过程中,设置的学习速率互相不同,即η1,η2,...,ηn。这种改进可以根据不同神经元的权值差异度调整不同的学习速率,不但可以扩大传统学习速率中的自适应性,而且具有极强的灵活性尽最大程度满足权值的多变性要求。改进算法的核心内容是使用差异误差,动态调节权值参数,有效调节提高收敛速度。改进的自适应学习速率的反向调节过程如图3所示。
步骤6与步骤6所述D-S证据理论作为集成技术获取最终检测结果。在理解D-S证据理论前首先要了解识别框架的主要思想是:现在出现一种情况,在该情况中有各种可能的结果,把所有可能的结果集合一起构成一个完备集,符号Θ代表,其中任意元素之间相互排斥,同时所寻找的答案都存在Θ中某一子集,则称此完备集Θ为识别框架,公式:
Θ={θ1,θ2,…,θi,…,θn}
其中,θi为识别框架Θ中某一元素。本文的检测样本数据共有两种:病毒文件和正常文件,因此根据D-S证据理论构造本文的识别框架Θ表达式是:
定义3.1设Θ为识别框架,函数m是集合2Θ到[0,1]之间的映射关系,即m:2Θ→[0,1],A识别框架Θ的一个子集,满足:
其中,m称为基本概率分配(Basic Probability Assignment,BPA),m(A)称为事件A的基本概率分配函数或者mass函数,函数m(A)反应对于事件A的信任,m(Φ)=0代表对空集不产生任何相信。
在识别框架Θ下,对于其一个子集A,若m(A)>0,则称子集A为焦元。
定义3.2设Θ为识别框架,存在从集合2Θ到[0,1]的映射关系,其中A是识别框架Θ的某一子集,满足:
则Bel(A)称为A的信任函数,代表对命题A的相信程度,信任的初始设置值是基本信任分配函数的前提,存在的命题的信任度之和由信任函数获取。
本实施所需要的软件仿真环境使用MATLAB,硬件环境是CPU为intel core i5-23202.53GHz,内存为4G,硬盘为500G。
实施时,BP算法的正向传播和反向传播过程如附图2。根据BP算法的收敛速度慢和局部极小值问题,改进自适应学习速率,具体过程如附图3。设置变量U与V分别代表不同层次之间的权值矩阵,即输入到隐藏,隐藏到输出。E(n)为BP神经网络的总误差函数。改进的自适应学习速率根据正向传播产生的误差进行反向传播调节各个权重参数,因此改进的算法只在BP算法的反向传播过程中发挥作用,不涉及正向传播。为了方便描述,假设hU,hV分别代表将矩阵U、V按行向量分别展,W代表BP算法正向传播时的所有权值参数W=[hU,hV,]因为只需要探讨反向传播,令代表反向传播时的逆向权值参数矩阵,wi代表权值矩阵中的某一个权值。在BP神经网络的学习过程中,W(n)代表第n次学习所获得的权值参数矩阵。
如果在训练过程中满足误差最大限度值,则停止BP神经网络学习过程可以投入使用。如果没有达到预先设置的要求,则要进行反向传播调整各个权值参数。此时改进的自适应学习速率调整过程以权值wi为代表。
如果wi的梯度值为0,就是说说明该权值没有梯度方向没有办法调节。根据传播顺序选择下一个待调整的权值系数wi+1,调节方法同权值wi。若果wi的梯度值非0,就是说则在这次训练过程中,需要调整权值系数,公式如下:
wi+1=wi(n)+Δwj(n)
按照调整的权值wi(n+1)进行BP算法正向传播,如果求得的误差值减小,则说明权值逐渐最优值,此时应该增大学习速率,调整公式为:
ηi(n)=αηi(n)
其中,α为调节率,一般取值为(1,2]。继续顺着梯度反方向,根据改进的自适应学习速率求解新的学习速率,再根据新求解的学习速率计算新的权值wi(n+2)。大致过程称为,根据学习速率求解一个新权值然后BP算法正向传播获取误差,如果误差继续减小,调大学习速率,反向调整权值获得新值,继续调大学习速率求解误差调整权值,直到第(m+1)次获取的误差增大,则权值和学习速率值回退,表达式如下:
此时,如果求得的wi(n+1)正向传播时,误差增大,则说明按照梯度反向调整是不正确的,此时减少学习速率,表达式如下:
ηi(n)=βηi(n)
其中,β为缩小调节系数。之后沿着梯度的反方向按照新的学习速率求解权值。假设在求解过程中,利用调整后的权值求得的误差还在增大,则利用公式继续减小学习速率,直到求解的误差值减小或者是误差的导数值为0停止调整。当BP神经网络的所有神经元之间的权值均调整并且误差值满足预先设定的临界值,则获取了优化的权值举证,完成一次学习过程,如果没有达到误差限度值,则按照上述要求继续调整学习速率和权值。
实施时,使用D-S证据理论的过程具体如附图4。在本发明的D-S病毒检测模型中,一共有两个子分类器:e1,e2,样本数据的分类结果共有识别为病毒文件和识别为正常文件,因此将类型定义为:k=i,i=1,2,为了明确定义拒绝识别的检测结果,将这种情况定义为第三种类型,即θ3。根据以上基本概率分配函数和信任函数的定义,可以推到出D-S模型中的基本概率分配函数,定义如下:
其中,m(Φ)=0。
根据基本概率分配函数,在任意一子分类器上测试检测任意待测样本数据x,则可能的检测结果如下:
其中,TP,FP,TN,FN分别代表真阳性、伪阳性、真阴性、伪阴性。
当进行信息融合时,不同数据来源具有不同的基本信任分配函数。此时,为了推理的准确性,需将不同的基本概率分配函数按照Dempster公式进行融合。这个公式使用的前提条件是各个证据间是不冲突的,合成后可以推到数据的不确定性。
假设,设Θ为识别框架,E1与E2是Θ中的数据,它们对应的基本信任分配函数是m1,m2,对应的焦元是Ai,Bj,合成规则公式如下:
其中,K为正则化因子,计算公式如下:
根据Dempster合成规则,将待测样本x所有的BPAs进行融合:
因此D-S模型对待测样本x最终检测结果为:
D-S(x)=θi
if,θi=maxi(bel(θi))
在利用D-S证据理论融合多子分类器的检测结果时,会遇到一些特殊的情况问题,针对可能出现的特殊情况,设定一下规则进行处理。规则如下:
(1)如果所有的子分类器均拒绝识别待测样本x,则集成系统也同样拒绝检测识别待测样本x;
(2)如果子分类器中主要部分拒绝检测识别待测样本x,则这些子分类器就自动退出Dempster合成规则,由剩下的子分类器集成识别;
(3)如果某一个子分类器的识别率为100%,则代表该子分类器具有极高的准确性,在检测中可以不需要考虑其他子分类器;
(4)如果某一个子分类器的错误率是100%,则代表该子分类器构造出现致命问题,在以后的检测工作中,可以忽略子分类器的检测结果。
本方案在实施过程表现出了较好优化效果,下面详细介绍本发明基于神经网络集成的病毒检测模型的检测效果:
本发明利用N-gram模型和信息增益提取病毒特征,之后进行归一化处理作为子分类器的输入信息。
本发明使用的BP网络中共含有输入层、隐藏层和输出层三个层次。输入层的神经元个数主要有输入信息的维度决定,在由N-gram模型和信息增益获取的特征序列中,选取前100作为分类特征。
隐藏层节点数目的确定很重要,过多或者过少都会对系统造成影响,降低泛化能力,因为隐藏层的神经元中的权值存储的是样本之间的潜在联系,十分重要。节点数量过少,会造成系统中没有存储足够的匹配信息,也会降低系统的泛化能力。根据以往经验,相关学者推导出了隐含层节点数的公式,公式如下:
上述公式中,m代表隐藏层神经元数量,n代表输入层神经元数量,l为输出层神经元数量,a是常数,区间是[0,10]。
本文构造的实验是检测文件是否为病毒,所以输出结果包括正常文件和病毒文件两种类型。其中,0表示正常文件,1代表病毒文件。输出层节点数为1。
输出层和隐含层的转移函数选择Sigmoid,其值域范围是(0,1)。
输出层的输出值范围在(0,0.5]表示0,代表病毒文件;输出范围在(0.5,1)表示1,代表正常文件。
BP网络的参数,即权值和阀值,是迭代更新,所以要设置初始值。根据经验公式,随机赋值范围为:(-2.4/f,2.4/f)。其中,f是权值输入接口处连接的神经元总数量。
(1)测试结果:
为了验证改进的自适应学习速率算法在收敛速度和最小值偏差是否改进,本发明设置异或问题实验,异或情况是典型的模式识别情况。设置输入信息在范围内(0,1),(0,0),(1,0),(1,1)对应的输出信息为1,0,1,0。根据Kolmogorov定理的内容隐藏层节点数是输入层节点数的2倍
加1,设置为2*2+1=5。改进的BP子分类的检测效果如附图5所示。
本发明基于改进神经网络集成的病毒检测模型的检测效果如附图6。
(2)结果分析:
图7表示基于改进的神经网络集成的病毒检测模型和基于投票法的神网络集成病毒检测模型检测结果。通过对比可以发现本发明的检测效果比较好。
Claims (1)
1.一种基于改进的神经网络集成的病毒检测方法,其特征在于:
(1)首先进行训练阶段的准备,获取训练用样本集;
(2)利用N-gram和信息增益对样本集进行提取特征,得到特征集;
(3)以特征集作为训练集,在进行训练过程中,利用Bagging有放回的随机从原始训练样本中抽取子样本集,其中子样本集的大小与原始样本集大小相等,进行样本重复取样用以增大分类器之间的差异度;
(4)构造N个BP子分类器,分别使用动量因子的引入和改进的自适应学习速率构造BP子分类器;
(5)识别训练用样本集,并根据每个子分类器对正常样本和病毒样本的识别情况,依据D-S证据理论,分配可信度概率函数;
(6)对改进的方法进行检测,对待检测样本按照步骤(2)进行特征提取,之后分别交由步骤4中的两类BP子分类器进行识别,得出识别结果;将各个子分类器的检测结果进行归一化处理,通过Dempster合成规则得出最终基本概率,判断待测样本是否为病毒;
所述步骤(1),训练用样本集采用从Windows系统中选取的正常样本集与从VX Heavens网站下载的病毒样本集组成;
所述步骤(3),使用Bagging算法重复取样;通过扰动训练样本,即利用不同的算法选取不同的样本子集,通过不同的样本子集训练各个分类器,从而获取差异度大的集成系统;扰动训练样本的方法包括以下两大方向:横向和纵向;横向技术包括有Boosting和Bagging两大类;在训练过程中,使用Bagging算法增大子神经网络之间的差异度;在Bagging算法中,各个子神经网络有放回的随机从原始训练样本中抽取子样本集,子样本集的大小与原始样本集大小相等;
所述步骤(4),BP算法隐藏层的修改权值表达式为:
BP算法的输出层的权值调整表达式为:
其中,各个变量的含义如下:dk代表期望输出,ok代表输出层输出,f(x)代表神经元连续可导的转移函数,wjk代表隐藏和输出层某节点间的权值,yj代表隐藏输出,vij代表隐藏层和输入层某节点间的权值,xi代表输入信号;
得出权值的调整由学习常数η、本层误差信号δ和本层输入信息共同决定;所有隐藏层的误差值是由输出层的误差返传得到的,输出层的误差值η由最终结果和期望结果得到;
调整后的公式如下:
其中,α是动量参数,正常情况下设定值为0.9;
由于动量项的引入,公式改变为:
显然,调节会慢慢脱离饱和区域;
学习速率的调整公式如下:
其中,α是增加因子,β是减少因子;
这种自适应学习速率根据某次的迭代调整整层的速率,然后根据调整的学习速率调整神经元的参数值,但是这种设置很难满足不同参数值的最优设置,位于隐藏层Y和输入层I的权值分别是:在误差反向调节过程中,设置的学习速率互相不同,即η1,η2,...,ηn;
把所有可能的结果集合一起构成一个完备集,符号Θ代表,其中任意元素之间相互排斥,同时所寻找的答案都存在Θ中某一子集,则称此完备集Θ为识别框架,公式:
Θ={θ1,θ2,...,θi,...,θn}
其中,θi为识别框架Θ中某一元素;检测样本数据共有两种:病毒文件和正常文件,因此根据D-S证据理论构造本文的识别框架Θ表达式是:
3.1设Θ为识别框架,函数m是集合2Θ到[0,1]之间的映射关系,即m:2Θ→[0,1],A是识别框架Θ的一个子集,满足:
其中,m称为基本概率分配,m(A)称为事件A的基本概率分配函数或者mass函数,函数m(A)反应对于事件A的信任,m(Φ)=0代表对空集不产生任何相信;
在识别框架Θ下,对于其一个子集A,若m(A)>0,则称子集A为焦元;
设Θ为识别框架,存在从集合2Θ到[0,1]的映射关系,其中A是识别框架Θ的某一子集,满足:
则Bel(A)称为A的信任函数,代表对命题A的相信程度,信任的初始设置值是基本信任分配函数的前提,存在的命题的信任度之和由信任函数获取;
设置变量U与V分别代表不同层次之间的权值矩阵,即输入到隐藏,隐藏到输出;E(n)为BP神经网络的总误差函数;改进的自适应学习速率根据正向传播产生的误差进行反向传播调节各个权重参数,因此改进的算法只在BP算法的反向传播过程中发挥作用,不涉及正向传播;设hU,hV分别代表将矩阵U、V按行向量分别展开,W代表BP算法正向传播时的所有权值参数W=[h U,h,V]令代表反向传播时的逆向权值参数矩阵,wi代表权值矩阵中的某一个权值;在BP神经网络的学习过程中,W(n)代表第n次学习所获得的权值参数矩阵;
此时改进的自适应学习速率调整过程以权值wi为代表;
如果wi的梯度值为0,说明该权值没有梯度方向没有办法调节;根据传播顺序选择下一个待调整的权值系数wi+1,调节方法同权值wi;若果wi的梯度值非0,则在这次训练过程中,调整权值系数,公式如下:
wi+1=wi(n)+Δwj(n)
按照调整的权值wi(n+1)进行BP算法正向传播,如果求得的误差值减小,则说明权值逐渐最优值,增大学习速率,调整公式为:
ηi(n)=αηi(n)
其中,α为调节率,一般取值为(1,2];继续顺着梯度反方向,再根据新求解的学习速率计算新的权值wi(n+2);大致过程称为,根据学习速率求解一个新权值然后BP算法正向传播获取误差,如果误差继续减小,调大学习速率,反向调整权值获得新值,继续调大学习速率求解误差调整权值,直到第(m+1)次获取的误差增大,则权值和学习速率值回退,表达式如下:
此时,如果求得的wi(n+1)正向传播时,误差增大,则说明按照梯度反向调整是不正确的,此时减少学习速率,表达式如下:
ηi(n)=βηi(n)
其中,β为缩小调节系数;之后沿着梯度的反方向按照新的学习速率求解权值;设在求解过程中,利用调整后的权值求得的误差还在增大,则利用公式继续减小学习速率,直到求解的误差值减小或者是误差的导数值为0停止调整;当BP神经网络的所有神经元之间的权值均调整并且误差值满足预先设定的临界值,则获取了优化的权值举证,完成一次学习过程,如果没有达到误差限度值,则继续调整学习速率和权值;
e1,e2,样本数据的分类结果共有识别为病毒文件和识别为正常文件,因此将类型定义为:k=i,i=1,2,这种情况定义为第三种类型,即θ3;根据以上基本概率分配函数和信任函数的定义,推导出D-S模型中的基本概率分配函数,定义如下:
其中,m(Φ)=0;
根据基本概率分配函数,在任意一子分类器上测试检测任意待测样本数据x,则可能的检测结果如下:
其中,TP,FP,TN,FN分别代表真阳性、伪阳性、真阴性、伪阴性;
当进行信息融合时,不同数据来源具有不同的基本信任分配函数;
设Θ为识别框架,E1与E2是Θ中的数据,对应的基本信任分配函数是m1,m2,对应的焦元是Ai,Bj,合成规则公式如下:
其中,K为正则化因子,计算公式如下:
根据Dempster合成规则,将待测样本x所有的BPAs进行融合:
因此D-S模型对待测样本x最终检测结果为:
D-S(x)=θi
if,θi=maxj(bel(θi))
在利用D-S证据理论融合多子分类器的检测结果时,会遇到一些特殊的情况问题,设定以下规则进行处理;规则如下:
1)如果所有的子分类器均拒绝识别待测样本x,则集成系统也同样拒绝检测识别待测样本x;
2)如果子分类器中主要部分拒绝检测识别待测样本x,则这些子分类器就自动退出Dempster合成规则,由剩下的子分类器集成识别;
3)如果某一个子分类器的识别率为100%,则代表该子分类器具有极高的准确性,在检测中不需要考虑其他子分类器;
4)如果某一个子分类器的错误率是100%,则代表该子分类器构造出现致命问题,在以后的检测工作中,忽略子分类器的检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510381992.1A CN105160249B (zh) | 2015-07-02 | 2015-07-02 | 一种基于改进的神经网络集成的病毒检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510381992.1A CN105160249B (zh) | 2015-07-02 | 2015-07-02 | 一种基于改进的神经网络集成的病毒检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105160249A CN105160249A (zh) | 2015-12-16 |
CN105160249B true CN105160249B (zh) | 2018-10-26 |
Family
ID=54801102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510381992.1A Active CN105160249B (zh) | 2015-07-02 | 2015-07-02 | 一种基于改进的神经网络集成的病毒检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105160249B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017117799A1 (zh) * | 2016-01-08 | 2017-07-13 | 富士通株式会社 | 分类结果的融合装置及方法 |
CN106943140A (zh) * | 2017-03-08 | 2017-07-14 | 重庆邮电大学 | 一种基于RandomSelect‑RCSP的运动想象脑电信号特征提取方法 |
CN107358611A (zh) * | 2017-06-28 | 2017-11-17 | 南京信息工程大学 | 一种全景扫描病理图像转移区域的自动分割方法 |
CN107886503A (zh) * | 2017-10-27 | 2018-04-06 | 重庆金山医疗器械有限公司 | 一种消化道解剖位置识别方法及装置 |
CN108200015A (zh) * | 2017-12-18 | 2018-06-22 | 北京天融信网络安全技术有限公司 | 一种检测异常流量的方法、分类模型的构建方法及设备 |
CN108537041B (zh) * | 2018-04-04 | 2021-07-13 | 贵州师范学院 | 一种Linux病毒检测方法 |
CN108563951B (zh) * | 2018-04-13 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 病毒检测方法及装置 |
KR20200004700A (ko) * | 2018-07-04 | 2020-01-14 | 삼성전자주식회사 | 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 |
CN109308413A (zh) * | 2018-11-28 | 2019-02-05 | 杭州复杂美科技有限公司 | 特征提取方法、模型生成方法及恶意代码检测方法 |
CN109858251B (zh) * | 2019-02-26 | 2023-02-10 | 哈尔滨工程大学 | 基于Bagging集成学习算法的恶意代码分类检测方法 |
CN111524520A (zh) * | 2020-04-22 | 2020-08-11 | 星际(重庆)智能装备技术研究院有限公司 | 一种基于误差逆向传播神经网络的声纹识别方法 |
CN111291902B (zh) * | 2020-04-24 | 2020-08-25 | 支付宝(杭州)信息技术有限公司 | 后门样本的检测方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346828A (zh) * | 2011-09-20 | 2012-02-08 | 海南意源高科技有限公司 | 一种基于云安全的恶意程序判断方法 |
CN104123501A (zh) * | 2014-08-06 | 2014-10-29 | 厦门大学 | 一种基于多鉴定器集合的病毒在线检测方法 |
-
2015
- 2015-07-02 CN CN201510381992.1A patent/CN105160249B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346828A (zh) * | 2011-09-20 | 2012-02-08 | 海南意源高科技有限公司 | 一种基于云安全的恶意程序判断方法 |
CN104123501A (zh) * | 2014-08-06 | 2014-10-29 | 厦门大学 | 一种基于多鉴定器集合的病毒在线检测方法 |
Non-Patent Citations (1)
Title |
---|
基于集成神经网络的计算机病毒检测方法;张波云等;《计算机工程与应用》;20070501;第43卷(第13期);第26-29页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105160249A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105160249B (zh) | 一种基于改进的神经网络集成的病毒检测方法 | |
Paul et al. | Genetic algorithm based fuzzy decision support system for the diagnosis of heart disease | |
Gallo | Artificial neural networks tutorial | |
CN109034194B (zh) | 基于特征分化的交易欺诈行为深度检测方法 | |
Lin et al. | Machine learning templates for QCD factorization in the search for physics beyond the standard model | |
CN105760649B (zh) | 一种面向大数据的可信度量方法 | |
CN111128380A (zh) | 模拟医生诊断和精准干预策略的慢性病健康管理模型的构建方法及系统 | |
Hsieh et al. | A PSO-based rule extractor for medical diagnosis | |
Özbakır et al. | Exploring comprehensible classification rules from trained neural networks integrated with a time-varying binary particle swarm optimizer | |
Kamruzzaman et al. | An algorithm to extract rules from artificial neural networks for medical diagnosis problems | |
Ahmad et al. | Intelligent breast cancer diagnosis using hybrid GA-ANN | |
KR20200126720A (ko) | 약물-표적 단백질의 상호작용을 예측하는 방법 및 그 방법을 수행하는 장치 | |
Özbakır et al. | A soft computing-based approach for integrated training and rule extraction from artificial neural networks: DIFACONN-miner | |
Fafalios et al. | Gradient boosting trees | |
Utkin et al. | A deep forest improvement by using weighted schemes | |
CN110177112B (zh) | 基于双重子空间采样和置信偏移的网络入侵检测方法 | |
Prasad et al. | Designing mamdani-type fuzzy reasoning for visualizing prediction problems based on collaborative fuzzy clustering | |
Fu et al. | Construction and reasoning approach of belief rule-base for classification base on decision tree | |
Czajkowski et al. | Steering the interpretability of decision trees using lasso regression-an evolutionary perspective | |
CN109409434B (zh) | 基于随机森林的肝脏疾病数据分类规则提取的方法 | |
CN110049034A (zh) | 一种基于深度学习的复杂网络实时Sybil攻击检测方法 | |
Lu et al. | Counting crowd by weighing counts: A sequential decision-making perspective | |
Sen et al. | On sampling strategies for small and continuous data with the modeling of genetic programming and adaptive neuro-fuzzy inference system | |
Yang | Machine learning methods on COVID-19 situation prediction | |
Zalasiński et al. | Intelligent approach to the prediction of changes in biometric attributes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |