1.2.7&1.2.8 【Deep Learning翻译系列】Derivatives with a Computation Graph 采用计算图计算微分

我说神经网络的计算是按正向传递或前向传播步骤组织的,我们计算神经网络的输出,然后是反向传递或反向传播步骤,我们用于计算梯度或计算导数。计算图解释了为什么它以这种方式组织。我们将通过一个例子说明计算图(比对数概率回归或完整的神经网络更简单的例子)。

假设我们正在尝试计算一个函数 J=3(a+bc) J = 3 ( a + b c ) ,我们令 u=bc u = b c v=a+u v = a + u J=3v J = 3 v ,并在计算图中绘制它们如下。
这里写图片描述
当有一些特殊的输出变量(例如在这种情况下为 J J )你想要优化时,计算图就派上用场了。在对数概率回归的情况下,J当然是我们试图最小化的成本函数。我们在这个小例子中看到的是,通过从左到右的传递,你可以计算出 J J 的值。

如果我们将v的数值稍微改变一下, J J 的值会如何变化?在这里,我们将v增加了0.001。最终的结果是 J J 增加了0.003。所以Jv=3。因为 J J 的增加是v的增加的3倍。

现在让我们看另一个例子。 Ja=? ∂ J ∂ a = ? ,换句话说,如果我们改变a的值,那么这对J的值有何影响?

在代码中,当你在你编写的代码中计算这个东西时,我们只是使用变量名dvar来表示 Jvar ∂ J ∂ v a r

从这个例子来看,利用计算图计算导数的关键点是,当计算微分时,最有效的方法是按照反向进行从右到左的计算。特别是,我们首先计算 Jv ∂ J ∂ v 。然后,这对于计算关于 Ja ∂ J ∂ a Ju ∂ J ∂ u 是有用的。再往下传播,这些对于计算关于 Jb ∂ J ∂ b Jc ∂ J ∂ c 也是有用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值