一种基于项游走图神经网络的前提选择方法及系统与流程

文档序号:31851793发布日期:2022-10-19 01:22阅读:124来源:国知局
一种基于项游走图神经网络的前提选择方法及系统与流程

1.本发明涉及软件可信性自动验证技术领域,具体地说,是一种基于项游走图神经网络的前提选择方法及系统,用于帮助作为软件验证工具后台自动验证插件的atp有效地解决来实际工业场景下大规模的形式化问题。


背景技术:

2.大量科学上、工业上的问题均涉及扩及推理,但因其抽象性、复杂性、以及规模性,无法有效地利用人工进行逻辑推理。因此,需要借助人工智能的手段之一——自动推理。自动推理中应用最广泛的研究分支当属自动定理证明。即,将形式化后的问题作为计算机程序的输入,并试图利用程序自动地从问题的前提中推理出结论。这样的程序被称为自动定理证明器。
3.在软件验证领域中,广泛应用于软件开发过程的软件验证工具scade (safety critical application development environment)的后台使用了自动定理证明器插件作为其自动推理的工具。在工业领域中,ibm、因特尔(inter)等公司也利用自动定理证明器对硬件的可靠性问题进行验证,如飞行控制系统的芯片安全性验证、amd浮点数溢出验证等。
4.迄今为止,一大批优秀的自动定理证明器不断问世。虽然自动定理证明器的性能逐年提升,随着自动定理证明器的应用范围不断扩大,旨在推理小规模数学问题的自动定理证明器必须面对规模越来越大的实际问题。问题规模过大,会导致其形式化后的前提数量过多,从而导致自动定理证明器在推理过程中的搜索空间呈指数型增长。这将对自动定理证明器的性能产生致命性的打击。实验表明,在实际问题中,仅有极少的前提在问题结论的自动推理中发挥作用。
5.然而,当前的自动定理证明器缺乏对前提进行选择的能力,从而导致自动定理证明器在无法有效地推理大规模问题,甚至影响自动定理证明器在软件可信性自动验证领域的应用范围。基于此,本发明提出了一种基于项游走图神经网络的前提选择方法及系统,以实现自动定理证明器能够有效地推理大规模实际问题这一目的。


技术实现要素:

