基于二分类机器学习的时序逻辑近似模型检测方法及系统与流程

文档序号:15762084发布日期:2018-10-26 19:25阅读:293来源:国知局
基于二分类机器学习的时序逻辑近似模型检测方法及系统与流程

本发明属于人工智能与模型检测技术领域,特别涉及一种基于二分类机器学习的时序逻辑近似模型检测方法及系统,通过机器学习实现近似模型检测。



背景技术:

模型检测由图灵奖得主clarke教授等人提出,它是一种自动验证系统是否满足给定性质的共性技术。目前已被广泛应用于cpu设计、安全协议验证、恶意代码检测……等多个领域,开发出的产品已被intel、ibm等信息技术领军企业使用。模型检测的一般原理是:在模型检测系统中,有穷状态自动机(或者kripke结构)被用于为系统建立模型,时序逻辑公式则被用于描述系统需满足的性质(因此,模型检测也常被称之为时序逻辑模型检测)。若有穷状态机满足相应的逻辑公式,则其满足性质;否则,不满足。线性时序逻辑与计算树逻辑是目前在计算机工业界使用的两大主流时序逻辑,分别被用来描述系统的线性时序性质和分支时序性质。状态空间爆炸始终是模型检测的主要技术瓶颈之一。为了缓解此问题,多项优化技术被提出,包括:符号化、偏序、等价、组合、对称等。这些优化技术取得了一定的效果。在一个自动验证芯片电路性质的案例中,甚至有多达10120个状态可被符号化地模型检测。然而,上述优化技术并不寻求通过非遍历状态空间的方式求解问题,因而未能从根本上避免状态爆炸。



技术实现要素:

针对现有技术中的不足,本发明提供一种基于二分类机器学习的时序逻辑近似模型检测方法及系统,利用机器学习算法对模型检测结果进行预测,有效避免模型检测中的状态爆炸等情形。

按照本发明所提供的设计方案,一种基于二分类机器学习的时序逻辑近似模型检测方法,首先使用模型检测算法获取关于若干时序逻辑公式与系统模型的模型检测结果;然后对时序逻辑公式、系统模型、模型检测结果等数据实施二分类机器学习训练,获取机器学习模型;最后利用机器学习模型对等待模型检测的时序逻辑公式、系统模型实施模型检测结果预测,预测结果即为近似模型检测结果。

进一步,该基于二分类机器学习的时序逻辑近似模型检测方法,包括以下步骤:

步骤(1)获取n个系统模型及m个时序逻辑公式;

步骤(2)通过模型检测算法,分别对n个系统模型及m个时序逻辑公式进行模型检测,获取n*m条模型检测记录,其中,每条模型检测记录至少包含系统模型、逻辑公式及检测结果三个字段;

步骤(3)将n*m条模型检测记录划分为训练样本和测试样本,针对训练样本进行二分类机器学习训练,获取机器学习模型;通过机器学习模型对测试样本进行预测,获取每条模型检测结果的预测数据;

步骤(4)将每条预测数据与实际数据进行比对,若符合比对要求,则判定获取的机器学习模型为模型检测实施近似的机器学习模型,否则,调整机器学习模型参数,并重新对训练样本进行二分类机器学习训练步骤来获取新的机器学习模型,直至满足比对要求,结束。

上述的,系统模型为kripke结构,或为自动机,或为petri网模型,或为进程代数模型。

上述的,时序逻辑公式为线性时序逻辑公式,或为计算树(时序)逻辑公式。

上述的,模型检测算法用于自动检测判定给定的系统模型是否满足给定的时序逻辑公式。

上述的,通过数字型字符来构造系统模型,该数字型字符作为模型检测记录的第一个字段,表示时序逻辑公式的字符串作为模型检测记录的第二个字段,检测结果的真假字符作为模型检测记录的第三个字段。

