深度学习需要的矩阵微积分
动机
近日在学习cs231n的向量化梯度求法时候,无法理解利用雅克比行列式求梯度,于是补充大学关于各种数据类型微积分的知识。
目的
学习深度学习需要的矩阵微积分知识,达到能理解Tensorflow中对于向量化梯度具体代码求解过程。
内容
-
介绍
-
回顾标量求导规则
-
向量微积分和偏导数
-
矩阵微积分
介绍
我们已经在学校中接触过微积分,但是导数是机器学习中一个重要的概念,尤其在深度学习网络,用于训练优化损失函数。当我们拿起一篇机器学习论文或者类似PyTorch的库文档,微积分就像节假日里从远方归来的亲戚一般,回到你的身旁。我们探讨的并不仅仅是那种老式的需要被淘汰的标量---你需要不同的矩阵微积分,线性代数和线性微积分的组合。
回顾标量求导规则
向量微积分和偏导数
参见多元复合函数求导,都是大学学过知识,不多讲。
矩阵微积分
这一块是我主要薄弱的地方,当我们将从一个函数求导转到多个函数求导,我们就是从向量微积分的世界转向了矩阵微积分的世界。举例,假设有两个函数,每一个由两个参数,
并且
则
同样方法求出
我们通过堆叠梯度将梯度组成一个矩阵。当我们这样做,我们得到雅克比矩阵the Jacobian matrix。
雅克比行列式的泛化
雅克比行列式(分子分布将每个函数的偏导数携程一行,坟墓分布将所有的偏导数写成一列)
假设相同函数,,由n个函数,每个函数由n个参数在一个向量x中。则其雅克比行列式为
更多信息