6.本发明的目的在于提供一种基于项游走图神经网络的前提选择方法及系统,实现自动定理证明器能够有效地推理大规模实际问题这一目的。
7.本发明通过下述技术方案实现:一种基于项游走图神经网络的前提选择方法,包括以下步骤:
8.步骤s1,基于mptp2078问题库建立用于训练、验证和测试模型的数据集;
9.步骤s2,根据数据集中逻辑公式的递归的特性,将字符型逻辑公式进行有向无环图dag表示;
10.步骤s3、将项游走模式从解析树拓展到有向无环图dag上;
11.步骤s4、设计项游走图神经网络,所述项游走图神经网络中的输入为逻辑公式对
应的有向无环图dag,输出为逻辑公式对应的图特征实值向量;
12.步骤s5、设计前提选择模型,所述前提选择模型的输入为步骤s4输出的图向量特征实值向量对,输出为二元分类器预测的前提公式对结论公式在atp 自动证明中的实值有用性得分;
13.步骤s6、基于步骤s5设计用于模型训练的损失函数;
14.步骤s7、判断当前迭代次数是否大于限定迭代次数:若是,则进入步骤s11;若否,则进入步骤s8;
15.步骤s8、利用步骤s1中的数据集对步骤s5中的前提选择模型进行训练,基于步骤s6计算真实值与步骤s5输出的误差,通过反向传播算法将误差传播回模型的所有神经元中,最后通过梯度下降算法修正和更新前提选择模型中的所有参数,最后对训练后的前提选择模型进行保存;
16.步骤s9、将步骤s8中训练后的模型在步骤s1中的数据集上进行验证;
17.步骤s10、当前迭代次数加1,并返回步骤s7;
18.步骤s11、在已保存的前提选择模型中选择在步骤s9中执行最小损失的模型作为最优模型,并在步骤s1中测试数据集上对其精度、召回率、准确度以及f1指标进行评估,最后结束。
19.本发明包括:数据集的建立;字符型逻辑公式表示为结构化的有向无环图;基于图的项游走模式的拓展;基于本发明提出的图项游走模式,设计项游走图神经网络,用于把逻辑公式图编码为对应的图特征实值向量;基于本发明提出的项游走图神经网络,设计前选择方法,输出为前提公式对结论公式在atp 自动证明中的实值有用性得分;在限定迭代次数下对本发明提出的端到端的基于项游走图神经网络的前提选择模型进行训练、验证和测试。本发明帮助作为软件验证工具后台自动验证插件的atp有效地解决来实际工业场景下大规模的形式化问题,且具有普遍性。
20.为了更好地实现本发明,进一步地,所述步骤s1中数据集的建立过程包括:
21.数据集中每一个例子是一个三元组,所述三元组包括结论、前提和标签;
22.前提是给定结论的候选前提;
23.标签是二元分类中的类别,所述类别为前提有用或无用;
24.标签为1的样本为正样本,标签为0的样本为负样本;
25.数据集中每一个结论对应的正样本中的前提来自参与其任一自动证明中的前提,对应的负样本中的前提是不参与其任意自动证明的前提且该前提在与结论的k近邻相似度排序中靠前;数据集中正样本和负样本的数量相同,且通过80%、10%、10%的划分将数据集随机地划分为训练集、验证集以及测试集。
26.为了更好地实现本发明,进一步地,所述步骤s2中将字符型逻辑公式进行有向无环图表示的过程包括:
27.在字符型逻辑公式的一阶逻辑中,给定变元符号集、函数符号集和谓词集;
28.一阶逻辑表达式为一阶逻辑项、一阶逻辑原子或一阶逻辑公式;
29.根据数据集中逻辑公式的递归的特性将一阶逻辑表达式递归定义表示为结构化的有向无环图dag。
30.为了更好地实现本发明,进一步地,所述步骤s3中将项游走模式从解析树拓展到
有向无环图上的过程包括:
31.将在解析树上被证实与逻辑公式合一性相关且可用于评估逻辑公式相似性的项游走模式拓展到了逻辑公式对应的有向无环图上。
32.为了更好地实现本发明,进一步地,所述步骤s4中项游走图神经网络的包括:
33.所述项游走图神经网络包括图节点向量初始化阶段、节点信息聚集阶段、节点信息传播阶段以及图聚合阶段。
34.为了更好地实现本发明,进一步地,所述步骤s5中二元分类器预测的前提公式对结论公式在atp自动证明中的实值有用性得分的过程包括:
35.二元分类器先通过分类函数f
class
对前提在结论证明中的有用性进行预测,再通过softmax进行归一化,获取前提公式对结论公式在atp自动证明中的实值有用和无用的概率;
36.所述分类函数f
class
被设计为多层感知机。
37.为了更好地实现本发明,进一步地,本发明还提供了一种基于项游走图神经网络的前提选择系统,包括数据集建立模块、逻辑公式图表示模块、项游走神经网络设计模块、二元分类器设计模块、迭代次数判断处理模块、和模型训练、验证以及测试模块,其中:
38.所述数据集建立模块,用于建立用于训练、验证和测试模型的数据集;
39.所述逻辑公式图表示模块,用于将字符型逻辑公式表示为结构化的有向无环图dag;
40.所述项游走神经网络设计模块,用于针对被拓展到逻辑公式图上的项游走模式将逻辑公式编码为对应的图特征实值向量;
41.所述二元分类器设计模块,用于输出前提对结论是否有用的概率,其中,二元分类器使用的分类函数f
class
同样被设计为多层感知机;
42.所述迭代次数判断处理模块,用于判断当前迭代次数是否大于限定迭代次数,在当前迭代次数大于限定迭代次数时,不再继续训练和验证模型;在当前迭代次数小于等于限定迭代次数时,继续训练和验证模型;
43.所述模型训练、验证以及测试模块,用于在adam优化器、 reducelronplateau策略和设置的参数下对模型进行训练,模型在每个训练迭代完成后均会在验证集上进行评估并保存,最大迭代次数后,若模型在验证集的评估没有进一步的提高,则在已保存的模型中选择在验证集上执行最小损失的模型作为最优模型,并在测试集上对其进行评估。
44.本发明与现有技术相比,具有以下优点及有益效果:
45.(1)本发明设计了一种字符型逻辑公式的有向无环图表示方法;
46.(2)本发明在逻辑公式对应的有向无环图上设计了能够捕获更多逻辑信息的项游走模式;
47.(3)本发明设计了一种以项游走模式聚合图神经网络中图节点信息的项游走图神经网络,该网络能对将逻辑公式对的dag编码为实值特征向量,且无需依赖于需要领域专家精心设计的手工特征,进而提升智能系统的智能化;
48.(4)本发明设计了端到端基于项游走神经网络的前提选择模型,模型能够高效地预测问题中的前提是否对参与结论在atp中的自动证明;
49.(5)本发明能够帮助作为软件验证工具后台自动验证插件的atp有效地解决来实
际工业场景下大规模的形式化问题。
附图说明
50.本发明结合下面附图和实施例做进一步说明,本发明所有构思创新应视为所公开内容和本发明保护范围。
51.图1为本发明提供的一种基于项游走图神经网络的前提选择方法的流程示意图。
52.图2为本发明提供的基于项游走图神经网络的前提选择模型的框架图。
53.图3为本发明提供的基于不同参数项游走图神经网络的前提选择模型的性能评估结果图。
54.图4为本发明提供的不同图神经网络模型的对比性能评估结果图。
具体实施方式
55.为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.实施例1:
57.本实施例的一种基于项游走图神经网络的前提选择方法,如图1所示,本发明包括以下步骤:s1、基于mptp2078问题库建立用于训练、验证和测试模型的数据集;
58.s2、根据数据集中逻辑公式的递归的特性,将字符型逻辑公式表示为结构化的有向无环图dag;
59.s3、为了捕获更多的逻辑信息,将在解析树上被证实与逻辑公式合一性相关且可用于评估逻辑公式相似性的项游走模式拓展到了逻辑公式对应的dag 上;
60.s4、基于步骤s3,设计项游走图神经网络:输入为逻辑公式对应的dag;输出为逻辑公式对应的图特征实值向量;
61.s5、基于步骤s4设计前提选择模型:输入为s4输出的表示结论公式和前提公式的图向量特征实值向量对;输出为模型中二元分类器预测的前提公式对结论公式在atp自动证明中的实值有用性得分;
62.s6、基于步骤s5设计用于模型训练的损失函数;
63.s7、判断当前迭代次数是否大于限定迭代次数:若是,则进入步骤s11;若否,则进入步骤s8;
64.s8、利用步骤s1中的训练数据集对s5中的模型进行训练:基于步骤s6 计算真实值与步骤s5输出的误差,通过反向传播算法将误差传播回模型的所有神经元中,最后通过梯度下降算法修正和更新模型中的所有参数,最后对训练后的模型进行保存
65.s9、步骤s8训练后的模型在步骤s1中验证数据集上进行验证;
66.s10、当前迭代次数加1,并返回步骤s7;
67.s11、在已保存的模型中选择在步骤s9中执行最佳(最小损失)的模型作为最优模型,并在步骤s1中测试数据集上对其精度、召回率、准确度以及f1 指标进行评估,最后结
束。
68.本发明通过数据集的建立;字符型逻辑公式表示为结构化的有向无环图;基于图的项游走模式的拓展;基于本发明提出的图项游走模式,设计项游走图神经网络,用于把逻辑公式图编码为对应的图特征实值向量;基于本发明提出的项游走图神经网络,设计前选择方法,输出为前提公式对结论公式在atp 自动证明中的实值有用性得分;在限定迭代次数下对本发明提出的端到端的基于项游走图神经网络的前提选择模型进行训练、验证和测试。
69.本发明帮助作为软件验证工具后台自动验证插件的atp有效地解决来实际工业场景下大规模的形式化问题,且具有普遍性。
70.实施例2:
71.本实施例在实施例1的基础上做进一步优化,数据集建立的具体过程为:
72.数据集中每一个例子是一个三元组(结论,前提,标签)。其中,前提是给定结论的候选前提,标签是二元分类中的类别(前提有用或无用)。标签为1 的样本为正样本(+)。标签为0的样本为负样本(-)。对于数据集中每一个结论:对应的正样本中的前提来自参与其任一自动证明中的前提;对应的负样本中的前提是不参与其任意自动证明的前提且该前提在与结论的k近邻相似度排序中靠前。数据集中正样本和负样本的数量相同,且通过80%、10%、10%的划分将数据集随机地划分为训练集、验证集以及测试集。
73.本实施例的其他部分与实施例1相同,故不再赘述。
74.实施例3:
75.本实施例在上述实施例1或2的基础上做进一步优化,对字符型逻辑公式进行图表示的具体过程为:
76.在一阶逻辑中,给定一个变元符号集一个函数符号集一个谓词集一阶逻辑项是一个变量项或者形如f(t1,t2,

,tn)的函数项,其中是n (n≥0)元函数符且t1,t2,
……
,tn是项。一阶逻辑原子形如p(t1,t2,

,tn),其 中是n(n≥1)元谓词符且t1,t2,
……
,tn是项。一阶逻辑公式是由一 阶逻辑联结词量词和原子联结而成。一阶逻辑表 达式s(项、原子或公式)可被正式地递归定义为有向无环图gs=(vs,es):
①ꢀ
如果s是一个变元项或常元项(零元函数项),则vs={s},

