优化非核解(NCVX)问题,尤其是那些非现场(NSMT)和约束(CSTR),是机器学习和深度学习的重要组成部分。但如果没有优化专业知识,很难可靠地解决这类问题。现有的通用NCVX优化包功能强大,但通常无法处理非现状。格兰索是瞄准NCVX,NSMT,CSTR问题的第一个包中。但是,它有几个限制,例如缺乏自动分化和GPU加速,这妨碍了非专家潜在的广泛部署。为了降低机器学习界的技术障碍,我们将Granso改装为名为NCVX的用户友好且可缩放的Python软件包,具有自我分化,GPU加速度,张量输入,可扩展QP求解器和专有封装的零依赖性。作为一个亮点,NCVX可以解决一般的CSTR深度学习问题,首先。 NCVX可在HTTPS://ncvx.org提供,具有详细文档和机器学习和其他字段的众多示例。
translated by 谷歌翻译
我们介绍了Julia库Diffopt.jl,以通过凸优化问题解决目标和/或约束中存在的任意参数来区分。该库建立在数学上的基础上,因此利用了丰富的求解器生态系统,并用跳跃等建模语言很好地组成。DIFFOPT提供了前向和反向分化模式,从而使多个用例从高参数优化到反向传播和灵敏度分析,桥接受约束优化和端到端可区分编程。
translated by 谷歌翻译
在确定性优化中,通常假定问题的所有参数都是固定和已知的。但是,实际上,某些参数可能是未知的先验参数,但可以从历史数据中估算。典型的预测 - 优化方法将预测和优化分为两个阶段。最近,端到端的预测到优化已成为有吸引力的替代方法。在这项工作中,我们介绍了PYEPO软件包,这是一个基于Pytorch的端到端预测,然后在Python中进行了优化的库。据我们所知,PYEPO(发音为“带有静音” n“”的“菠萝”)是线性和整数编程的第一个通用工具,具有预测的目标函数系数。它提供了两种基本算法:第一种基于Elmachtoub&Grigas(2021)的开创性工作的凸替代损失函数,第二个基于Vlastelica等人的可区分黑盒求解器方法。 (2019)。 PYEPO提供了一个简单的接口,用于定义新的优化问题,最先进的预测 - 优化训练算法,自定义神经网络体系结构的使用以及端到端方法与端到端方法与与端到端方法的比较两阶段的方法。 PYEPO使我们能够进行一系列全面的实验,以比较沿轴上的多种端到端和两阶段方法,例如预测准确性,决策质量和运行时间,例如最短路径,多个背包和旅行等问题销售人员问题。我们讨论了这些实验中的一些经验见解,这些见解可以指导未来的研究。 PYEPO及其文档可在https://github.com/khalil-research/pyepo上找到。
translated by 谷歌翻译
我们提出了一个用于机器人应用专业的非凸轨迹优化问题的新求解器。Calipso或Conic增强Lagrangian内点求解器,结合了几种约束数值优化的策略,以本机处理二阶锥体和互补性约束。它可靠地解决了具有挑战性的运动规划问题,其中包括影响和库仑摩擦的接触式图形,受锥形约束的推力限制以及受国家触发的约束,而通用非线性编程溶液(如Snopt和iPopt)无法融合。此外,Calipso支持有关问题数据的有效分化,从而实现了双层优化应用程序,例如自动调整反馈策略。求解器的可靠收敛性在操纵,运动和航空航天域的一系列问题上得到了证明。可以使用该求解器的开源实现。
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 谷歌翻译
我们提出了Theseus,这是一个有效的应用程序不合时宜的开源库,用于在Pytorch上构建的可区分非线性最小二乘(DNL)优化,为机器人技术和视觉中的端到端结构化学习提供了一个共同的框架。现有的DNLS实施是特定应用程序的,并且并不总是纳入许多对效率重要的成分。 Theseus是应用程序不可静止的,正如我们使用的几个示例应用程序所用的,这些应用程序是使用相同的基础可区分组件构建的,例如二阶优化器,标准成本功能和Lie组。为了提高效率,TheseUS纳入了对稀疏求解器,自动矢量化,批处理,GPU加速度和梯度计算的支持,并具有隐式分化和直接损耗最小化。我们在一组应用程序中进行了广泛的性能评估,显示出这些功能时显示出明显的效率提高和更好的可扩展性。项目页面:https://sites.google.com/view/theseus-ai
translated by 谷歌翻译
组合优化是运营研究和计算机科学领域的一个公认领域。直到最近,它的方法一直集中在孤立地解决问题实例,而忽略了它们通常源于实践中的相关数据分布。但是,近年来,人们对使用机器学习,尤其是图形神经网络(GNN)的兴趣激增,作为组合任务的关键构件,直接作为求解器或通过增强确切的求解器。GNN的电感偏差有效地编码了组合和关系输入,因为它们对排列和对输入稀疏性的意识的不变性。本文介绍了对这个新兴领域的最新主要进步的概念回顾,旨在优化和机器学习研究人员。
translated by 谷歌翻译
数值验证是机器学习研究的核心,因为它允许评估新方法的实际影响,并确认理论和实践之间的一致性。然而,该领域的快速发展构成了一些挑战:研究人员面临着大量的方法来比较,有限的透明度和最佳实践的共识以及乏味的重新实施工作。结果,验证通常是非常部分的,这可能会导致错误的结论,从而减慢研究的进展。我们提出了Benchopt,这是一个协作框架,旨在在跨编程语言和硬件体系结构的机器学习中自动化,复制和发布优化基准。 Benchopt通过提供用于运行,共享和扩展实验的现成工具来简化社区的基准测试。为了展示其广泛的可用性,我们在三个标准学习任务上展示基准:$ \ ell_2 $ regulaine的逻辑回归,套索和RESNET18用于图像分类的培训。这些基准强调了关键的实际发现,这些发现对这些问题的最新问题更加细微,这表明在实际评估中,魔鬼在细节上。我们希望Benchopt能在社区中促进合作工作,从而改善研究结果的可重复性。
translated by 谷歌翻译
随着机器学习系统的计算要求以及机器学习框架的规模和复杂性的增加,基本框架创新变得具有挑战性。尽管计算需求驱动了最近的编译器,网络和硬件的进步,但通过机器学习工具对这些进步的利用却以较慢的速度发生。这部分是由于与现有框架原型制作新的计算范式有关的困难。大型框架将机器学习研究人员和从业人员作为最终用户的优先级优先,并且很少关注能够向前推动框架的系统研究人员 - 我们认为两者都是同等重要的利益相关者。我们介绍了手电筒,这是一个开源库,旨在通过优先考虑开放式,模块化,可定制的内部设备以及最新的,可用于研究的模型和培训设置,以刺激机器学习工具和系统的创新。手电筒使系统研究人员能够快速原型并尝试机器学习计算中的新思想,并且开销低,与其他流行的机器学习框架竞争并经常超过其他流行的机器学习框架。我们将手电筒视为一种工具,可以使可以使广泛使用的图书馆受益,并使机器学习和系统研究人员更加紧密地结合在一起。手电筒可从https://github.com/flashlight/flashlight获得。
translated by 谷歌翻译
Optimal transport has recently been reintroduced to the machine learning community thanks in part to novel efficient optimization procedures allowing for medium to large scale applications. We propose a Python toolbox that implements several key optimal transport ideas for the machine learning community. The toolbox contains implementations of a number of founding works of OT for machine learning such as Sinkhorn algorithm and Wasserstein barycenters, but also provides generic solvers that can be used for conducting novel fundamental research. This toolbox, named POT for Python Optimal Transport, is open source with an MIT license.
translated by 谷歌翻译
本文介绍了OptNet,该网络架构集成了优化问题(这里,专门以二次程序的形式),作为较大端到端可训练的深网络中的单个层。这些层在隐藏状态之间编码约束和复杂依赖性,传统的卷积和完全连接的层通常无法捕获。我们探索这种架构的基础:我们展示了如何使用敏感性分析,彼得优化和隐式差分的技术如何通过这些层和相对于层参数精确地区分;我们为这些层开发了一种高效的解算器,用于利用基于GPU的基于GPU的批处理在原始 - 双内部点法中解决,并且在求解的顶部几乎没有额外的成本提供了反向衰减梯度;我们突出了这些方法在几个问题中的应用。在一个值得注意的示例中,该方法学习仅在输入和输出游戏中播放Mini-sudoku(4x4),没有关于游戏规则的a-priori信息;这突出了OptNet比其他神经架构更好地学习硬限制的能力。
translated by 谷歌翻译
神经网络架构的最新进展允许凸优化问题的无缝集成作为端到端可训练神经网络中的可差异层。然而,将中型和大规模二次程序集成到深度神经网络架构中是具有挑战性的,因为通过内部点方法究竟求解了二次程序,在变量的数量中具有最差的立方复杂性。在本文中,我们介绍了一种基于乘法器(ADMM)的交替方向方法的替代网络层体系结构,其能够缩放到中等大量变量的问题。通过修改的固定点迭代的残差映射的隐式分化来执行向后区分。模拟结果证明了ADMM层的计算优势,用于中等缩放问题的速度大约比OptNet二次编程层更快的峰值。此外,与基于展开的展差或kKt最优性条件的隐含分化的标准方法相比,我们的新型反向传递例程是高效的,从内存和计算角度来看。我们与综合预测和优化范例中的组合优化的实例结束。
translated by 谷歌翻译
许多现实生活中的优化问题通常包含一个或多个没有明确公式的约束或目标。但是,如果可用数据,这些数据可用于学习约束。清楚地看到了这种方法的好处,但是需要以结构化的方式进行此过程。因此,本文提供了一个使用约束学习(OCL)进行优化的框架,我们认为这将有助于正式化和指导从数据中学习的过程。该框架包括以下步骤:(i)设置概念优化模型,(ii)数据收集和预处理,(iii)选择和培训预测模型,(iv)解决优化模型以及(v)验证和验证和验证和验证改进优化模型。然后,我们根据该框架回顾了最近的OCL文献,并强调了当前的趋势以及未来研究的领域。
translated by 谷歌翻译
CVXPY is a domain-specific language for convex optimization embedded in Python. It allows the user to express convex optimization problems in a natural syntax that follows the math, rather than in the restrictive standard form required by solvers. CVXPY makes it easy to combine convex optimization with high-level features of Python such as parallelism and object-oriented design. CVXPY is available at http://www.cvxpy.org/ under the GPL license, along with documentation and examples.
translated by 谷歌翻译
通过边界估计可以显着简化求解约束优化问题(COP),即提供成本函数的紧密边界。通过使用由已知边界的数据组成的数据以及COMPS提取的特征来馈送监督机器学习(ML)模型,可以训练模型以估计新COP实例的边界。在本文中,我们首先概述了来自问题实例的约束编程(CP)的ML的现有知识体系。其次,我们介绍了应用于支持CP解算器的工具的边界估计框架。在该框架内,讨论并评估了不同的ML模型,并评估其对边界估计的适用性,并避免避免求解器找到最佳解决方案的不可行估计的对策。第三,我们在七个警察中提出了一种实验研究,与不同的CP溶剂。我们的结果表明,可以仅限于这些警察的近似最佳边界。这些估计的边界将客观域大小减少60-88%,可以帮助求解器在搜索期间提前找到近乎最佳解决方案。
translated by 谷歌翻译
我们开发了快速算法和可靠软件,以凸出具有Relu激活功能的两层神经网络的凸优化。我们的工作利用了标准的重量罚款训练问题作为一组组-YELL_1 $调查的数据本地模型的凸重新印度,其中局部由多面体锥体约束强制执行。在零规范化的特殊情况下,我们表明此问题完全等同于凸“ Gated Relu”网络的不受约束的优化。对于非零正则化的问题,我们表明凸面式relu模型获得了RELU训练问题的数据依赖性近似范围。为了优化凸的重新制定,我们开发了一种加速的近端梯度方法和实用的增强拉格朗日求解器。我们表明,这些方法比针对非凸问题(例如SGD)和超越商业内部点求解器的标准训练启发式方法要快。在实验上,我们验证了我们的理论结果,探索组-ELL_1 $正则化路径,并对神经网络进行比例凸的优化,以在MNIST和CIFAR-10上进行图像分类。
translated by 谷歌翻译
TensorFlow和Pytorch之类的软件包旨在支持线性代数操作,它们的速度和可用性决定了它们的成功。但是,通过优先考虑速度,他们经常忽略内存需求。结果,由于内存溢出,在软件设计方面方便的内存密集型算法的实现通常无法解决大问题。记忆效率的解决方案需要在计算框架之外具有重要逻辑的复杂编程方法。这会损害这种算法的采用和使用。为了解决这个问题,我们开发了一个XLA编译器扩展程序,该扩展程序根据用户指定的内存限制来调整算法的计算数据流表示。我们表明,K-Nearest邻居和稀疏的高斯过程回归方法可以在单个设备上以更大的规模运行,而标准实现将失败。我们的方法可以更好地利用硬件资源。我们认为,进一步专注于在编译器级别上删除内存约束将扩大未来可以开发的机器学习方法的范围。
translated by 谷歌翻译
我们考虑非线性优化问题,涉及神经网络代表代理模型。我们首先展示了如何直接将神经网络评估嵌入优化模型中,突出难以防止收敛的方法,然后表征这些模型的平稳性。然后,我们在具有Relu激活的前馈神经网络的特定情况下存在两种替代配方,其具有recu激活:作为混合整数优化问题,作为具有互补限制的数学程序。对于后一种制剂,我们证明了在该问题的点处的有同性,对应于嵌入式制剂的实质性。这些配方中的每一个都可以用最先进的优化方法来解决,并且我们展示了如何为这些方法获得良好的初始可行解决方案。我们将三种实际应用的配方进行比较,在燃烧发动机的设计和控制中产生的三种实际应用,在对分类器网络的对抗攻击中产生的产生,以及在油井网中的最佳流动确定。
translated by 谷歌翻译
预处理一直是优化和机器学习方面的主食技术。它通常会减少其应用于矩阵的条件数,从而加快优化算法的收敛性。尽管实践中有许多流行的预处理技术,但大多数人缺乏降低病数的理论保证。在本文中,我们研究了最佳对角线预处理的问题,以分别或同时分别或同时缩放其行或列来实现任何全级矩阵的条件数量的最大降低。我们首先将问题重新将问题重新制定为一个准凸出问题,并提供了一种基线一分配算法,该算法在实践中易于实现,其中每次迭代都包含SDP可行性问题。然后,我们建议使用$ o(\ log(\ frac {1} {\ epsilon})))$迭代复杂度提出多项式时间潜在的降低算法,其中每个迭代均由基于Nesterov-todd方向的牛顿更新组成。我们的算法基于该问题的表述,该问题是von Neumann最佳生长问题的广义版本。接下来,我们专注于单方面的最佳对角线预处理问题,并证明它们可以作为标准双SDP问题配方,我们应用了有效的定制求解器并研究我们最佳的对角线预处理的经验性能。我们在大型矩阵上进行的广泛实验表明,与基于启发式的预处理相比,最佳对角线预处理在减少条件数方面的实际吸引力。
translated by 谷歌翻译
PEPIT是一种Python软件包,旨在简化对可能涉及梯度,投影,近端或线性优化oracels的大型一阶优化方法的最坏情况分析的最坏情况分析,以及它们的近似或布赖曼变体。简而言之,PEPIT是一种封装,可实现一级优化方法的计算机辅助案例分析。关键的潜在思想是施放执行最坏情况分析的问题,通常称为性能估计问题(PEP),作为可以在数字上解决的半纤维程序(SDP)。为此,只需要包用户才能像他们已经实现的那样写出一阶方法。然后,包裹处理SDP建模部件,并且最坏情况分析通过标准求解器进行数字地执行。
translated by 谷歌翻译