29、神经网络引导的程序合成与验证探索

神经网络引导的程序合成与验证探索

在程序合成与验证领域,神经网络引导的方法正逐渐展现出强大的潜力。本文将深入探讨基于神经网络的逻辑公式合成方法,包括不同类型逻辑公式的学习实验、非线性约束扩展以及从蕴含约束进行谓词合成及其在CHC求解中的应用。

实验设置

为了进行相关实验,开发了名为NeuGuS的工具,它基于ocaml-torch(OCaml接口的PyTorch库)实现。所有实验均在配备Intel(R) Core(TM) i7 - 8650U CPU(1.90 GHz)和16 GB内存的笔记本电脑上进行,训练神经网络时未使用GPU。该工具的源代码可在https://github.com/naokikob/neugus获取。

合取公式学习实验

首先进行了合取公式学习的热身实验。随机生成形如 $A \land B$ 的合取公式 $\phi(x, y)$,其中 $A$ 和 $B$ 是线性不等式 $ax + by + c > 0$,且 $-4 \leq a, b \leq 4$,$-9 \leq c \leq 9$,$ab \neq 0$。定义正例集 $P$ 和反例集 $N$ 分别为满足和不满足公式 $\phi(x, y)$ 的整数点集,且排除了 $A$ 或 $B$ 被另一个包含以及正例或反例集过小的情况。

对于每个生成的公式实例,运行工具三次,检查是否能找到限定符 $A$ 和 $B$。每次运行时,神经网络训练会重复进行,直到准确率达到100%且损失足够小(小于 $10^{-4}$),或者训练步数(前向和反向传播次数)达到30,000。若在30,000步内准确率未达到100%或损失未足够小,工具会最多重试三次。优化器使用Adam,默认设置为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值