引言
线性代数和高等数学在几乎所有学校的计算机相关专业都会开设。然而,将两者结合起来的对向量进行微分的相关知识却少有课程涉及。本文的目的是提供 在机器学习领域必要的向量微分相关的内容 。
关于这部分内容,这篇文章 提供了很好的入门教程,事实上本文也是作为这篇文章的笔记而诞生的。此外,这篇文章 是一篇很好的进阶教程。
在本文中,若无特殊说明,则所以的向量都是 列向量 。
向量微分的结果
设有一个向量到向量的函数 ,它把一个 维向量变为一个 维向量。设 ,我们定义对它微分的结果是一个 矩阵:
这个矩阵被称为 雅可比矩阵 。之所以这样定义,是因为我们希望微分在向量上的扩展有与标量微分中相似的性质,即 。如果用 来表示这个矩阵的第 行,根据全微分法则很容易知道 。
雅可比矩阵是导数在向量微分上的推广。
向量微分链式法则
和标量微分一样,向量微分也有链式法则。向量微分的链式法则和标量下的链式法则类似:
这里的 和 都是矩阵,它们的相乘代表矩阵相乘。这个结论可以通过展开矩阵乘法后应用标量下的链式法则得到。
类似的,还可以得到向量的全微分法则:设 ,其中每一个 都是 的函数,那么:
向量微分基础结论
向量间的运算
设 是一个应用于两个向量的 逐元素 (element-wise)运算符,逐元素
意味着对于两个向量 和 , 的结果只和 与 有关。最常见的逐元素运算符包括向量加法,向量减法以及向量的Hadamard积(即逐元素乘法)。
设 和 是两个 维向量,那么 可以写成下面的形式:
其中 是完全的标量运算。如果其中一者是变量,另外一个是常量,那么对这个式子求导的雅可比矩阵就是一个 方阵。由于 是逐元素的,因此结果只在对角线上有非 值,所以这是一个对角矩阵。
基于此,可以导出以下几个基本的结论:
设 和 都是 维向量,其中 是变量, 是常量,那么:
- ,这里的 代表对角线为 的对角矩阵
将常量标量乘上 可以看成是第二个结论,因为可以将这个标量看成是 这个向量。
设 和 是 维向量 的两个 维向量值函数,他们的逐元素乘法的结果仍然是 维的,因此 的雅可比矩阵是 的:
向量内积
设 和 是 维向量 的两个 维向量值函数,那么他们的内积是一个实数。我们把这个实数看成是一个一维向量,因此求导的结果就是一个 的雅可比矩阵:
其中 ,因此:
而 ,因此原来的式子可以写成:
这个结论的一个特例是 与自身的内积:
向量与矩阵的运算
设 是一个 的常量矩阵, 是一个 维向量,那么:
逐元素的加与乘
设 和 是 维向量,并且都是 的函数,那么:
- ,这里的 代表逐元素乘法,而非内积。
Comments NOTHING