上述的,二分类机器学习训练,通过利用决策树机器学习算法或随机森林机器学习算法或支持向量机机器学习算法或神经网络机器学习算法或贝叶斯分类机器学习算法或k近邻机器学习算法或k均值机器学习算法或逻辑回归机器学习算法进行学习训练。

上述的,将每条预测数据与实际数据进行比对,包含:根据预测数据获取测试样本的平均预测准确率与平均预测时间;若平均预测准确率高于设定阈值,且平均预测时间低于预设阈值,则即判定为符合比对要求。

一种基于二分类机器学习的时序逻辑近似模型检测系统,包含:采集模块、检测模块、训练模块、测试模块及输出模块,其中,

采集模块,用于获取n个系统模型及m个时序逻辑公式;

检测模块,用于通过模型检测算法,分别对n个系统模型及m个时序逻辑公式进行模型检测,获取n*m条模型检测记录,并将n*m条模型检测记录划分为训练样本和测试样本,其中,每条模型检测记录至少包含系统模型、逻辑公式及检测结果三个字段;

训练模块,用于针对训练样本进行二分类机器学习训练,获取机器学习模型;

测试模块,用于通过机器学习模型对测试样本进行预测,获取每条模型检测结果的预测数据;

输出模块,用于将每条预测数据与实际数据进行比对,若符合比对要求,则输出获取的机器学习模型,否则,重新对训练样本进行二分类机器学习训练步骤来获取新的机器学习模型,直至满足比对要求再进行输出。

上述的系统中,所述的输出模块包含比对数据获取单元、数据判定单元及输出单元;其中,

比对数据获取单元,用于根据预测数据获取测试样本的平均预测准确率与平均预测时间;

数据判定单元,用于根据平均预测准确率和平均预测时间与预先设定阈值进行比对,若平均预测准确率高于设定阈值,且平均预测时间低于预设阈值,则将训练模块获取的机器学习模型传输给输出单元进行输出,否则,触发训练模块进行二分类机器学习训练,重新获取机器学习模型进行测试。

本发明的有益效果:

本发明引入机器学习方法到模型检测技术领域,通过把模型检测问题规约为机器学习二分类问题,使用二分类机器学习算法预测模型检测结果,以实现利用机器学习对模型检测技术进行近似模拟的作用,由于模型检测是一个强可学习问题,因此本发明在维持检测准确与降低运行时间数量级这两点之间获得均衡;模型检测近似技术不通过搜索状态空间的方式实施,因而从根本原理上避免大状态空间上的组合状态爆炸,这就避免随着问题规模增加带来的状态空间的增大,因此,当问题规模较大时,本发明对运行效率的提升作用愈发显著;对模型检测进行近似模拟,在模型检测技术的各应用领域,诸如芯片设计、网络协议设计、安全协议设计、恶意程序检测等具有广阔应用前景。

附图说明:

图1为实施例中方法流程图;

图2为实施例中系统框图;

图3为实施例中输出模块框图;

图4为实施例中近似模型检测原理图;

图5为实施例中kripke结构图;

图6为实施例中kripke结构与ltl公式nusmv模型检测运行结果;

图7为实施例中kripke结构与另一个ltl公式nusmv模型检测运行结果;

图8为实施例中机器学习部分运行结果。

具体实施方式:

为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。

针对现有模型检测技术瓶颈状态空间爆炸等情形,为此,本发明实施例一,参见图1所示,提供一种基于二分类机器学习的时序逻辑近似模型检测方法,包含:

s01)获取n个系统模型及m个时序逻辑公式;

s02)通过模型检测算法,分别对n个系统模型及m个时序逻辑公式进行模型检测,获取n*m条模型检测记录,其中,每条模型检测记录至少包含系统模型、逻辑公式及检测结果三个字段;

s03)将n*m条模型检测记录划分为训练样本和测试样本,针对训练样本进行二分类机器学习训练,获取机器学习模型;通过机器学习模型对测试样本进行预测,获取每条模型检测结果的预测数据;

