多级优化已被广泛用作无数机器学习问题的数学基础,例如超参数优化,元学习和增强学习,仅举几例。尽管如此,实施多级优化程序通常需要在数学和编程方面的专业知识,这在该领域的研究都阻碍了研究。我们通过引入贝蒂(Betty)(用于基于梯度的多级优化的高级软件库)迈出了缩小这一差距的第一步。为此,我们基于对多级优化作为数据流图的新解释开发自动分化过程。我们进一步将多级优化的主要组成部分作为Python类,以实现简单,模块化和可维护的编程。我们从经验上证明,Betty可以用作一系列多级优化程序的高级编程接口,同时观察到测试准确性的提高11 \%,GPU存储器使用率下降14 \%,而20 \%降低了。在多个基准上的现有实现的墙壁时间。该代码可从http://github.com/leopard-ai/betty获得。
translated by 谷歌翻译
A core capability of intelligent systems is the ability to quickly learn new tasks by drawing on prior experience. Gradient (or optimization) based meta-learning has recently emerged as an effective approach for few-shot learning. In this formulation, meta-parameters are learned in the outer loop, while task-specific models are learned in the inner-loop, by using only a small amount of data from the current task. A key challenge in scaling these approaches is the need to differentiate through the inner loop learning process, which can impose considerable computational and memory burdens. By drawing upon implicit differentiation, we develop the implicit MAML algorithm, which depends only on the solution to the inner level optimization and not the path taken by the inner loop optimizer. This effectively decouples the meta-gradient computation from the choice of inner loop optimizer. As a result, our approach is agnostic to the choice of inner loop optimizer and can gracefully handle many gradient steps without vanishing gradients or memory constraints. Theoretically, we prove that implicit MAML can compute accurate meta-gradients with a memory footprint no more than that which is required to compute a single inner loop gradient and at no overall increase in the total computational cost. Experimentally, we show that these benefits of implicit MAML translate into empirical gains on few-shot image recognition benchmarks.
translated by 谷歌翻译
在确定性优化中,通常假定问题的所有参数都是固定和已知的。但是,实际上,某些参数可能是未知的先验参数,但可以从历史数据中估算。典型的预测 - 优化方法将预测和优化分为两个阶段。最近,端到端的预测到优化已成为有吸引力的替代方法。在这项工作中,我们介绍了PYEPO软件包,这是一个基于Pytorch的端到端预测,然后在Python中进行了优化的库。据我们所知,PYEPO(发音为“带有静音” n“”的“菠萝”)是线性和整数编程的第一个通用工具,具有预测的目标函数系数。它提供了两种基本算法:第一种基于Elmachtoub&Grigas(2021)的开创性工作的凸替代损失函数,第二个基于Vlastelica等人的可区分黑盒求解器方法。 (2019)。 PYEPO提供了一个简单的接口,用于定义新的优化问题,最先进的预测 - 优化训练算法,自定义神经网络体系结构的使用以及端到端方法与端到端方法与与端到端方法的比较两阶段的方法。 PYEPO使我们能够进行一系列全面的实验,以比较沿轴上的多种端到端和两阶段方法,例如预测准确性,决策质量和运行时间,例如最短路径,多个背包和旅行等问题销售人员问题。我们讨论了这些实验中的一些经验见解,这些见解可以指导未来的研究。 PYEPO及其文档可在https://github.com/khalil-research/pyepo上找到。
translated by 谷歌翻译
Deep learning frameworks have often focused on either usability or speed, but not both. PyTorch is a machine learning library that shows that these two goals are in fact compatible: it provides an imperative and Pythonic programming style that supports code as a model, makes debugging easy and is consistent with other popular scientific computing libraries, while remaining efficient and supporting hardware accelerators such as GPUs. In this paper, we detail the principles that drove the implementation of PyTorch and how they are reflected in its architecture. We emphasize that every aspect of PyTorch is a regular Python program under the full control of its user. We also explain how the careful and pragmatic implementation of the key components of its runtime enables them to work together to achieve compelling performance. We demonstrate the efficiency of individual subsystems, as well as the overall speed of PyTorch on several common benchmarks.
translated by 谷歌翻译
Derivatives, mostly in the form of gradients and Hessians, are ubiquitous in machine learning. Automatic differentiation (AD), also called algorithmic differentiation or simply "autodiff", is a family of techniques similar to but more general than backpropagation for efficiently and accurately evaluating derivatives of numeric functions expressed as computer programs. AD is a small but established field with applications in areas including computational fluid dynamics, atmospheric sciences, and engineering design optimization. Until very recently, the fields of machine learning and AD have largely been unaware of each other and, in some cases, have independently discovered each other's results. Despite its relevance, general-purpose AD has been missing from the machine learning toolbox, a situation slowly changing with its ongoing adoption under the names "dynamic computational graphs" and "differentiable programming". We survey the intersection of AD and machine learning, cover applications where AD has direct relevance, and address the main implementation techniques. By precisely defining the main differentiation techniques and their interrelationships, we aim to bring clarity to the usage of the terms "autodiff", "automatic differentiation", and "symbolic differentiation" as these are encountered more and more in machine learning settings.
translated by 谷歌翻译
机器学习(ML)管道中的组合优化(CO)层是解决数据驱动决策任务的强大工具,但它们面临两个主要挑战。首先,CO问题的解通常是其客观参数的分段常数函数。鉴于通常使用随机梯度下降对ML管道进行训练,因此缺乏斜率信息是非常有害的。其次,标准ML损失在组合设置中不能很好地工作。越来越多的研究通过各种方法解决了这些挑战。不幸的是,缺乏维护良好的实现会减慢采用CO层的速度。在本文的基础上,我们对CO层介绍了一种概率的观点,该观点自然而然地是近似分化和结构化损失的构建。我们从文献中恢复了许多特殊情况的方法,我们也得出了新方法。基于这个统一的观点,我们提出了inferpopt.jl,一个开源的朱莉娅软件包,1)允许将任何具有线性物镜的Co Oracle转换为可区分的层,以及2)定义足够的损失以训练包含此类层的管道。我们的图书馆使用任意优化算法,并且与朱莉娅的ML生态系统完全兼容。我们使用视频游戏地图上的探索问题来证明其能力。
translated by 谷歌翻译
大多数机器学习算法由一个或多个超参数配置,必须仔细选择并且通常会影响性能。为避免耗时和不可递销的手动试验和错误过程来查找性能良好的超参数配置,可以采用各种自动超参数优化(HPO)方法,例如,基于监督机器学习的重新采样误差估计。本文介绍了HPO后,本文审查了重要的HPO方法,如网格或随机搜索,进化算法,贝叶斯优化,超带和赛车。它给出了关于进行HPO的重要选择的实用建议,包括HPO算法本身,性能评估,如何将HPO与ML管道,运行时改进和并行化结合起来。这项工作伴随着附录,其中包含关于R和Python的特定软件包的信息,以及用于特定学习算法的信息和推荐的超参数搜索空间。我们还提供笔记本电脑,这些笔记本展示了这项工作的概念作为补充文件。
translated by 谷歌翻译
这本数字本书包含在物理模拟的背景下与深度学习相关的一切实际和全面的一切。尽可能多,所有主题都带有Jupyter笔记本的形式的动手代码示例,以便快速入门。除了标准的受监督学习的数据中,我们将看看物理丢失约束,更紧密耦合的学习算法,具有可微分的模拟,以及加强学习和不确定性建模。我们生活在令人兴奋的时期:这些方法具有从根本上改变计算机模拟可以实现的巨大潜力。
translated by 谷歌翻译
双层优化,尤其是基于梯度的类别,已在深度学习社区中广泛使用,包括超参数优化和元知识提取。 BI级优化将一个问题嵌入了另一个问题,基于梯度的类别通过计算超级级别来解决外部级别的任务,这比经典方法(例如进化算法)更有效。在这项调查中,我们首先对基于梯度的双层优化进行正式定义。其次,我们说明了如何将研究问题作为双层优化问题,这对于初学者来说是极大的实际用途。更具体地说,有两种公式:单任务公式,以优化超参数,例如正则化参数和蒸馏数据,以及用于提取元知识的多任务公式,例如模型初始化。然后,使用BI级公式,我们讨论了四个BI级优化求解器,以更新外部变量,包括显式梯度更新,代理更新,隐式函数更新和闭合形式更新。最后但并非最不重要的一点是,我们通过指出基于梯度的双层优化科学问题(AI4Science)的巨大潜力来结束调查。
translated by 谷歌翻译
我们介绍了Netket的版本3,机器学习工具箱适用于许多身体量子物理学。Netket围绕神经网络量子状态构建,并为其评估和优化提供有效的算法。这个新版本是基于JAX的顶部,一个用于Python编程语言的可差分编程和加速的线性代数框架。最重要的新功能是使用机器学习框架的简明符号来定义纯Python代码中的任意神经网络ANS \“凝固的可能性,这允许立即编译以及渐变的隐式生成自动化。Netket 3还带来了GPU和TPU加速器的支持,对离散对称组的高级支持,块以缩放多程度的自由度,Quantum动态应用程序的驱动程序,以及改进的模块化,允许用户仅使用部分工具箱是他们自己代码的基础。
translated by 谷歌翻译
组合优化是运营研究和计算机科学领域的一个公认领域。直到最近,它的方法一直集中在孤立地解决问题实例,而忽略了它们通常源于实践中的相关数据分布。但是,近年来,人们对使用机器学习,尤其是图形神经网络(GNN)的兴趣激增,作为组合任务的关键构件,直接作为求解器或通过增强确切的求解器。GNN的电感偏差有效地编码了组合和关系输入,因为它们对排列和对输入稀疏性的意识的不变性。本文介绍了对这个新兴领域的最新主要进步的概念回顾,旨在优化和机器学习研究人员。
translated by 谷歌翻译
Pennylane是用于量子计算机可区分编程的Python 3软件框架。该库为近期量子计算设备提供了统一的体系结构,支持量子和连续变化的范例。 Pennylane的核心特征是能够以与经典技术(例如反向传播)兼容的方式来计算变异量子电路的梯度。因此,Pennylane扩展了在优化和机器学习中常见的自动分化算法,以包括量子和混合计算。插件系统使该框架与任何基于门的量子模拟器或硬件兼容。我们为硬件提供商提供插件,包括Xanadu Cloud,Amazon Braket和IBM Quantum,允许Pennylane优化在公开访问的量子设备上运行。在古典方面,Pennylane与加速的机器学习库(例如Tensorflow,Pytorch,Jax和Autograd)接口。 Pennylane可用于优化变分的量子本素体,量子近似优化,量子机学习模型和许多其他应用。
translated by 谷歌翻译
代理,模拟程序行为的模型,形成各种开发工作流程的基础。我们研究了三种基于代理的设计模式,在大规模CPU模拟器上进行评估。通过替代汇编,程序员开发了一种模拟程序的代理,以模仿程序的行为部署到最终用户代替原始程序。代理编译加速了CPU模拟器的研究1.6美元。通过代理适应,程序员开发一个程序的代理,然后重新培训在不同的任务上代理。代理适应将模拟器的错误减少到50美元\%$。通过代理优化,程序员开发了一个程序的代理,优化代理的输入参数,然后将优化的输入参数插回原始程序。替代优化查找模拟参数,与专业集参数引起的错误相比,将模拟器的错误减少5 \%$ 5 \%。在本文中,我们将这种基于代理的设计模式的分类形式正规化。我们进一步描述了所有三种设计模式共有的编程方法。我们的工作基于与计划代理人的编程为基础的新兴工作流程。
translated by 谷歌翻译
一场堆放堡拥堵游戏(SCG)是一个双重计划,领导者的目标是通过预测和操纵均衡状态来最大程度地提高自己的收益,在该状态下,追随者通过玩拥堵游戏而定居。大规模的SCG以其顽固性和复杂性而闻名。这项研究通过可区分的编程来处理SCG,该编程将机器学习的最新发展与常规方法结合在一起。核心思想以模仿logit动力学形成的进化路径代表低级平衡问题。它可以在朝着平衡的演化路径上使用自动分化,从而导致双环梯度下降算法。我们进一步表明,对低级平衡的固定可能是一个自我强加的计算障碍。取而代之的是,领导者只能沿着追随者的演变路径向前看几个步骤,同时通过共同进化过程更新其决策。启示产生了一种单循环算法,该算法在记忆消耗和计算时间方面都更有效。通过涵盖广泛基准问题的数值实验,我们发现单循环算法始终达到解决方案质量和效率之间的良好平衡,不仅优于标准的双环实现,而且优于文献中的其他方法。重要的是,我们的结果既突出了“充分期待”的浪费和“零预期”的危险。如果需要快速启发术来解决一个非常大的SCG,则提议的单环算法具有一步的外观,使其成为理想的候选人。
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 谷歌翻译
TensorFlow is a machine learning system that operates at large scale and in heterogeneous environments. Tensor-Flow uses dataflow graphs to represent computation, shared state, and the operations that mutate that state. It maps the nodes of a dataflow graph across many machines in a cluster, and within a machine across multiple computational devices, including multicore CPUs, generalpurpose GPUs, and custom-designed ASICs known as Tensor Processing Units (TPUs). This architecture gives flexibility to the application developer: whereas in previous "parameter server" designs the management of shared state is built into the system, TensorFlow enables developers to experiment with novel optimizations and training algorithms. TensorFlow supports a variety of applications, with a focus on training and inference on deep neural networks. Several Google services use TensorFlow in production, we have released it as an open-source project, and it has become widely used for machine learning research. In this paper, we describe the TensorFlow dataflow model and demonstrate the compelling performance that Tensor-Flow achieves for several real-world applications.
translated by 谷歌翻译
随着机器学习系统的计算要求以及机器学习框架的规模和复杂性的增加,基本框架创新变得具有挑战性。尽管计算需求驱动了最近的编译器,网络和硬件的进步,但通过机器学习工具对这些进步的利用却以较慢的速度发生。这部分是由于与现有框架原型制作新的计算范式有关的困难。大型框架将机器学习研究人员和从业人员作为最终用户的优先级优先,并且很少关注能够向前推动框架的系统研究人员 - 我们认为两者都是同等重要的利益相关者。我们介绍了手电筒,这是一个开源库,旨在通过优先考虑开放式,模块化,可定制的内部设备以及最新的,可用于研究的模型和培训设置,以刺激机器学习工具和系统的创新。手电筒使系统研究人员能够快速原型并尝试机器学习计算中的新思想,并且开销低,与其他流行的机器学习框架竞争并经常超过其他流行的机器学习框架。我们将手电筒视为一种工具,可以使可以使广泛使用的图书馆受益,并使机器学习和系统研究人员更加紧密地结合在一起。手电筒可从https://github.com/flashlight/flashlight获得。
translated by 谷歌翻译
物理信息的神经网络(PINN)是神经网络(NNS),它们作为神经网络本身的组成部分编码模型方程,例如部分微分方程(PDE)。如今,PINN是用于求解PDE,分数方程,积分分化方程和随机PDE的。这种新颖的方法已成为一个多任务学习框架,在该框架中,NN必须在减少PDE残差的同时拟合观察到的数据。本文对PINNS的文献进行了全面的综述:虽然该研究的主要目标是表征这些网络及其相关的优势和缺点。该综述还试图将出版物纳入更广泛的基于搭配的物理知识的神经网络,这些神经网络构成了香草·皮恩(Vanilla Pinn)以及许多其他变体,例如物理受限的神经网络(PCNN),各种HP-VPINN,变量HP-VPINN,VPINN,VPINN,变体。和保守的Pinn(CPINN)。该研究表明,大多数研究都集中在通过不同的激活功能,梯度优化技术,神经网络结构和损耗功能结构来定制PINN。尽管使用PINN的应用范围广泛,但通过证明其在某些情况下比有限元方法(FEM)等经典数值技术更可行的能力,但仍有可能的进步,最著名的是尚未解决的理论问题。
translated by 谷歌翻译
我们提出了Theseus,这是一个有效的应用程序不合时宜的开源库,用于在Pytorch上构建的可区分非线性最小二乘(DNL)优化,为机器人技术和视觉中的端到端结构化学习提供了一个共同的框架。现有的DNLS实施是特定应用程序的,并且并不总是纳入许多对效率重要的成分。 Theseus是应用程序不可静止的,正如我们使用的几个示例应用程序所用的,这些应用程序是使用相同的基础可区分组件构建的,例如二阶优化器,标准成本功能和Lie组。为了提高效率,TheseUS纳入了对稀疏求解器,自动矢量化,批处理,GPU加速度和梯度计算的支持,并具有隐式分化和直接损耗最小化。我们在一组应用程序中进行了广泛的性能评估,显示出这些功能时显示出明显的效率提高和更好的可扩展性。项目页面:https://sites.google.com/view/theseus-ai
translated by 谷歌翻译
受到预处理的概念的启发,我们提出了一种新的方法,以提高基于梯度的元学习方法的适应速度,而不会产生额外的参数。我们证明,将优化问题重新验证到非线性最小二乘配方,提供了一种原则性的方法,可以根据条件编号和本地的概念来主动执行$ \ textIt {wittercitioned} $参数空间,用于元学习模型曲率。我们的全面评估表明,所提出的方法大大优于其不受限制的对应物,尤其是在初始适应步骤中,同时在几个几次分类任务上取得了可比或更好的总体结果 - 创造了动态选择推断时间的适应性步骤数量的可能性。
translated by 谷歌翻译