We present several new techniques for evolving code through sequences of mutations. Among these are (1) a method of local scoring assigning a score to each expression in a program, allowing us to more precisely identify buggy code, (2) suppose-expressions which act as an intermediate step to evolving if-conditionals, and (3) cyclic evolution in which we evolve programs through phases of expansion and reduction. To demonstrate their merits, we provide a basic proof-of-concept implementation which we show evolves correct code for several functions manipulating integers and lists, including some that are intractable by means of existing Genetic Programming techniques.
translated by 谷歌翻译
一般计划的合成已成为遗传编程(GP)和人工智能的重要应用领域。代码构建遗传编程(CBGP)是最近引入的一般程序合成的GP方法,它利用反射和一级规格支持可能使用任意数据类型,多态性和从现有代码库中汲取的功能的程序的演变。但是,尚未报告正式描述和CBGP的彻底基准测试。在这项工作中,我们使用类型理论的算法对CBGP的方法进行形式化。特别是,我们表明,功能性编程语言和Hindley-Milner类型系统可用于使用原始CBGP纸中抽象描述的过程来发展类型安全程序。此外,与其他当代GP程序合成方法相比,我们对CBGP的该功能变体的搜索性能进行了全面分析。
translated by 谷歌翻译
Alphazero,Leela Chess Zero和Stockfish Nnue革新了计算机国际象棋。本书对此类引擎的技术内部工作进行了完整的介绍。该书分为四个主要章节 - 不包括第1章(简介)和第6章(结论):第2章引入神经网络,涵盖了所有用于构建深层网络的基本构建块,例如Alphazero使用的网络。内容包括感知器,后传播和梯度下降,分类,回归,多层感知器,矢量化技术,卷积网络,挤压网络,挤压和激发网络,完全连接的网络,批处理归一化和横向归一化和跨性线性单位,残留层,剩余层,过度效果和底漆。第3章介绍了用于国际象棋发动机以及Alphazero使用的经典搜索技术。内容包括minimax,alpha-beta搜索和蒙特卡洛树搜索。第4章展示了现代国际象棋发动机的设计。除了开创性的Alphago,Alphago Zero和Alphazero我们涵盖Leela Chess Zero,Fat Fritz,Fat Fritz 2以及有效更新的神经网络(NNUE)以及MAIA。第5章是关于实施微型α。 Shexapawn是国际象棋的简约版本,被用作为此的示例。 Minimax搜索可以解决六ap峰,并产生了监督学习的培训位置。然后,作为比较,实施了类似Alphazero的训练回路,其中通过自我游戏进行训练与强化学习结合在一起。最后,比较了类似α的培训和监督培训。
translated by 谷歌翻译
归纳逻辑编程(ILP)是一种机器学习的形式。ILP的目标是诱导推广培训示例的假设(一组逻辑规则)。随着ILP转30,我们提供了对该领域的新介绍。我们介绍了必要的逻辑符号和主要学习环境;描述ILP系统的构建块;比较几个维度的几个系统;描述四个系统(Aleph,Tilde,Aspal和Metagol);突出关键应用领域;最后,总结了未来研究的当前限制和方向。
translated by 谷歌翻译
我们在HOL4互动定理证明书的顶部实施了自动战术证据Tacticeoe。Tactice从人类证据中学习,数学技术适用于每个证明情况。然后在蒙特卡罗树搜索算法中使用这种知识来探索有前途的策略级证明路径。在一个CPU上,时间限制为60秒,Tactictoe在Hol4的标准图书馆中证明了7164定理的66.4%,而自动调度的电子箴言解决了34.5%。通过结合Tactice和电子证明者的结果,成功率上升至69.0%。
translated by 谷歌翻译
In the past few years, neural architecture search (NAS) has become an increasingly important tool within the deep learning community. Despite the many recent successes of NAS, however, most existing approaches operate within highly structured design spaces, and hence explore only a small fraction of the full search space of neural architectures while also requiring significant manual effort from domain experts. In this work, we develop techniques that enable efficient NAS in a significantly larger design space. To accomplish this, we propose to perform NAS in an abstract search space of program properties. Our key insights are as follows: (1) the abstract search space is significantly smaller than the original search space, and (2) architectures with similar program properties also have similar performance; thus, we can search more efficiently in the abstract search space. To enable this approach, we also propose a novel efficient synthesis procedure, which accepts a set of promising program properties, and returns a satisfying neural architecture. We implement our approach, $\alpha$NAS, within an evolutionary framework, where the mutations are guided by the program properties. Starting with a ResNet-34 model, $\alpha$NAS produces a model with slightly improved accuracy on CIFAR-10 but 96% fewer parameters. On ImageNet, $\alpha$NAS is able to improve over Vision Transformer (30% fewer FLOPS and parameters), ResNet-50 (23% fewer FLOPS, 14% fewer parameters), and EfficientNet (7% fewer FLOPS and parameters) without any degradation in accuracy.
translated by 谷歌翻译
行为树(BT)是一种在自主代理中(例如机器人或计算机游戏中的虚拟实体)之间在不同任务之间进行切换的方法。 BT是创建模块化和反应性的复杂系统的一种非常有效的方法。这些属性在许多应用中至关重要,这导致BT从计算机游戏编程到AI和机器人技术的许多分支。在本书中,我们将首先对BTS进行介绍,然后我们描述BTS与早期切换结构的关系,并且在许多情况下如何概括。然后,这些想法被用作一套高效且易于使用的设计原理的基础。安全性,鲁棒性和效率等属性对于自主系统很重要,我们描述了一套使用BTS的状态空间描述正式分析这些系统的工具。借助新的分析工具,我们可以对BTS如何推广早期方法的形式形式化。我们还显示了BTS在自动化计划和机器学习中的使用。最后,我们描述了一组扩展的工具,以捕获随机BT的行为,其中动作的结果由概率描述。这些工具可以计算成功概率和完成时间。
translated by 谷歌翻译
This paper introduces corpus-guided top-down synthesis as a mechanism for synthesizing library functions that capture common functionality from a corpus of programs in a domain specific language (DSL). The algorithm builds abstractions directly from initial DSL primitives, using syntactic pattern matching of intermediate abstractions to intelligently prune the search space and guide the algorithm towards abstractions that maximally capture shared structures in the corpus. We present an implementation of the approach in a tool called Stitch and evaluate it against the state-of-the-art deductive library learning algorithm from DreamCoder. Our evaluation shows that Stitch is 3-4 orders of magnitude faster and uses 2 orders of magnitude less memory while maintaining comparable or better library quality (as measured by compressivity). We also demonstrate Stitch's scalability on corpora containing hundreds of complex programs that are intractable with prior deductive approaches and show empirically that it is robust to terminating the search procedure early -- further allowing it to scale to challenging datasets by means of early stopping.
translated by 谷歌翻译
大多数-AT是确定联合正常形式(CNF)中输入$ N $的最低价公式的问题至少为2 ^ {n-1} $令人满意的作业。在对概率规划和推论复杂性的各种AI社区中,广泛研究了多数饱和问题。虽然大多数饱满为期40多年来,但自然变体的复杂性保持开放:大多数 - $ k $ SAT,其中输入CNF公式仅限于最多$ k $的子句宽度。我们证明,每辆$ k $,大多数 - $ k $ sat是在p的。事实上,对于任何正整数$ k $和ratic $ \ rho \ in(0,1)$ in(0,1)$与有界分比者,我们给出了算法这可以确定给定的$ k $ -cnf是否至少有$ \ rho \ cdot 2 ^ n $令人满意的分配,在确定性线性时间(而先前的最着名的算法在指数时间中运行)。我们的算法对计算复杂性和推理的复杂性具有有趣的积极影响,显着降低了相关问题的已知复杂性,例如E-Maj-$ K $ Sat和Maj-Maj- $ K $ Sat。在我们的方法中,通过提取在$ k $ -cnf的相应设置系统中发现的向日葵,可以通过提取向日葵来解决阈值计数问题的有效方法。我们还表明,大多数 - $ k $ sat的易腐烂性有些脆弱。对于密切相关的gtmajority-sat问题(我们询问给定公式是否超过2 ^ {n-1} $满足分配),这已知是pp-cleanting的,我们表明gtmajority-$ k $ sat在p for $ k \ le 3 $,但为$ k \ geq 4 $完成np-cleante。这些结果是违反直觉的,因为这些问题的“自然”分类将是PP完整性,因为GTMAJority的复杂性存在显着差异 - $ k $ SAT和MOSTION- $ K $ SAT为所有$ k \ ge 4 $。
translated by 谷歌翻译
General mathematical reasoning is computationally undecidable, but humans routinely solve new problems. Moreover, discoveries developed over centuries are taught to subsequent generations quickly. What structure enables this, and how might that inform automated mathematical reasoning? We posit that central to both puzzles is the structure of procedural abstractions underlying mathematics. We explore this idea in a case study on 5 sections of beginning algebra on the Khan Academy platform. To define a computational foundation, we introduce Peano, a theorem-proving environment where the set of valid actions at any point is finite. We use Peano to formalize introductory algebra problems and axioms, obtaining well-defined search problems. We observe existing reinforcement learning methods for symbolic reasoning to be insufficient to solve harder problems. Adding the ability to induce reusable abstractions ("tactics") from its own solutions allows an agent to make steady progress, solving all problems. Furthermore, these abstractions induce an order to the problems, seen at random during training. The recovered order has significant agreement with the expert-designed Khan Academy curriculum, and second-generation agents trained on the recovered curriculum learn significantly faster. These results illustrate the synergistic role of abstractions and curricula in the cultural transmission of mathematics.
translated by 谷歌翻译
我们将减少创建AI的任务,以找到适当的语言来描述世界的任务。这不是编程语言,因为编程语言仅描述可计算的函数,而我们的语言将描述更广泛的函数类别。该语言的另一个特异性将是描述将包含单独的模块。这将使我们能够自动寻找世界的描述,以便我们在模块后发现它。我们创建这种新语言的方法将是从一个特定的世界开始,并写出特定世界的描述。关键是,可以描述这个特定世界的语言将适合描述任何世界。
translated by 谷歌翻译
回答集编程(ASP)已成为一种流行的和相当复杂的声明问题解决方法。这是由于其具有吸引力的地址解决方案的工作流程,这是可以轻松解决问题解决的方法,即使对于计算机科学外的守护者而言。与此不同,底层技术的高度复杂性使得ASP专家越来越难以将想法付诸实践。有关解决此问题,本教程旨在使用户能够构建自己的基于ASP的系统。更确切地说,我们展示了ASP系统Clingo如何用于扩展ASP和实现定制的专用系统。为此,我们提出了两个替代方案。我们从传统的AI技术开始,并展示元编程如何用于扩展ASP。这是一种相当轻的方法,依赖于Clingo的reation特征来使用ASP本身表达新功能。与此不同,本教程的主要部分使用传统的编程(在Python中)来通过其应用程序编程接口操纵Clingo。这种方法允许改变和控制ASP的整个模型 - 地面解决工作流程。 COMENT of Clingo的新应用程序课程使我们能够通过自定义类似于Clingo中的进程来绘制Clingo的基础架构。例如,我们可能会互动到程序的抽象语法树,控制各种形式的多射击求解,并为外国推论设置理论传播者。另一种横截面结构,跨越元以及应用程序编程是Clingo的中间格式,即指定底层接地器和求解器之间的界面。我们通过示例和几个非琐碎的案例研究说明了本教程的前述概念和技术。
translated by 谷歌翻译
形状约束语言(SHACL)是通过验证图表上的某些形状来验证RDF数据的最新W3C推荐语言。先前的工作主要集中在验证问题上,并且仅针对SHACL的简化版本研究了对设计和优化目的至关重要的可满足性和遏制的标准决策问题。此外,SHACL规范不能定义递归定义的约束的语义,这导致文献中提出了几种替代性递归语义。尚未研究这些不同语义与重要决策问题之间的相互作用。在本文中,我们通过向新的一阶语言(称为SCL)的翻译提供了对SHACL的不同特征的全面研究,该语言精确地捕获了SHACL的语义。我们还提出了MSCL,这是SCL的二阶扩展,它使我们能够在单个形式的逻辑框架中定义SHACL的主要递归语义。在这种语言中,我们还提供了对过滤器约束的有效处理,这些滤镜经常在相关文献中被忽略。使用此逻辑,我们为不同的SHACL片段的可满足性和遏制决策问题提供了(联合)可决定性和复杂性结果的详细图。值得注意的是,我们证明这两个问题对于完整的语言都是不可避免的,但是即使面对递归,我们也提供了有趣的功能的可决定性组合。
translated by 谷歌翻译
结构分解方法,例如普遍的高树木分解,已成功用于解决约束满意度问题(CSP)。由于可以重复使用分解以求解具有相同约束范围的CSP,因此即使计算本身很难,将资源投资于计算良好的分解是有益的。不幸的是,即使示波器仅略有变化,当前方法也需要计算全新的分解。在本文中,我们迈出了解决CSP $ P $分解的问题的第一步,以使其成为由$ P $修改产生的新CSP $ P'$的有效分解。即使从理论上讲问题很难,我们还是提出并实施了一个有效更新GHD的框架。我们算法的实验评估强烈提出了实际适用性。
translated by 谷歌翻译
深度学习方法的最新突破引发了人们对基于学习的错误探测器的兴趣。与传统的静态分析工具相比,这些错误检测器是直接从数据中学到的,因此更容易创建。另一方面,它们很难训练,需要大量数据,而这些数据不容易获得。在本文中,我们提出了一种称为Meta Bug检测的新方法,该方法比现有基于学习的错误探测器具有三个至关重要的优势:Bug-Type通用(即,能够捕获在培训期间完全没有观察到的错误类型),可以自我解释(即能够在没有任何外部可解释方法的情况下解释其自身的预测)和样本有效(即,比标准错误检测器所需的培训数据要少得多)。我们的广泛评估表明,我们的元错误检测器(MBD)有效地捕获了各种错误,包括NULL指针解除,阵列索引外部漏洞,文件句柄泄漏甚至是并发程序中的数据竞赛;在此过程中,MBD还大大优于几个值得注意的基线,包括Facebook推断,一种著名的静态分析工具和FICS,即最新的异常检测方法。
translated by 谷歌翻译
我们概述了在其知识表示和声明问题解决的应用中的视角下的时间逻辑编程。这些程序是将通常规则与时间模态运算符组合的结果,如线性时间时间逻辑(LTL)。我们专注于最近的非单调形式主义的结果​​称为时间平衡逻辑(电话),该逻辑(电话)为LTL的全语法定义,但是基于平衡逻辑执行模型选择标准,答案集编程的众所周知的逻辑表征(ASP )。我们获得了稳定模型语义的适当延伸,以进行任意时间公式的一般情况。我们记得电话和单调基础的基本定义,这里的时间逻辑 - 和那里(THT),并研究无限和有限迹线之间的差异。我们还提供其他有用的结果,例如将转换成其他形式主义,如量化的平衡逻辑或二阶LTL,以及用于基于自动机计算的时间稳定模型的一些技术。在第二部分中,我们专注于实际方面,定义称为较近ASP的时间逻辑程序的句法片段,并解释如何在求解器Telingo的构建中被利用。
translated by 谷歌翻译
我们提出了答案设置的程序,该程序指定和计算在分类模型上输入的实体的反事实干预。关于模型的结果,生成的反事实作为定义和计算分类所在实体的特征值的基于因果的解释分数的基础,即“责任分数”。方法和程序可以应用于黑盒式模型,也可以使用可以指定为逻辑程序的模型,例如基于规则的分类器。这项工作的主要重点是“最佳”反事实体的规范和计算,即导致最大责任分数的人。从它们中可以从原始实体中读取解释作为最大责任特征值。我们还扩展程序以引入图片语义或域知识。我们展示如何通过概率方法扩展方法,以及如何通过使用约束来修改潜在的概率分布。示出了在DLV ASP-Solver的语法中写入的若干程序,并与其运行。
translated by 谷歌翻译
Large language models have demonstrated outstanding performance on a wide range of tasks such as question answering and code generation. On a high level, given an input, a language model can be used to automatically complete the sequence in a statistically-likely way. Based on this, users prompt these models with language instructions or examples, to implement a variety of downstream tasks. Advanced prompting methods can even imply interaction between the language model, a user, and external tools such as calculators. However, to obtain state-of-the-art performance or adapt language models for specific tasks, complex task- and model-specific programs have to be implemented, which may still require ad-hoc interaction. Based on this, we present the novel idea of Language Model Programming (LMP). LMP generalizes language model prompting from pure text prompts to an intuitive combination of text prompting and scripting. Additionally, LMP allows constraints to be specified over the language model output. This enables easy adaption to many tasks, while abstracting language model internals and providing high-level semantics. To enable LMP, we implement LMQL (short for Language Model Query Language), which leverages the constraints and control flow from an LMP prompt to generate an efficient inference procedure that minimizes the number of expensive calls to the underlying language model. We show that LMQL can capture a wide range of state-of-the-art prompting methods in an intuitive way, especially facilitating interactive flows that are challenging to implement with existing high-level APIs. Our evaluation shows that we retain or increase the accuracy on several downstream tasks, while also significantly reducing the required amount of computation or cost in the case of pay-to-use APIs (13-85% cost savings).
translated by 谷歌翻译
这项正在进行的工作旨在为统计学习提供统一的介绍,从诸如GMM和HMM等经典模型到现代神经网络(如VAE和扩散模型)缓慢地构建。如今,有许多互联网资源可以孤立地解释这一点或新的机器学习算法,但是它们并没有(也不能在如此简短的空间中)将这些算法彼此连接起来,或者与统计模型的经典文献相连现代算法出现了。同样明显缺乏的是一个单一的符号系统,尽管对那些已经熟悉材料的人(如这些帖子的作者)不满意,但对新手的入境造成了重大障碍。同样,我的目的是将各种模型(尽可能)吸收到一个用于推理和学习的框架上,表明(以及为什么)如何以最小的变化将一个模型更改为另一个模型(其中一些是新颖的,另一些是文献中的)。某些背景当然是必要的。我以为读者熟悉基本的多变量计算,概率和统计以及线性代数。这本书的目标当然不是​​完整性,而是从基本知识到过去十年中极强大的新模型的直线路径或多或少。然后,目标是补充而不是替换,诸如Bishop的\ emph {模式识别和机器学习}之类的综合文本,该文本现在已经15岁了。
translated by 谷歌翻译
大多数低编码平台的用户,例如Excel和PowerApps,都以特定于域的公式语言编写程序来执行非平凡的任务。用户通常可以编写他们想要的大部分程序,但是引入了一些小错误,这些错误会产生破损的公式。这些错误既可以是句法和语义,也很难让低代码用户识别和修复,即使只能通过一些编辑解决。我们正式化了产生最后一英里维修问题等编辑的问题。为了解决这个问题,我们开发了Lamirage,这是一种最后一英里的维修发动机发电机,结合了符号和神经技术,以低代码公式语言进行最后一英里维修。 Lamirage采用语法和一组特定领域的约束/规则,它们共同近似目标语言,并使用它们来生成可以用该语言修复公式的维修引擎。为了应对本地化错误和对候选维修进行排名的挑战,Lamirage利用神经技术,而它依赖于符号方法来生成候选维修。这种组合使Lamirage可以找到满足提供的语法和约束的维修,然后选择最自然的修复。我们将Lamirage与400个Real Excel和PowerFX公式的最新神经和符号方法进行了比较,其中Lamirage的表现优于所有基线。我们释放这些基准,以鼓励在低代码域中进行后续工作。
translated by 谷歌翻译