s04)将每条预测数据与实际数据进行比对,若符合比对要求,则判定获取的机器学习模型为模型检测实施近似的机器学习模型,否则,调整机器学习模型参数,重新对训练样本进行二分类机器学习训练步骤来获取新的机器学习模型,直至满足比对要求,结束。

通过引入机器学习方法到模型检测技术领域,通过把模型检测问题规约为机器学习二分类问题,使用二分类机器学习算法预测模型检测结果,以实现利用机器学习对模型检测技术进行近似模拟的作用,由于模型检测是一个强可学习问题,因此本发明在维持检测准确与降低运行时间数量级这两点之间获得均衡;模型检测近似技术不通过搜索状态空间的方式实施,因而从根本原理上避免大状态空间上的组合状态爆炸。模型检测算法通过自动机或kripke结构或者petri网或进程代数为系统建立模型,利用时序逻辑公式描述系统需要满足的性质,在自动机或kripke结构或者petri网或进程代数上判定是否满足性质。

系统模型可为kripke结构、自动机、petri网、进程代数或者其它可用于模型检测的各种形式化模型。kripke结构、自动机均为常用模型。时序逻辑可为线性时序逻辑、计算树(时序)逻辑或者其它可用于模型检测的各种时序逻辑,线性时序逻辑与计算树(时序)逻辑均为常见时序逻辑。模型检测算法是给定系统模型与时序逻辑公式的情况下,任意一种可对该系统模型与公式实施模型检测的算法。令给定的系统模型为k,给定的时序逻辑公式为f,则模型检测算法可自动地判定k是否满足f。二分类机器学习训练中,可通过决策树、随机森林、支持向量机、神经网络、贝叶斯分类或者其它任意一种可对数据集进行二分类的机器学习算法训练。上述的,通过数字型字符来构造系统系统模型,该数字型字符作为模型检测记录的第一个字段,表示时序逻辑公式的字符串作为模型检测记录的第二个字段,检测结果的真假字符作为模型检测记录的第三个字段。

将每条预测数据与实际数据进行比对,可通过如下内容:根据预测数据获取测试样本的平均预测准确率与平均预测时间;若平均预测准确率高于设定阈值,且平均预测时间低于预设阈值,则即判定为符合比对要求。

基于上述的近似模型检测方法,本发明实施例还提供一种基于二分类机器学习的时序逻辑近似模型检测系统,参见图2所示,包含:采集模块001、检测模块002、训练模块003、测试模块004及输出模块005,其中,

采集模块001,用于获取n个系统模型及m个时序逻辑公式;

检测模块002,用于通过模型检测算法,分别对n个系统模型及m个时序逻辑公式进行模型检测,获取n*m条模型检测记录,并将n*m条模型检测记录划分为训练样本和测试样本,其中,每条模型检测记录至少包含系统模型、逻辑公式及检测结果三个字段;

训练模块003,用于针对训练样本进行二分类机器学习训练,获取机器学习模型;

测试模块004,用于通过机器学习模型对测试样本进行预测,获取每条模型检测结果的预测数据;

输出模块005,用于将每条预测数据与实际数据进行比对,若符合比对要求,则输出获取的机器学习模型,否则,重新对训练样本进行二分类机器学习训练步骤来获取新的机器学习模型,直至满足比对要求再进行输出。

上述系统中,针对输出模块,参见图3所示,包含比对数据获取单元5001、数据判定单元5002及输出单元5003;其中,

比对数据获取单元5001,用于根据预测数据获取测试样本的平均预测准确率与平均预测时间;

数据判定单元5002,用于根据平均预测准确率和平均预测时间与预先设定阈值进行比对,若平均预测准确率高于设定阈值,且平均预测时间低于预设阈值,则将训练模块获取的机器学习模型传输给输出单元进行输出,否则,触发训练模块进行二分类机器学习训练,重新获取机器学习模型进行测试。

