利用概率学实现组合优化层,新研究构建Julia开源包InferOpt.jl

开源
机器学习 (ML) 和组合优化 (CO) 是现代工业流程的两个重要组成部分。ML 方法能从嘈杂的数据中提取有意义的信息,而 CO 可以在高维受限环境中做出决策。

​从概率学的角度实现 CO 层,有助于构建近似微分和结构化损失函数。

机器学习 (ML) 和组合优化 (CO) 是现代工业流程的两个重要组成部分。ML 方法能从嘈杂的数据中提取有意义的信息,而 CO 可以在高维受限环境中做出决策。在许多情况下,我们希望将这两种工具结合使用,例如从数据中生成预测,然后使用这些预测做出优化决策。因此,混合 ML-CO pipeline 成为一个新兴的研究方向。

然而这里存在两个问题。首先,CO 问题的解通常表现为其目标参数的分段常函数,而 ML pipeline 通常使用随机梯度下降进行训练,因此斜率是非常关键的。其次,标准的 ML 损失在组合环境中效果不佳。

此外,组合优化层(CO 层)往往缺乏良好的实现。近日一项新研究从概率学的角度提出了实现 CO 层的方法,有助于近似微分和结构化损失的构建。

图片

论文地址:https://arxiv.org/abs/2207.13513

基于这种思路,该研究提出了一个开源的 Julia 包——InferOpt.jl,它的功能包括:

  • 允许将任何具有线性目标函数的 CO oracle 转换为可微层;
  • 定义损失函数来训练包含可微层的 pipeline。

图片

​InferOpt.jl 开源包地址:https://github.com/axelparmentier/inferopt.jl

InferOpt.jl 适用于任意优化算法,并且与 Julia 的 ML 生态系统完全兼容。研究团队使用视频游戏的地图寻路问题来展示它的能力。

推理问题的关键是预测给定输入的输出,这需要了解每个 ML 层的参数。而学习问题旨在找到在推理过程中导致「良好」输出的参数。如下等式 (1) 所示,现有的「CO oracle」代表可以解决优化问题的算法,包括基于求解器和手工的算法。

图片

而层的定义是指我们可以使用自动微分 (AD) 计算有意义的导数,但现有 CO oracle 很少与 AD 兼容,并且导数几乎处处为零,没有可利用的斜率信息。​

因此,此前 CO oracle 还不是层,该研究的重点就是利用概率学的知识将其变成一个层。现代 ML 库提供了丰富的基本构建块,允许用户组装和训练复杂的 pipeline。该研究试图利用这些库来创建混合 ML-CO pipeline,并主要解决了两个问题:

  • 将 CO oracle 转换为可用层;
  • 找到合适的 ML 损失函数,避免忽略潜在的优化问题。

图片

​ 感兴趣的读者可以阅读论文原文,了解更多研究细节。​

责任编辑:未丽燕 来源: 机器之心
相关推荐

2015-07-09 14:40:20

华三/UIS

2022-04-26 15:24:03

开源框架

2010-07-15 16:42:32

数据库引擎

2011-11-10 09:43:14

ZigBee协议栈网络层

2016-02-16 13:21:33

2024-01-18 17:43:47

2021-10-08 08:58:35

MySQL函数脱敏

2011-12-07 15:55:33

面孔网Julia跨平台开发

2020-03-18 13:21:50

人工智能机器学习技术

2009-11-11 10:27:11

IP路由器

2009-07-02 15:42:46

JSP系统开发

2020-09-01 13:30:03

人工智能机器学习技术

2013-05-23 10:58:38

三层交换机vlanvlan通信

2020-07-08 16:46:46

人工智能病毒技术

2019-12-16 14:53:44

机器学习人工智能计算机

2013-07-10 10:24:10

2015-11-11 14:01:26

微软开源分布式

2019-03-15 15:00:49

Webpack构建速度前端

2017-06-01 15:02:17

2012-03-19 10:43:39

ibmdw
点赞
收藏

51CTO技术栈公众号