用于深度学习的矩阵微积分

深度学习需要的矩阵微积分

动机

近日在学习cs231n的向量化梯度求法时候,无法理解利用雅克比行列式求梯度,于是补充大学关于各种数据类型微积分的知识。

目的

学习深度学习需要的矩阵微积分知识,达到能理解Tensorflow中对于向量化梯度具体代码求解过程。

内容

  • 介绍

  • 回顾标量求导规则

  • 向量微积分和偏导数

  • 矩阵微积分

 

介绍

我们已经在学校中接触过微积分,但是导数是机器学习中一个重要的概念,尤其在深度学习网络,用于训练优化损失函数。当我们拿起一篇机器学习论文或者类似PyTorch的库文档,微积分就像节假日里从远方归来的亲戚一般,回到你的身旁。我们探讨的并不仅仅是那种老式的需要被淘汰的标量---你需要不同的矩阵微积分,线性代数和线性微积分的组合。

回顾标量求导规则

向量微积分和偏导数

参见多元复合函数求导,都是大学学过知识,不多讲。

矩阵微积分

这一块是我主要薄弱的地方,当我们将从一个函数求导转到多个函数求导,我们就是从向量微积分的世界转向了矩阵微积分的世界。举例,假设有两个函数,每一个由两个参数,

\frac{\partial g(x,y))}{\partial x}=\frac{\partial 2x}{\partial x}+\frac{\partial y^{8}}{\partial x}=2\frac{\partial x}{\partial x}+0=2

并且

\frac{\partial g(x,y))}{\partial y}=\frac{\partial 2x}{\partial y}+\frac{\partial y^8}{\partial y}=0+8y^7

\bigtriangledown g(x,y)=[2,8y^7]

同样方法求出\bigtriangledown [6yx, 3x^2]

我们通过堆叠梯度将梯度组成一个矩阵。当我们这样做,我们得到雅克比矩阵the Jacobian matrix

雅克比行列式的泛化

                

雅克比行列式(分子分布将每个函数的偏导数携程一行,坟墓分布将所有的偏导数写成一列)

假设相同函数f(x)=x,f(x_{}i)=x_{}i,由n个函数,每个函数由n个参数在一个向量x中。则其雅克比行列式为

更多信息

参考

猜你喜欢

转载自blog.csdn.net/tianzhiya121/article/details/89876092