为验证本发明技术方案的有效性,下面通过对线性时序逻辑公式(ltl)实施模型检测,可判断一个kripke结构k是否满足一个ltl公式f,流程如图4上半部分所示。一种机器学习算法--提升树(bt)算法对ltl模型检测实施近似,流程如图4下半部分所示,使用bt算法预测ltl模型检测结果,其具体步骤如下:

步骤1.1随机生成20个kripke结构k与20个ltl公式f,组合获得400个二元组(k,f);

步骤1.2在模型检测工具nusmv上使用ltl模型检测算法对400个二元组(k,f)中的每一对k与f分别实施检测,并记录其模型检测结果r;

步骤1.3.1把k用数字型字符串表示,在k中每一个状态中,满足的原子命题由1表示,不满足的原子命题由0表示,k中每一个状态迁移由出发状态序号与结束状态序号唯一确定,如此构造出的字符串作为记录的第一个字段,用于表示k;

步骤1.3.2一个时序逻辑公式本身既是一个字符串,作为记录的第二个字段,用于表示f;

步骤1.3.3模型检测结果r有两种可能:“yes(true)”、“no(false)”,前者由1表示,后者由0表示,作为记录的第三个字段,用于表示r,本发明就是根据r的值对数据进行二分类。

图5给出了一个kripke结构k的例子,它有5个状态8个状态迁移,状态s0中所有三个原子命题p、q、r均不满足,状态s1中只有原子命题q满足……状态s0可迁移到状态s1,状态s1可迁移到状态s0或状态s2……这个k可由字符串0000100100101110110122124303243表示,其中,前15位描述5个状态下3个原子命题是否满足,后16位描述8个状态迁移的开始状态序号与结束状态序号;对于k=“0000100100101110110122124303243”,f=“!x((!f((!p&q|r)u(p|!q|r)))u(f(p&q&!r)))”,nusmv平台模型检测运行结果如图6所示,图中可见,模型检测结果是“true”,即k满足f,因此该记录对应的三个字段分别是“0000100100101110110122124303243”、“!x((!f((!p&q|r)u(p|!q|r)))u(f(p&q&!r)))”、“1”,此外,图中可见nusmv模型检测本次运行时间是0.018秒;对于k=“0000100100101110110122124303243”,f=“x!((f(g!(!p|!q&r)))u((p&q|r)u(!p|q&r)))”,nusmv平台模型检测运行结果如图7所示,图中可见,模型检测结果是“false”,即k不满足f,因此该记录对应的三个字段分别是“0000100100101110110122124303243”、“x!((f(g!(!p|!q&r)))u((p&q|r)u(!p|q&r)))”、“0”,此外,图中可见nusmv模型检测本次运行时间是0.017秒。

步骤1.3.4对400组k、f、r的每一组,重复执行步骤1.3.1、步骤1.3.2、步骤1.3.3,获得400条记录,作为后续步骤机器学习算法使用的数据集a,400组模型检测的nusmv平均运行时间是0.014秒。

步骤2.1在机器学习工具graphlab上使用bt算法对a进行调参训练,设置参数如表1所示,graphlab根据这些参数自动划分训练集与测试集,并运行获得机器学习模型m;

表1实施例中bt算法的参数

步骤2.2graphlab自动使用训练完毕的m对a中测试集进行测试,并计算出平均预测准确率与平均预测时间,结果如图8所示;

步骤2.3如图8所示,平均预测准确率超过95.5%,单条记录平均预测时间达0.00035秒,对比400组nusmv平均运行时间(0.014秒)可知,本发明在该实施例中的效率提升了0.014/0.00035=40倍;模型m即为找到的可对ltl模型检测结果实施预测的机器学习模型。

通过以上试验结果,可以验证本发明在有效近似模型检测的基础上,在基本保持预测准确性的前提下,成数量级地提升计算效率,避免了现有模型检测技术普遍存在的状态空间爆炸问题,在芯片设计、网络协议、安全协议、恶意程序检测等领域具有广阔应用前景。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的各实例的模块及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1