如果 s=f(s1,s2,

,sn),其中且s1,s2,
……
,sn为子表达式,在此情 况下,其中h(si)表示表达 式si的最外层符号,如果s中包含相同的子表达式,则在其对应的gs上合并相同 的子图;

如果其中且是包含变元x的子表达式,在此情况下,随后,在gs上合并所有由量 词φ约束的变元x。此外,为了保持公式在重命名操作下的不变性,图中所有的 变元节点的名称均被统一的符号*替换。
77.本实施例的其他部分与上述实施例1或2相同,故不再赘述。
78.实施例4:
79.本实施例在上述实施例1-3任一项的基础上做进一步优化,将将项游走模式从解
析树拓展到dag上的具体过程为:
80.给定一个公式有向图g=(v,e),任意节点v∈v可能会位于项游走三元组的上部、中部或下部。即,v可能出现在三元组(v,u,w)、(u,v,w)或(u,w,v)中。正式地,令包含g中节点 v位于上部的所有项游走三元组;的所有项游走三元组;包含g中节点v位于中部的所有项游走三元组;包含g中节点v位于下部的所有项游走三元组。
81.本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
82.实施例5:
83.本实施例在上述实施例1-4任一项基础上做进一步优化,如图2所示,设计的项游走图神经网络具体结构为:
84.完整的项游走图神经网络包含四个部分:图节点向量初始化、节点信息聚集、节点信息传播以及图聚合。
85.在节点向量初始化阶段,模型通过初始嵌入函数fv将任意初始节点v的初始特征向量xv映射为初始节点状态向量
[0086][0087]
其中,且是输出的状态向量的维度。
[0088]
在节点信息聚合阶段,分别设计不同的函数f
t
、fm以及fb,分别针对,分别针对以及对节点v进行信息聚集。模型不断地以项游走的模式聚集节点信息。项游走神经网络设计模块,用于针对被拓展到逻辑公式图上的项游走模式将逻辑公式编码为对应的实值特征向量,其中,每个图节点的初始向量是维度为dv的独热向量,fv被实现为嵌入网络,用于将dv维的初始独热向量嵌入为维的节点初始状态向量,f
t
、fm、fb以及fa分别被设计为由线性转化器和非线性激化函数拼接而成的多层感知机。
[0089]
在第k次迭代中,节点v来自的信息为:
[0090][0091]
其中,[;]表示向量间的拼接;表示中三元组的数量;是在第k次迭代中用于聚集来自中所有三元组信息的函数。
[0092]
节点v来自的信息为:
[0093]
[0094]
其中,表示中三元组的数量;是在第k次迭代中用于聚集来自中所有三元组信息的聚集函数。
[0095]
节点v来自的信息为:
[0096][0097]
其中,表示中三元组的数量;是在第k次迭代中用于聚集来自中所有三元组信息的聚集函数。
[0098]
在节点信息传播阶段,节点v来自包含其所有项游走三元组集在节点信息传播阶段,节点v来自包含其所有项游走三元组集的总信息可汇总为:
[0099][0100]
模型利用以上信息对节点的嵌入向量进行更新:
[0101][0102]
其中,是节点v在第k次迭代的状态向量;是用于更新节点状态向量的信息传播函数。
[0103]
经过k次迭代后,tw-gnn在图聚合阶段对图中所有节点的最终状态向量进行池化。最后的生成的公式图向量表示hg为:
[0104][0105]
其中,且avgpool表示对所有节点的最终状态向量进行平均池化。
[0106]
本实施例的其他部分与上述实施例1-4任一项相同,故不再赘述。
[0107]
实施例6:
[0108]
本实施例在上述实施例1-5任一项基础上做进一步优化,步骤s5设计二元分类器具体结构为:
[0109]
分类器通过分类函数f
class
对前提在结论证明中的有用性进行预测:
[0110]
z=f
class
([h
prem
;h
conj
])
[0111]
其中,h
prem
和h
conj
分别表示项游走图神经网络输出的图实值特征向量; z∈r2是候选前提对给定结论证明有用与否的对应得分。
[0112]
通过softmax进行归一化,前提在该结论中有用和无用的概率为:
[0113][0114]
其中,是的第i个元素;zi为z的第i个元素。
[0115]
本实施例的其他部分与上述实施例1-5任一项相同,故不再赘述。
[0116]
实施例7:
[0117]
本实施例在上述实施例1-6任一项基础上做进一步优化,本实施例提供了一种基于项游走图神经网络的前提选择洗头,包括数据集建立模块、逻辑公式图表示模块、项游走神经网络设计模块、二元分类器设计模块、迭代次数判断处理模块、以及模型训练、验证以及测试模块;
[0118]
数据集建立模块,用于建立用于训练、验证和测试模型的数据集;
[0119]
逻辑公式图表示模块,用于将字符型逻辑公式表示为结构化的有向无环图 dag;
[0120]
项游走神经网络设计模块,用于针对被拓展到逻辑公式图上的项游走模式将逻辑公式编码为对应的实值特征向量,其中,每个图节点的初始向量是维度为dv的独热向量,fv被实现为嵌入网络,用于将dv维的初始独热向量嵌入为维的节点初始状态向量,f
t
、fm、fb以及fa分别被设计为由线性转化器和非线性激化函数拼接而成的多层感知机;
[0121]
二元分类器设计模块,用于输出前提对结论是否有用的概率,其中,f
class
同样被设计为多层感知机;
[0122]
迭代次数判断处理模块,用于判断当前迭代次数是否大于限定迭代次数,在当前迭代次数大于限定迭代次数时,不再继续训练和验证模型;在当前迭代次数小于等于限定迭代次数时,继续训练和验证模型;
[0123]
模型训练、验证以及测试模块,用于在adam优化器、reducelronplateau 策略和设置的参数下对模型进行训练,模型在每个训练迭代完成后均会在验证集上进行评估并保存,最大迭代次数后,若模型在验证集的评估没有进一步的提高,则在已保存的模型中选择在验证集上执行最佳(最小损失)的模型作为最优模型,并在测试集上对其进行评估。
[0124]
本实施例的其他部分与上述实施例1-6任一项相同,故不再赘述。
[0125]
实施例8:
[0126]
本实施例在上述实施例1-7任一项基础上做进一步优化,本发明在 mptp2078问题库上进行了对比实验。实验所有设计的代码均使用python实现。在模型搭建过程中,实验使用pytorch库进行深度学习算法的实现,并使用pytorch_geometric库处理数据和实现实验中的对比图神经网络模型。实验使用默认设置的adam优化器对模型进行训练,并使用pytorch中的 reducelronplateau策略自动地调整学习率。
[0127]
如图3所示,本实施例设计了9种基础模型。当节点向量维度为512且项游走图神经网络的迭代次数为2时,模型的分类准确率最佳(0.8863)。增加节点的特征大小能够在一定程度上提高前提选择模型的分类性能。为了评估项游走神经网络在前提选择任务中的优越性,本发明将其与当前流行的图神经网络进行比较。为了保证对比结果的有效性,实验只改变前提选择模型中涉及图神经网络的部分,即只将项游走神经网络替换为其他图神经网络而不改变前提选择模型的其他部分。
[0128]
本实施例的其他部分与上述实施例1-7任一项相同,故不再赘述。
[0129]
实施例9:
[0130]
本实施例在上述实施例1-8任一项基础上做进一步优化,如图4所示,所提出的项游走图神经网络在前提选择任务中的分类准确率上明显优于目前其他流行的图神经网络模型。就准确率而言,项游走图神经网络(tw-gnn)在相同的测试集上比表现最优的graphsage至少提高了2%的分类准确率。这说明以项游走模式为基础的图神经网络模型具
有更强表征一阶逻辑公式的能力,且公式的逻辑属性对前提选择任务是至关重要的。除此之外,项游走图神经网络以三元组的形式对节点的状态向量进行更新。因此,在能够在每次迭代中保留更多的逻辑属性且捕获更广泛的结构信息,从而能够更快地捕获全局结构。
[0131]
端到端的基于项游走神经网络的前提选择模型,能够高效地预测问题中的前提是否对参与结论在atp中的自动证明,且能够帮助作为软件验证工具后台自动验证插件的atp有效地解决来实际工业场景下大规模的形式化问题。
[0132]
本实施例的其他部分与上述实施例1-8任一项相同,故不再赘述。
[0133]
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化,均落入本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1