原文题目:Mike Innes, Alan Edelman, Keno Fischer, Chris Rackauckus, Elliot Saba, Viral B Shah, Will Tebbutt
摘要:科学计算越来越多地将机器学习的进步和处理大量数据的能力结合起来。同时,机器学习模型变得越来越复杂,并显示出许多在科学计算中经常看到的特征,强调机器学习框架的能力。正如科学计算和机器学习的学科以数值线性代数的形式共享共同的底层基础结构一样,我们现在有机会以可微编程的形式进一步共享新的计算基础结构,从而分享新的思想。我们描述Zygote,一个能够接受一般程序结构梯度的可微编程系统。我们用Julia语言实现了这个系统。我们的系统支持几乎所有的语言结构(控制流、递归、变异等)。并在不需要任何用户干预或重构的情况下编译高性能代码来进行计算。这为深入学习提供了一个有表现力的编程模型,但更重要的是,它使我们能够以一种简单的方式将大量的库生态系统集成到我们的模型中。我们讨论了我们的自动微分方法,包括它对混合模式、复杂和校验点微分等先进技术的支持,并给出了几个微分程序的例子。
原文地址:https://arxiv.org/abs/1907.07587
作者:Mike Innes, Alan Edelman, Keno Fischer, Chris Rackauckus, Elliot Saba, Viral B Shah, Will Tebbutt
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。