[cv231n] Derivatives, Backpropagation, and Vectorization

Derivatives, Backpropagation, and Vectorization 是李飞飞大牛学生Justin Johnson(注意断句),点击可以看他的个人主页发表的论文涉及了多个领域,博士期间在CVPR/ICCV/ECCV顶会上发表多达13篇论文。本文是他为cs231n课程撰写关于 Derivatives, Backpropagation, and Vectorization的notes。


1 Derivatives

1.1 Scalar Case

对于标量的导数我们已经很熟悉。给定一个函数 f ,导数定义为:

 导数是一种衡量变化的数。当输入x的变化时,函数f随着x变化的增量表示为

对于每一个符号表示,我们使用 \small \frac{\partial y}{\partial x} 表示y对于x的偏微分,同时也表示变化的速率在变量x和y之间:

链式法则告诉我们如何计算函数的导数。这里我们也能通过下列计算图表示出来:

这里的链式法则是:

这个等式使得下列的导数成立:

 

1.2 Gradient:Vector in,scalar out

对于f的导数,我们现在称之为梯度gradient,定义为:

现在梯度是一个向量,如果我们设置y=f(x),然后我们有关系:

\small \frac{\partial y}{\partial x}\small \triangle x乘积为点乘,即使把两个向量相乘得到一个标量。

接下来我们定义梯度\small \frac{\partial y}{\partial x}作为偏微分的向量形式:

 

1.3 Jacobian: Vector in, Vector out

假设函数\small f:\mathbb{R}^N\rightarrow \mathbb{R}^M给定一个输入,产生一个输出向量,那么f对于x的导数叫做Jacobian,也是\small M\times N大小的偏微分矩阵,写作:

像之前的增量,Jacobian同样告诉我们这样的增量表示:

链式法则也与之前的导数相同:

尽管每个式子都是一个矩阵,但是等式两边结果的矩阵大小都是相同的。

 

1.4 Generalized Jacobian: Tensor in, Tensor out

正如矢量是一维的数字列表,矩阵是二维的数字网格,张量是d维的数字网格。深度学习中的许多运算都接受张量作为输入,并产生张量作为输出。例如,图像通常表示为数字的三维网格,其中三维对应于图像的高度、宽度和颜色通道(红、绿、蓝)。因此,我们必须开发出一种与一般张量上的函数相容的导数。

假设,输入一个D维的张量,大小是,输出f也是一个D维的张量,大小是,这里的Jacobian称为generalized\ Jacobian

通过这种分组,我们可以将广义雅可比矩阵看作是一个矩阵的推广,其中每一行“与y的形状相同,每一列”的形状与x的形状相同。同样对其求偏导:

增量表示:

对于张量值函数,链式法则看起来也是一样的。假设y = f(x)和z = g(y),x和y上面的形状一样,z形状。链式法则和之前一样:

与上面定义的广义矩阵-向量乘法一样,广义矩阵-矩阵乘法遵循与传统矩阵-矩阵乘法相同的代数规则:

 

2 Backpropagation with Tensors

在神经网络环境中,层f通常是(张量)输入x和权值w的函数;该层的(张量)输出为y = f(x;w)。层f通常嵌入在具有标量损耗的大型神经网络中,通过链式规则有:

根据上一章Backpropagation的内容,我们继续使用实例验证:

在反向传播中,我们继续用L对y求微分:

现在我们的目标变成了如何得到L对x中每一个元素的微分:

根据链式法则,我们对其展开:

通过观察,两边的矩阵大小一致,所以我们继续对等式右边y对x中的每一个元素微分进行计算:

 再结合以上两个式子:

最终得到L对x的微分:

即使我们的最终结果,这让我们更搞笑计算L对x的微分,而不需要单独计算出y对x的雅可比矩阵。

关于第二部分的详细内容可参考Backpropagation for a Linear Layer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值