美文网首页
向量,矩阵,张量求导法则

向量,矩阵,张量求导法则

作者: 丰谷数 | 来源:发表于2019-04-04 10:16 被阅读0次

向量,矩阵,张量求导

参考:http://cs231n.stanford.edu/vecDerivs.pdf

向量对向量求导

如何对 y = Wx 求导?其中:

  • y: {C\times1}
  • W: {C\times D}
  • x: {D\times 1}

可以先通过计算一种特例,比如 \frac{\partial{y_7}}{\partial{x_3}} 来更好地理解, y_7 可以写成
y_7 = \sum_{j=1}^{D}W_{7,j} x_j =W_{7,1}x_1 + W_{7,2}x_2 + W_{7,3}x_3+\cdots
所以\frac{\partial{y_7}}{\partial{x_3}}=W_{7,3}。进而,\frac{\partial{y}}{\partial{x}} = W

PS: 标量对向量求导的维度为 1*n; 向量对标量求导的维度为 n*1;

向量对矩阵求导

y = xW, 如何求\frac{\partial{y}}{\partial{W}}?其中:

  • y: {1\times C}
  • W: {D\times C}
  • x: {1\times D}

依然先计算特例:\frac{\partial{y_3}}{\partial{W_{78}}}, 首先
y_3 = x_1 W_{13} + x_2W_{23} + \dots + x_D W_{D3}
所以可以看到\frac{\partial{y_3}}{\partial{W_{78}}}=0,进一步又发现
\frac{\partial{y_j}}{\partial{W_{ij}}} = x_i
于是令 F_{i,j,k}=\frac{\partial{y_i}}{\partial{W_{jk}}},有
F_{i,j,i} = x_j
张量 F 的其余项均为0,因此可以定义一个二维矩阵 G_{i,j} = F_{i,j,i} 来表示 \frac{\partial{y}}{\partial{W}}的结果。


PS:Representing the important part of derivative arrays in a compact way is critical to efficient implementations of neural networks.

矩阵对矩阵求导

Y=XW, 如何求\frac{\partial{Y_{a,b}}}{\partial{X_{c,d}}}?其中:

  • Y: {n\times C}
  • W: {D\times C}
  • x: {n\times D}

依然进行展开:
Y_{i,j} = \sum_{k=1}^D X_{i,k}W_{k,j}
于是有
\frac{\partial{Y_{i,j}}}{\partial{X_{i,k}}} = W_{k,j} \tag{1}
因此
\frac{\partial{Y_{a,b}}}{\partial{X_{c,d}}} = \begin{cases} W_{d,b}, \qquad \text{when}\ a=c\\ 0, \qquad \text{when}\ a\neq c \end{cases}
可以发现

  1. 实际上 \frac{\partial{Y_{a,b}}}{\partial{X_{c,d}}}所有的结果都包含在 W 中。
  2. \frac{\partial{Y_{i,j}}}{\partial{X_{i,k}}}X,Y 的行索引没有关系。
  3. In fact, the matrix W holds all of these partials as it is–we just have to remember to index into it according to Equation 1 to obtain the specific partial derivative that we want.

使用链式法则

y=Vm, 其中 m=Wx, 求 \frac{\partial{y}}{\partial{x}}?

依然先从特例开始:
\begin{aligned} \frac{\partial{y_i}}{\partial{x_j}} &= \frac{\partial{y_i}}{\partial{m}}\frac{\partial{m}}{\partial{x_j}} \\ &= \sum_{k=1}^M \frac{\partial{y_i}}{\partial{m_k}}\frac{\partial{m_k}}{\partial{x_j}} \\ &= \sum_{k=1}^M V_{i,k}W_{k,j} \\ &= V_{i,:}W_{:,j} \end{aligned}
因此
\frac{\partial{y}}{\partial{x}} = VW

总结

  1. 为了求得最终的导数结果,往往需要先求中间的结果,例如先求\frac{\partial{y_i}}{\partial{x_j}}, 再求\frac{\partial{y}}{\partial{x}}

相关文章

  • 向量,矩阵,张量求导法则

    向量,矩阵,张量求导向量对向量求导向量对矩阵求导矩阵对矩阵求导使用链式法则总结 向量,矩阵,张量求导 参考:htt...

  • 机器学习中的矩阵、向量求导

    写在前面 本文的目标读者是想快速掌握矩阵、向量求导法则的学习者,主要面向矩阵、向量求导在机器学习中的应用。因此,本...

  • 矩阵的导数运算

    1.矩阵对标量求导 相当于每个元素求导 2.矩阵对列向量求导 3.矩阵对矩阵求导 4.标量对列向量求导 5.标量对...

  • 公式推导公式表

    1)矩阵求导 ,这是分母布局, 查看下面表的 Numerator 即可 向量对向量求导 标量对向量求导 向量对标...

  • pyTorch 数据运算

    1.张量的简介 张量也可以称为多维矩阵。例如,标量: 为0维张量 向量:为1维张量 矩阵:为2维张量 .........

  • Pytorch1

    标量 向量 矩阵 张量 (n维数组) Tensor的创建 稀疏张量 点乘

  • 向量化与正则化,向量求导

    向量化与正则化 - CSDN博客 向量求导法则

  • 矩阵求导

    "前导不变后导转置向量"向量求导法则

  • 深度学习之线性代数

    标量、向量、矩阵和张量 转置(transpose)是矩阵的重要操作之一。 向量可以看做只有一列的矩阵。向量的转置可...

  • 矩阵向量求导

    本文整理自李建平机器学习中的矩阵向量求导系列和长躯鬼侠的矩阵求导术。 1. 符号说明 默认符号: :标量 : ...

网友评论

      本文标题:向量,矩阵,张量求导法则

      本文链接:https://www.haomeiwen.com/subject/lotfiqtx.html