当涉及到采样时,pytorch autograd如何工作

7xzttuei  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(82)

我有一个简单的NN,其输出连接到分类分布。该分布在训练期间被多次采样。损失函数使用这些样本来计算损失。在这种情况下,自动驾驶仪还能工作吗?我试图理解在这种情况下,当涉及到采样时,会为损失函数创建什么样的计算图。

x6yk4ghg

x6yk4ghg1#

让我们来看看SGD步骤:

这里,$\theta$表示神经网络的参数,$\eta$是步长。$\omega$表示数据集中的一个示例,D是这些示例的分布。注意L(.,.)是损失函数。
我们对梯度的期望值感兴趣的事实是术语“随机”的来源,并且由于我们不知道分布D,因此除了在实践中对该梯度进行样本估计之外,我们没有其他选择。
TL;DR
自动反向模式微分(https://en.wikipedia.org/wiki/Automatic_differentiation)发生在我们在神经网络中传播的每个示例。因此,获得特定示例的梯度不是随机的。当小批量完成时,i.即,我们有梯度的几个样本值,我们通过取平均值对其期望值进行样本估计。只有这样,参数才会使用SGD更新。

相关问题