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 谷歌翻译
\ textit {约束路径发现}的经典问题是一个经过充分研究但充满挑战的主题,在各个领域,例如沟通和运输等各个领域的应用。权重限制了最短路径问题(WCSPP),作为仅具有一个侧面约束的约束路径查找的基本形式,旨在计划成本最佳路径,其权重/资源使用受到限制。鉴于问题的双标准性质(即处理路径的成本和权重),解决WCSPP的方法具有一些带有双目标搜索的共同属性。本文在约束路径查找和双目标搜索中利用了最新的基于A*的最新技术,并为WCSPP提供了两种精确的解决方案方法,两者都可以在非常大的图表上解决硬性问题实例。我们从经验上评估了算法在新的大型和现实的问题实例上的性能,并在时空指标中显示出它们比最新算法的优势。本文还调查了优先级队列在被a*的约束搜索中的重要性。我们通过对逼真的和随机图进行了广泛的实验来展示,基于桶的队列没有打破打盘的方式可以有效地改善详尽的双标准搜索的算法性能。
translated by 谷歌翻译
大多数低编码平台的用户,例如Excel和PowerApps,都以特定于域的公式语言编写程序来执行非平凡的任务。用户通常可以编写他们想要的大部分程序,但是引入了一些小错误,这些错误会产生破损的公式。这些错误既可以是句法和语义,也很难让低代码用户识别和修复,即使只能通过一些编辑解决。我们正式化了产生最后一英里维修问题等编辑的问题。为了解决这个问题,我们开发了Lamirage,这是一种最后一英里的维修发动机发电机,结合了符号和神经技术,以低代码公式语言进行最后一英里维修。 Lamirage采用语法和一组特定领域的约束/规则,它们共同近似目标语言,并使用它们来生成可以用该语言修复公式的维修引擎。为了应对本地化错误和对候选维修进行排名的挑战,Lamirage利用神经技术,而它依赖于符号方法来生成候选维修。这种组合使Lamirage可以找到满足提供的语法和约束的维修,然后选择最自然的修复。我们将Lamirage与400个Real Excel和PowerFX公式的最新神经和符号方法进行了比较,其中Lamirage的表现优于所有基线。我们释放这些基准,以鼓励在低代码域中进行后续工作。
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 谷歌翻译
归纳逻辑编程(ILP)是一种机器学习的形式。ILP的目标是诱导推广培训示例的假设(一组逻辑规则)。随着ILP转30,我们提供了对该领域的新介绍。我们介绍了必要的逻辑符号和主要学习环境;描述ILP系统的构建块;比较几个维度的几个系统;描述四个系统(Aleph,Tilde,Aspal和Metagol);突出关键应用领域;最后,总结了未来研究的当前限制和方向。
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 谷歌翻译
Monte Carlo Tree Search (MCTS) is a recently proposed search method that combines the precision of tree search with the generality of random sampling. It has received considerable interest due to its spectacular success in the difficult problem of computer Go, but has also proved beneficial in a range of other domains. This paper is a survey of the literature to date, intended to provide a snapshot of the state of the art after the first five years of MCTS research. We outline the core algorithm's derivation, impart some structure on the many variations and enhancements that have been proposed, and summarise the results from the key game and non-game domains to which MCTS methods have been applied. A number of open research questions indicate that the field is ripe for future work.
translated by 谷歌翻译
组合优化是运营研究和计算机科学领域的一个公认领域。直到最近,它的方法一直集中在孤立地解决问题实例,而忽略了它们通常源于实践中的相关数据分布。但是,近年来,人们对使用机器学习,尤其是图形神经网络(GNN)的兴趣激增,作为组合任务的关键构件,直接作为求解器或通过增强确切的求解器。GNN的电感偏差有效地编码了组合和关系输入,因为它们对排列和对输入稀疏性的意识的不变性。本文介绍了对这个新兴领域的最新主要进步的概念回顾,旨在优化和机器学习研究人员。
translated by 谷歌翻译
我们在HOL4互动定理证明书的顶部实施了自动战术证据Tacticeoe。Tactice从人类证据中学习,数学技术适用于每个证明情况。然后在蒙特卡罗树搜索算法中使用这种知识来探索有前途的策略级证明路径。在一个CPU上,时间限制为60秒,Tactictoe在Hol4的标准图书馆中证明了7164定理的66.4%,而自动调度的电子箴言解决了34.5%。通过结合Tactice和电子证明者的结果,成功率上升至69.0%。
translated by 谷歌翻译
决策树学习是机器学习中广泛使用的方法,在需要简洁明了的模型的应用中受到青睐。传统上,启发式方法用于快速生产具有相当高准确性的模型。然而,一个普遍的批评是,从精度和大小方面,所产生的树可能不一定是数据的最佳表示。近年来,这激发了最佳分类树算法的发展,这些算法与执行一系列本地最佳决策的启发式方法相比,在全球范围内优化决策树。我们遵循这一工作线,并提供了一种基于动态编程和搜索的最佳分类树的新颖算法。我们的算法支持对树的深度和节点数量的约束。我们方法的成功归因于一系列专门技术,这些技术利用了分类树独有的属性。传统上,最佳分类树的算法受到了高运行时的困扰和有限的可伸缩性,但我们在一项详细的实验研究中表明,我们的方法仅使用最先进的时间所需的时间,并且可以处理数十个数据集的数据集在数千个实例中,提供了几个数量级的改进,并特别有助于实现最佳决策树的实现。
translated by 谷歌翻译
蒙特卡洛树搜索(MCT)是设计游戏机器人或解决顺序决策问题的强大方法。该方法依赖于平衡探索和开发的智能树搜索。MCT以模拟的形式进行随机抽样,并存储动作的统计数据,以在每个随后的迭代中做出更有教育的选择。然而,该方法已成为组合游戏的最新技术,但是,在更复杂的游戏(例如那些具有较高的分支因素或实时系列的游戏)以及各种实用领域(例如,运输,日程安排或安全性)有效的MCT应用程序通常需要其与问题有关的修改或与其他技术集成。这种特定领域的修改和混合方法是本调查的主要重点。最后一项主要的MCT调查已于2012年发布。自发布以来出现的贡献特别感兴趣。
translated by 谷歌翻译
回答集编程(ASP)已成为一种流行的和相当复杂的声明问题解决方法。这是由于其具有吸引力的地址解决方案的工作流程,这是可以轻松解决问题解决的方法,即使对于计算机科学外的守护者而言。与此不同,底层技术的高度复杂性使得ASP专家越来越难以将想法付诸实践。有关解决此问题,本教程旨在使用户能够构建自己的基于ASP的系统。更确切地说,我们展示了ASP系统Clingo如何用于扩展ASP和实现定制的专用系统。为此,我们提出了两个替代方案。我们从传统的AI技术开始,并展示元编程如何用于扩展ASP。这是一种相当轻的方法,依赖于Clingo的reation特征来使用ASP本身表达新功能。与此不同,本教程的主要部分使用传统的编程(在Python中)来通过其应用程序编程接口操纵Clingo。这种方法允许改变和控制ASP的整个模型 - 地面解决工作流程。 COMENT of Clingo的新应用程序课程使我们能够通过自定义类似于Clingo中的进程来绘制Clingo的基础架构。例如,我们可能会互动到程序的抽象语法树,控制各种形式的多射击求解,并为外国推论设置理论传播者。另一种横截面结构,跨越元以及应用程序编程是Clingo的中间格式,即指定底层接地器和求解器之间的界面。我们通过示例和几个非琐碎的案例研究说明了本教程的前述概念和技术。
translated by 谷歌翻译
行为树(BT)是一种在自主代理中(例如机器人或计算机游戏中的虚拟实体)之间在不同任务之间进行切换的方法。 BT是创建模块化和反应性的复杂系统的一种非常有效的方法。这些属性在许多应用中至关重要,这导致BT从计算机游戏编程到AI和机器人技术的许多分支。在本书中,我们将首先对BTS进行介绍,然后我们描述BTS与早期切换结构的关系,并且在许多情况下如何概括。然后,这些想法被用作一套高效且易于使用的设计原理的基础。安全性,鲁棒性和效率等属性对于自主系统很重要,我们描述了一套使用BTS的状态空间描述正式分析这些系统的工具。借助新的分析工具,我们可以对BTS如何推广早期方法的形式形式化。我们还显示了BTS在自动化计划和机器学习中的使用。最后,我们描述了一组扩展的工具,以捕获随机BT的行为,其中动作的结果由概率描述。这些工具可以计算成功概率和完成时间。
translated by 谷歌翻译
最近,图形神经网络(GNN)已应用于群集上的调整工作,比手工制作的启发式方法更好地表现了。尽管表现令人印象深刻,但仍然担心这些基于GNN的工作调度程序是否满足用户对其他重要属性的期望,例如防止策略,共享激励和稳定性。在这项工作中,我们考虑对基于GNN的工作调度程序的正式验证。我们解决了几个特定领域的挑战,例如网络,这些挑战比验证图像和NLP分类器时遇到的更深层和规格更丰富。我们开发了拉斯维加斯,这是基于精心设计的算法,将这些调度程序的单步和多步属性验证的第一个通用框架,它们结合了抽象,改进,求解器和证明传输。我们的实验结果表明,与以前的方法相比,维加斯在验证基于GNN的调度程序的重要特性时会达到显着加速。
translated by 谷歌翻译
对表示形式的研究对于任何形式的交流都是至关重要的,我们有效利用它们的能力至关重要。本文介绍了一种新颖的理论 - 代表性系统理论 - 旨在从三个核心角度从三个核心角度进行抽象地编码各种表示:语法,综合及其属性。通过介绍建筑空间的概念,我们能够在一个统一的范式下编码这些核心组件中的每个核心组件。使用我们的代表性系统理论,有可能在结构上将一个系统中的表示形式转换为另一个系统的表示形式。我们结构转化技术的固有方面是根据表示的属性(例如它们的相对认知有效性或结构复杂性)的代表选择。提供一般结构转化技术的主要理论障碍是缺乏终止算法。代表系统理论允许在没有终止算法的情况下衍生部分变换。由于代表性系统理论提供了一种通用编码代表系统的通用方法,因此消除了进一步的关键障碍:需要设计特定于系统的结构转换算法,这是当不同系统采用不同的形式化方法时所必需的。因此,代表性系统理论是第一个提供统一方法来编码表示形式,通过结构转换支持表示形式的第一个通用框架,并具有广泛的实用应用。
translated by 谷歌翻译
现代大规模深度学习工作负载突出了在许多设备上并行执行的需要,以便将模型数据拟合到硬件加速器存储器中。在这些设置中,在计算期间可能需要数组再分配,但如果没有有效地完成,也可以成为瓶颈。在本文中,我们解决了在SPMD计算中重新分配多维阵列数据的问题,深度学习中最普遍的并行性形式。我们介绍了一种类型定向的方法来合成阵列再分配作为MPI式集体操作的序列。我们证明了我们的合成重新分发是内存高效的,并且不执行过多的数据传输。使用集体操作的SPMD计算的数组再分配也在XLA SPMD Partitioner的上下文中实现了一种用于跨加速器系统进行分区程序的生产级工具。我们评估我们对XLA实施的方法,并发现我们的方法提供了1.22美元的几何平均加速,最大加速度为高达5.7倍$,同时提供可提供的内存保证,使我们的系统特别吸引力 - 规模模型。
translated by 谷歌翻译
我们提供了静态分析,用于发现给定概率程序的可区分或更普遍的平滑部分,并展示如何使用分析来改善路径梯度估计器,这是后验推理和模型学习的最流行方法之一。我们的改进将估计器的范围从可区分模型到非差异性模型的范围,而无需用户手动干预;改进的估计器会使用我们的静态分析自动识别给定概率程序的可区分部分,并将路径梯度估计器应用于已识别的零件,同时使用程序的其余部分使用更通用但效率较低的估计器(称为得分估计器)。我们的分析具有令人惊讶的微妙的声音论点,部分原因是从程序分析设计师的角度看待某些目标平滑性属性的不当行为。例如,某些平滑度属性不能通过函数组成保留,这使得在不牺牲精度的情况下很难分析顺序组成。我们在目标平滑度属性上制定了五个假设,证明了我们在这些假设下的分析的健全性,并表明我们的主要示例满足了这些假设。我们还表明,通过使用分析中的信息,我们的改进梯度估计器满足了重要的可不同性要求,因此,在轻度的规律性条件下,平均计算正确的估计值,即,它返回无偏见的估计值。我们在Pyro语言中使用代表性概率程序进行的实验表明,我们的静态分析能够准确地识别这些程序的平滑部分,并使我们改进的路径梯度估计器利用这些程序中的所有高性能机会。
translated by 谷歌翻译
归纳逻辑编程是一种机器学习,其中从示例中了解了哪些逻辑程序。该学习通常相对于作为逻辑程序提供的一些背景知识发生。本文介绍了底部预处理,一种在ILP系统上生成初始约束的方法必须考虑。底部预处理将思想应用于逆征集到现代ILP系统。逆存在是一种有影响力的早期ILP方法,促进了progol。本文还提供$ \ Bot $ -popper,这是现代ILP系统Popper的底部预处理的实施。实验显示,底部预处理可以降低ILP系统的难题的学习时间。当问题中的背景知识量大时,这种减少可能是特别重要的。
translated by 谷歌翻译
概率编程使代表概率模型作为程序变得容易。但是,建立单个模型只是概率建模的一步。概率建模的更广泛挑战在于理解和导航替代模型的空间。尽管它们的核心作用,但目前没有很好的方式来代表这些替代模型的空间。我们提出了概率编程的扩展,使每个程序都代表一个相互关联的概率模型网络。我们为这些多模型概率程序提供了正式的语义,用于模型网络操作的有效算法的集合以及在流行的概率编程语言STAN之上构建的示例实现。该模型网络表示形式开放了许多门,包括模型空间中的搜索和自动化,模型开发的跟踪和通信以及明确的建模者自由度,以减轻P-Hacking等问题。我们使用Stan实施来展示自动模型搜索和模型开发跟踪,并提出了更多可能的应用程序。
translated by 谷歌翻译
即使机器学习算法已经在数据科学中发挥了重要作用,但许多当前方法对输入数据提出了不现实的假设。由于不兼容的数据格式,或数据集中的异质,分层或完全缺少的数据片段,因此很难应用此类方法。作为解决方案,我们提出了一个用于样本表示,模型定义和培训的多功能,统一的框架,称为“ Hmill”。我们深入审查框架构建和扩展的机器学习的多个范围范式。从理论上讲,为HMILL的关键组件的设计合理,我们将通用近似定理的扩展显示到框架中实现的模型所实现的所有功能的集合。本文还包含有关我们实施中技术和绩效改进的详细讨论,该讨论将在MIT许可下发布供下载。该框架的主要资产是其灵活性,它可以通过相同的工具对不同的现实世界数据源进行建模。除了单独观察到每个对象的一组属性的标准设置外,我们解释了如何在框架中实现表示整个对象系统的图表中的消息推断。为了支持我们的主张,我们使用框架解决了网络安全域的三个不同问题。第一种用例涉及来自原始网络观察结果的IoT设备识别。在第二个问题中,我们研究了如何使用以有向图表示的操作系统的快照可以对恶意二进制文件进行分类。最后提供的示例是通过网络中实体之间建模域黑名单扩展的任务。在所有三个问题中,基于建议的框架的解决方案可实现与专业方法相当的性能。
translated by 谷歌翻译