Julia Computing 和 MIT 引入可微编程系统,连接人工智能和科学计算
科学计算,是使用计算模型来解决科学和工程问题,它近年来从人工智能机器学习技术的迅速发展中获益良多。现在,研究人员正在探索连接这两个世界的方法。
Julia Computing & MIT 的一个研究小组提出,广泛的科学计算和机器学习领域都需要在其底层结构上支持线性代数。该团队引入了一种新的可微编程(∂P)形式的计算基础结构,它可以计算模型梯度,并将自动微分集成到语言中作为一种一流的特性。程序员可以直接用 Julia 编程语言和 microProgramming 编写模型。
该系统几乎支持所有的编程语言(Python,R,Julia 等),并能构造和编译高性能代码,而不需要任何用户干预或重构来进行计算。这使程序员能够使用现有的 Julia 科学计算包构建深度学习模型,并有效地实现梯度计算。
可微编程是一种编程范式,其中程序可以完全区分。基于提供的数据集,神经网络自动学习从输入数据 X 到最终操作结果 Y (都是整个程序)的映射;或者结合程序员提供的高级代码,神经网络作为中间函数来完成整个程序。
Facebook 首席人工智能科学家 Yann LeCun 对可微编程的使用发表了评论:
人们现在正在通过组装参数化功能块网络,并通过使用某种形式的基于梯度的优化,从实例中训练它们,从而构建一种新的软件。
作为机器学习和科学计算学科共同共享基础设施的基础,这种可微的编程系统通过使用相同的技术来区分两个领域中的程序,允许新的应用程序将各个领域结合起来。研究人员展示了与现有的 ML 框架相同的性能,用于深度学习模型(在 CPU、GPU 和 TPU 上)和增强学习。可微编程也可以扩展到其他科学计算领域,例如神经 SDE 和量子机器学习。
论文 ∂P:在 ARXV 上完成的桥梁机械学习与科学计算的可差异编程系统