1.矩阵求导
1个回答
展开全部
本节是自动求导框架技术的第一节,本系列其余文章包括
自动求导框架综述
2. 链式法则与计算图
3. 控制流与其实现思路
4. 自动求导框架的架构
5. 使用自动求导框架实现RNN
本节内容主要介绍矩阵求导的相关知识主要参考了知乎的 矩阵求导术 这系列文章。由于自动求导框架是建立在张量(tensor)运算上的,张量在这里理解为一种多维的矩阵,因此矩阵求导的概念是自动求导框架的基础。
矩阵求导是针对于参数是矩阵的函数,比如函数
其中X,Y,Z都是矩阵。矩阵求导可以看做是单一变量求导的推广,以上面的函数为例, Z 对 X 求导就是 Z 矩阵中的每个元素对 X 矩阵中的每个元素求导,然后做一下简单的合并。 假设矩阵 Z 是一个尺寸为 a×b 的矩阵,矩阵 X 是一个 c×d 的矩阵,矩阵 Z 对矩阵 X 的导数矩阵 G_zx 的求解分成了两步: 1.求导 2.合并 。在求导的时候矩阵G_zx是一个尺寸为 (ab) × (cd) 的二维矩阵,其中第 i 行中的第 j 个元素表示 Z 矩阵中的 i 号元素对 X 矩阵的 j 号元素进行求导,这样就把矩阵求导转化为了单个变量的求导过程:
观察上图中的 G_zx 矩阵,可知对于每一列而言实际上是 Z 矩阵中每个元素对于 X 矩阵的某个元素的导数,则 Z 矩阵整体对于 X 矩阵中某个元素的导数即是把 G_zx 在求导步骤的结果按行相加,得到 尺寸为1 × (cd) 的矩阵,表示 Z 矩阵整体对于 X 矩阵中的 cd 个元素分别求导的结果,这就是合并步骤需要做的事情:
上面介绍了矩阵之间的求导方法,这个方法可以较为容易的推广到多维矩阵——张量上。
下面采用矩阵乘法作为例子,回顾一下上述过程。这时候 X 矩阵是一个 2×2 的矩阵,Y 是一个 2×2 的矩阵,Z是一个 2×2 的矩阵,f 函数表示 X 矩阵和 Y 矩阵乘法。通过上述过程我们可以得到以下结果:
自动求导框架综述
2. 链式法则与计算图
3. 控制流与其实现思路
4. 自动求导框架的架构
5. 使用自动求导框架实现RNN
本节内容主要介绍矩阵求导的相关知识主要参考了知乎的 矩阵求导术 这系列文章。由于自动求导框架是建立在张量(tensor)运算上的,张量在这里理解为一种多维的矩阵,因此矩阵求导的概念是自动求导框架的基础。
矩阵求导是针对于参数是矩阵的函数,比如函数
其中X,Y,Z都是矩阵。矩阵求导可以看做是单一变量求导的推广,以上面的函数为例, Z 对 X 求导就是 Z 矩阵中的每个元素对 X 矩阵中的每个元素求导,然后做一下简单的合并。 假设矩阵 Z 是一个尺寸为 a×b 的矩阵,矩阵 X 是一个 c×d 的矩阵,矩阵 Z 对矩阵 X 的导数矩阵 G_zx 的求解分成了两步: 1.求导 2.合并 。在求导的时候矩阵G_zx是一个尺寸为 (ab) × (cd) 的二维矩阵,其中第 i 行中的第 j 个元素表示 Z 矩阵中的 i 号元素对 X 矩阵的 j 号元素进行求导,这样就把矩阵求导转化为了单个变量的求导过程:
观察上图中的 G_zx 矩阵,可知对于每一列而言实际上是 Z 矩阵中每个元素对于 X 矩阵的某个元素的导数,则 Z 矩阵整体对于 X 矩阵中某个元素的导数即是把 G_zx 在求导步骤的结果按行相加,得到 尺寸为1 × (cd) 的矩阵,表示 Z 矩阵整体对于 X 矩阵中的 cd 个元素分别求导的结果,这就是合并步骤需要做的事情:
上面介绍了矩阵之间的求导方法,这个方法可以较为容易的推广到多维矩阵——张量上。
下面采用矩阵乘法作为例子,回顾一下上述过程。这时候 X 矩阵是一个 2×2 的矩阵,Y 是一个 2×2 的矩阵,Z是一个 2×2 的矩阵,f 函数表示 X 矩阵和 Y 矩阵乘法。通过上述过程我们可以得到以下结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询