动手深度学习笔记(五)2.5 自动微分
2. 预备知识
2.5. 自动微分
正如我们在 2.4节中所说的那样,求导是几乎所有深度学习优化算法的关键步骤。 虽然求导的计算很简单,只需要一些基本的微积分。 但对于复杂的模型,手工进行更新是一件很痛苦的事情(而且经常容易出错)。
深度学习框架通过自动计算导数,即自动微分(automatic differentiation)来加快求导。 实际中,根据我们设计的模型,系统会构建一个计算图(computational graph), 来跟踪计算是哪些数据通过哪些操作组合起来产生输出。 自动微分使系统能够随后反向传播梯度。 这里,反向传播(backpropagate)意味着跟踪整个计算图,填充关于每个参数的偏导数。
2.5.1. 一个简单的例子
作为一个演示例子,假设我们想对函数 y=2x⊤x 关于列向量 x 求导。 首先,我们创建变量x并为其分配一个初始值。
import torch
x = torch.arange(4.0)
x
输出: