[发明专利]一种基于HMM‑ACO的软件行为预测的方法在审
申请号: | 201610821508.7 | 申请日: | 2016-09-13 |
公开(公告)号: | CN106339322A | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 徐东;罗年垒;张子迎;孟宇龙;张朦朦;姬少培 | 申请(专利权)人: | 哈尔滨工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N7/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 150001 黑龙江省哈尔滨市南岗区*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及计算机软件技术领域,具体涉及一种基于HMM‑ACO的软件行为预测的方法。本发明包括(1)建立知识库;知识库包括模型参数集、可观测序列集对应的标准隐状态短序列集、判定待检测序列是否异常的阈值;(2)进行软件行为识别,得到软件运行过程中产生的待检测系统调用序列集;(3)进行软件行为预测。本发明通过研究HMM在软件行为预测方面存在应用上的缺陷,即HMM会因为参数B的问题而陷入局部最优,导致模型精度下降,建立了蚁群算法与HMM相结合的新模型HMM‑ACO,有效地提高了模型的精度,进而提高了软件行为预测的准确率。 | ||
搜索关键词: | 一种 基于 hmm aco 软件 行为 预测 方法 | ||
【主权项】:
一种基于HMM‑ACO的软件行为预测的方法,其特征在于,包括如下步骤:(1)建立知识库;知识库包括模型参数集、可观测序列集对应的标准隐状态短序列集Φ、判定待检测序列是否异常的阈值ψ;(1.1)获取模型λ的参数π、A、B;标准的HMM可用一个五元组来表示,即λ=(N,M,π,A,B),由于N、M对模型λ影响较小,因此通常将模型λ的状态数目N、观测序列的观测值数目M忽略,简写为λ=(π,A,B);训练数据采用软件运行过程中产生的正常系统调用短序列集作为正常系统调用的短序列集,将正常系统调用短序列集使用B‑W算法对模型λ进行训练,得到训练后的新模型λ=(π,A,B),将新模型中的参数π、A和B存入知识库中;(1.2)获取标准隐状态短序列集Φ;使用Viterbi算法计算得到软件运行过程中产生的正常系统调用短序列集最匹配的隐状态序列集,将得到的隐状态序列集进行去重,将去重后的隐状态短序列集作为标准隐状态短序列集Φ,并存入到新知识库中;对于待检测系统调用短序列对应的最佳隐状态短序列,如果某个最佳隐状态短序列被包含在Φ中,则当前待检测系统调用短序列不是异常,反之则是异常的;(1.3)判断待检测系统调用长序列是否异常的阈值ψ;阈值ψ为小于1的常数。假设标准隐状态短序列集Φ中隐状态短序列的个数为n',待检测系统调用长序列对应的最佳隐状态短序列集中有m个短序列被包含在Φ中,如果m/n'>ψ,那么判定该待检测系统调用长序列为正常,反之判定该待检测系统调用长序列为异常;(2)进行软件行为识别,得到软件运行过程中产生的待检测系统调用序列集,进一步,该过程包含以下步骤:(2.1)长序列切分;当有待检测系统调用长序列到来时,利用切分窗口对其进行切分,得到为一系列宽度均为K的待检测系统调用短序列,进而组合得到待检测系统调用短序列集;(2.2)对于步骤(2.1)中得到的每一个待检测系统调用短序列,均使用Viterbi算法计算得到与其对应的最佳的隐状态短序列,然后将得到的所有隐状态短序列作为一个集合;(2.3)判断步骤(2.2)中得到的每一个隐状态短序列是否在知识库中的标准隐状态短序列集Φ中,将不存在于标准隐状态序列集中的短序列个数记为p,获取判断待检测系统调用序列是否异常的阈值ψ,记标准隐状态短序列集中系统调用短序列的个数为n',如果p/n'<ψ,则说明该待检测系统调用长序列是正常的;否则说明是异常的,需进行异常处理;当待检测系统调用长序列进行新知识库中的阈值ψ检测正常,通过待检测序列进行软件行为预测,转入步骤(3),否则不能通过当前待检测序列进行软件行为预测;(3)进行软件行为预测:(3.1)优化HMM算法中的参数B形成模型HMM‑ACO;利用蚁群算法对HMM的参数B优化之后形成新的模型HMM‑ACO,其中,参数A、参数π、参数B的初始值均为任意赋值;使用蚁群算法优化HMM的参数B的具体流程如下:(3.1.1)建立连续的搜索空间Ω代表HMM中λ=(π,A,B),搜索空间的维数为参数A,B,π个数之和,根据隐马尔科夫模型中参数A,B,π的取值范围得到搜索空间Ω有N*M+N*N+N维,即x=(π1,...,πN,a11,...,aNN,b11,..,bNM)T,x也就是模型λ表示为x=(x1,x2,...,xn),0≤xi≤1,i=1,2,...,n,n=N*M+N*N+N,搜索空间Ω中的一个点对应代表参数A,B,π的连续空间一个解,如果x确定,则HMM的参数B也确定;确定x,定义度量函数其中Oi是HMM的观测序列,Oi∈{O1,O2,…,Oq,…,On},n是观测序列个数,P(Oi/x)由HMM的Forward算法得到;确定搜寻最优解x=(x1,x2,...,xn)步骤为:m只蚂蚁组成蚁群Q,m为正整数,m只蚂蚁在由参数A,B,π组成的搜索空间Ω中寻找最优点xbest,使得度量函数f(xbest)的值最大;将搜索空间Ω划分为R个区域,其中R为正整数;蚁群Q在最优解搜索的初始化阶段为搜索空间Ω中各个区域赋予相同的信息素含量τ0,τ0为正数;m只蚂蚁通过遍历R个区域来代替对搜索空间Ω的搜索,将区域的中心点位置记为x',使用各个区域中心代替各个区域,所有区域的中心点组成集合XR;(3.1.1.1)定义区域概率选择规则P(x′|Xf′)=τ(x′)vη(x′)wΣτ(x′)vη(x′)w,]]>其中,X'f为区域中心点x'所对应的度量函数值,τ(x')为区域中心点x'的信息素含量值,η(x')表示区域中心点x'的启发性信息,每个区域中心点x'的信息素含量值、启发性信息各不相同,v,w均为正值且为可变量,蚂蚁根据上述规则选择区域,每只蚂蚁均位于所选中区域的区域中心点上,将区域的中心点当作蚁穴,在各个区域选择若干点作为蚂蚁的狩猎点,其中,狩猎点满足隐马尔科夫模型的约束条件;(3.1.1.2)在搜索开始时,m只蚂蚁被随机分配到各个区域中;根据区域概率选择规则P(x'|X'f),蚂蚁进行区域选择;(3.1.1.3)定义可行解生成规则:将区域的区域中心点x'作为输入点,并将输入点记为x'=(x'1,x'2,...,x'n),x'i表示区域中心点x'在维数i处的向量,其中i∈[N×N+N+1,N×N+N+M×N],定义微调变量δ∈[0,r],其中r→0;在模型λ=(π,A,B)中,前两个参数π,A对应x'的前N+N×N位且参数π,A都已经赋定合适的初始值,参数B对应于x'后面的M×N位,在x'的所有向量中,前N×N+N个向量保持不变,即x'1,x'2,...,x'N×N+N不变,进而得到维数i仅对应于x'的后M×N位;对于所有的i∈[N×N+N+1,N×N+N+M×N]的x'i,从中选取(M×N)/2个可行点使得每个x'i←x'i+δ,再选取(M×N)/2个可行点使得每个x'i←x'i‑δ,然后判断新生成(M×N)个可行点x'i各向量值是否满足x'i‑ri≤x'i≤x'i+ri,r=(r1,r2,...,rM*N),如不满足就放弃该点;(3.1.1.4)m只蚂蚁从蚁穴出发,根据可行解生成规则生成由M×N个可行点组成的点集Θ,改变微调变量δ大小直至使得所有的可行点在整个区域内的分布均匀,在初始时,蚁群算法随机选择p个狩猎点,在此基础上开始搜寻,即随机选择一个狩猎点xs进行搜索,并设当前狩猎点的最优点为xb,初始时令xb=xs,在该狩猎点局部搜索最优点;(3.1.1.4.1)设定蚂蚁的搜索半径为δ',蚂蚁在搜索半径δ'构造的搜索区域内进行局部搜索;(3.1.1.4.2)以当前狩猎点作为输入点,由可行解生成规则在以半径δ'为输入半径生成候选搜索点集;(3.1.1.4.3)若在限定次数k内,使得f(x)>f(xb),则令xb←x;如果在限定次数k内不存在x使得f(x)>f(xb),则停止搜索,直接执行步骤(3.1.1.4.5);(3.1.1.4.4)将k值重置,转到步骤(3.1.1.4.3)执行,直至遍历候选点集,转到步骤(3.1.1.4.5);(3.1.1.4.5)若xs=xb,则增大搜索半径,转到步骤(3.1.1.4.2)继续搜索,否则令xs←xb,执行增加信息素的操作,转入步骤(3.1.1.4.1),若在规定的最大忍耐次数n内仍然没有找到比狩猎点xs更优的点,就重新选取狩猎点xs,继续执行搜索,直至找到所有狩猎点的局部最优点为xb;(3.1.1.5)求出所有狩猎点的最优点xb对应的f(x)值,进而得到f(x)的最大值,最大的f(x)对应的参数B最优;(3.2)求取待检测的系统调用长序列对应的隐状态序列,根据其最后一个隐状态预测下一步发展隐状态;(3.2.1)切分数据;根据待检测正常系统调用序列,利用切分窗口技术截取出宽度K的系统调用短序列O1O2O3......OK;(3.2.2)求出O1O2O3......OK对应的最佳隐状态序列;对于步骤(3.2.1)中截取出的系统调用短序列O1O2O3......OK,根据知识库中存储的优化模型HMM‑ACO以及Viterbi算法,求出O1O2O3......OK对应的最佳隐状态序列q1q2q3......qK;(3.2.3)根据(3.2.2)中得到的隐状态序列的最后一个状态的值qK以及模型HMM‑ACO的状态转移矩阵A求出qK的下一个可能性最大的隐状态;具体来说就是在隐状态转移概率矩阵A的第qK行中,寻找得到所有元素中数值最大元素所在的列号,该列号表示的状态即是预测的下一个可能性最大的隐状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610821508.7/,转载请声明来源钻瓜专利网。
- 上一篇:天然植物护发剂及其制备方法
- 下一篇:一种植物真姜(生姜蓉)防脱生发洗发露