学习|使用autograd来自动求导

2017 年 11 月 27 日 全球人工智能


——免费加入AI技术专家社群>>

——免费加入AI高管投资者群>>

——日薪5k-10k招兼职AI讲师>>

--全国招募1000名AI推广大使>>

在机器学习中,我们通常使用梯度下降(gradient descent)来更新模型参数从而求解。损失函数关于模型参数的梯度指向一个可以降低损失函数值的方向,我们不断地沿着梯度的方向更新模型从而最小化损失函数。虽然梯度计算比较直观,但对于复杂的模型,例如多达数十层的神经网络,手动计算梯度非常困难。


为此MXNet提供autograd包来自动化求导过程。虽然大部分的深度学习框架要求编译计算图来自动求导,mxnet.autograd可以对正常的命令式程序进行求导,它每次在后端实时创建计算图,从而可以立即得到梯度的计算方法。

下面让我们一步步介绍这个包。我们先导入autograd

In [1]:
import mxnet.ndarray as ndimport mxnet.autograd as ag

为变量附上梯度

假设我们想对函数