Automatic differentiation (autodiff) has revolutionized machine learning. It allows expressing complex computations by composing elementary ones in creative ways and removes the burden of computing their derivatives by hand. More recently, differentiation of optimization problem solutions has attracted widespread attention with applications such as optimization layers, and in bi-level problems such as hyper-parameter optimization and meta-learning. However, so far, implicit differentiation remained difficult to use for practitioners, as it often required case-by-case tedious mathematical derivations and implementations. In this paper, we propose a unified, efficient and modular approach for implicit differentiation of optimization problems. In our approach, the user defines directly in Python a function $F$ capturing the optimality conditions of the problem to be differentiated. Once this is done, we leverage autodiff of $F$ and implicit differentiation to automatically differentiate the optimization problem. Our approach thus combines the benefits of implicit differentiation and autodiff. It is efficient as it can be added on top of any state-of-the-art solver and modular as the optimality condition specification is decoupled from the implicit differentiation mechanism. We show that seemingly simple principles allow to recover many exiting implicit differentiation methods and create new ones easily. We demonstrate the ease of formulating and solving bi-level optimization problems using our framework. We also showcase an application to the sensitivity analysis of molecular dynamics.


翻译:自动差异( autodiff) 使机器学习发生了革命性的变化。 它允许通过以创造性方式将基本数据以创造性方式组合成初级数据来表达复杂的计算方法,并消除手工计算衍生物的负担。 最近, 优化问题解决方案的区别吸引了优化层等应用程序的广泛关注, 以及超参数优化和元化学习等双层问题的广泛关注。 但是, 到目前为止, 隐含差异仍然难以用于从业人员, 因为它常常需要逐个案例地重复数学衍生和实施。 在本文件中, 我们建议了一种统一、 高效和模块化的方法, 以隐含优化问题的区分。 在我们的方法中, 用户直接在 Python 中定义了一个功能 $F$, 以捕捉问题的最佳条件加以区别。 一旦这样做, 我们便利用 $F的自动化和隐含差异来自动区分优化问题。 因此, 我们的方法将隐含的区分和自动化的好处结合起来。 高效地因为它可以添加在任何状态的解析和模块上, 因为最佳性条件的规格要求与隐含的区别机制脱下。 我们展示了隐含的精确度的精确度, 我们展示了一种简单的精确的分类分析, 以恢复了我们演示式的模型的演示式分析。

0
下载
关闭预览

相关内容

【干货书】数值Python计算,Numerical Python,709页pdf
专知会员服务
110+阅读 · 2021年5月30日
专知会员服务
22+阅读 · 2021年4月10日
【MIT干货书】机器学习算法视角,126页pdf
专知会员服务
77+阅读 · 2021年1月25日
Fariz Darari简明《博弈论Game Theory》介绍,35页ppt
专知会员服务
109+阅读 · 2020年5月15日
【新书】Python编程基础,669页pdf
专知会员服务
192+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
Hierarchically Structured Meta-learning
CreateAMind
24+阅读 · 2019年5月22日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
视觉机械臂 visual-pushing-grasping
CreateAMind
3+阅读 · 2018年5月25日
条件GAN重大改进!cGANs with Projection Discriminator
CreateAMind
8+阅读 · 2018年2月7日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Arxiv
0+阅读 · 2021年11月30日
Arxiv
0+阅读 · 2021年11月29日
Arxiv
7+阅读 · 2020年6月29日
Arxiv
6+阅读 · 2018年10月3日
VIP会员
相关VIP内容
【干货书】数值Python计算,Numerical Python,709页pdf
专知会员服务
110+阅读 · 2021年5月30日
专知会员服务
22+阅读 · 2021年4月10日
【MIT干货书】机器学习算法视角,126页pdf
专知会员服务
77+阅读 · 2021年1月25日
Fariz Darari简明《博弈论Game Theory》介绍,35页ppt
专知会员服务
109+阅读 · 2020年5月15日
【新书】Python编程基础,669页pdf
专知会员服务
192+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
相关资讯
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
Hierarchically Structured Meta-learning
CreateAMind
24+阅读 · 2019年5月22日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
视觉机械臂 visual-pushing-grasping
CreateAMind
3+阅读 · 2018年5月25日
条件GAN重大改进!cGANs with Projection Discriminator
CreateAMind
8+阅读 · 2018年2月7日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员