AI科技评论消息:日前,Google Research Blog 推出开源 Python库“Tangent”。据介绍,这个库与现有的机器学习库相比,存在诸多优势,可以大大改善了用户的使用体验。
AI科技评论编译整理如下:
Tangent 是一个全新的免费开源 Python 库,可以用于自动微分。与其他现有的机器学习库相比,Tangent属于源到源(source-to-source)系统,可以用 Python f 函数调用新的 Python 函数,计算出 f 的梯度。对用户来说,这大大改善了梯度计算的可见性,更易于编辑和调试。当调试和设计机器学习模型时,Tangent 增加了许多新功能:
- 易于调试反向传递(backward pass)
- 快速进行梯度surgery
- 前向模式自动微分
- 高效的Hessian-vector product
- 代码优化
本文概述了Tangent API接口,包括如何使用Tangent 来生成易于解释、调试和修改的Python梯度代码。
在图像、视频、音频和文本机器学习模型中,神经网络(NNs)的出现带来了巨大的进步。其实在这些任务中,训练神经网络的基本概念已经存在30年了,我们通常称之为反向模式自动微分(reverse-mode automatic differentiation)或者反向传播(backpropagation)。它包括在神经网络中的两次传递:首先运行“前向传递(forward pass)”来计算每个节点的输出值,然后再运行“反向传递”来计算一系列的导数,从而确定如何更新权重,以提高模型的准确度。
在训练神经网络、研究新的架构的过程中,我们要能正确、高效、轻松地计算出导数值。此外,当模型还没训练好或者想要构建一些连自己都不太理解的新东西时,也要能够调试这些导数。自动微分也称为“autodiff”,是一种计算电脑程序导数(数学上的函数)的技术,几乎所有的机器学习库都会用到它。
现有的库通过跟踪程序的执行过程来实现自动微分(如 TF Eager, PyTorch 和 Autograd),或者通过构建动态数据流图来进行微分(如 TensorFlow)。与此相反, Tangent 可以通过 Python 源代码提前自动微分,还可以生成Python源代码作为输出。