美文网首页CS224笔记
2018-05-06-CS224补充知识-矩阵求导

2018-05-06-CS224补充知识-矩阵求导

作者: 社交达人叔本华 | 来源:发表于2018-05-06 19:30 被阅读0次

1.Introduction

 线性代数在机器学习以及深度学习中扮演着重要的角色,涉及到向量的运算,矩阵的运算,特征值特征向量的求解等.在这里对于这些基础知识不再赘述,本文的重点在于矩阵的求导.本文主要参考吴恩达CS229课程的补充材料.

2.Gradient

 假设存在函数 f : R m×n → R 以一个m×n的矩阵作为输入,以实数值作为函数的输出,那么这个函数的关于矩阵A的梯度可以表示为

image.png
 也可以表示成下面这种形式
image.png
 可以很容易看出,梯度的维度是和被求导矩阵的维度是一致的.因此,针对向量的特殊情况,就有如下表达式:
image.png
 需要注意的一点是,上述性质只试用于函数是实值函数的情况,如果函数的值是向量或者矩阵,则不存在上述的性质.
 此外,矩阵的梯度仍然具有下列两个性质:
image.png

 现在,我们需要讨论一个在出现矩阵梯度时不可避免的问题:符号的歧义.理论上讲,梯度只是多元函数在求偏导数的一个很自然的扩展应用.然而,在实际操作时我们经常会遇到符号歧义的情况.举例来说,矩阵A ∈ R m×n 是一个固定系数的矩阵,向量b∈ Rm是一个固定系数的向量,函数 f : Rm → R 是一个输入为m维向量的实值函数.f的具体定义为: f (z) = zTz, 所以对应的梯度是∇ z f (z) = 2z.至此都没有什么问题,但是考虑如下表达式:

image.png
 我们该怎样理解这样一个表达式,最起码可以有两种理解方式:
 1.参考前文所写,输入是向量,结果是实值,梯度是∇ z f (z) = 2z,则有
image.png
 2.如果把这个函数看做是x的函数,那么梯度求导就应是针对x的求导,A应该看作是常数,梯度结果就应该是
image.png
 我们能够看出,问题主要在于针对谁在求梯度,所以在表示梯度的时候最好使用下表对梯度的求导对象进行标注.

3.Hessian

假设函数 f : Rn → R 是输入为n维的向量,输出为实值的函数,那么关于向量x的Hessian矩阵可以写作,∇ 2x f (x) 或者简单的表示为H,具体的形式如下
matrix of partial derivatives,

image.png
 Hessian可以看做是二阶导,Gradient可以看做是一阶导数.

4.Useful deductions

1.Linear Algebra Properties

image.png
image.png

2.Matrix Derivatives


image.png
image.png
image.png
image.png
image.png image.png

5 矩阵求导术

  本部分主要参考这篇博客,写的可以说是非常棒啦.核心思想是下面这个公式

image.png
  所有的矩阵求导的计算都可以利用这样一个公式和微分建立起联系,这个公式直观上也是很好理解的,即全微分等于偏微分之和,然后使用矩阵的迹的方法改写形式(迹具有很多可以利用的属性,改写成这种形式有助于后面的计算).包括连式法则,也都是凑出这个形式之后可以对应的写出偏导数的形式.
  下面给出一些常用的公式:
  1.加减法
image.png
  2.乘法
image.png
  3.转置
image.png
  4.迹
image.png
  5.逆
image.png
  6.行列式(第二个公式仅可逆时成立)
image.png
image.png
  7.逐元素相乘
image.png
  8.逐元素函数
image.png
  9.迹套给常数
image.png
  10.转置
image.png

  11.线性


image.png

  12.乘法交换


image.png

  13.矩阵乘法/逐元素乘法交换


image.png

6 examples

image.png
image.png
image.png

  看到这里需要多说两句,本文的存在就是因为在计算softmax权重矩阵时遇到了障碍,才对矩阵求导进行了更为深入的理解;甚至在学习了这种方法之后还是没能够给出正确的答案.错误点在于,我的解法是严格按照连式法则,一步一步的求导;而答案的解法则是先带入中间表达式,化简形式之后再求导;这本来是一样的,只不过是计算难度上的差距.却在计算的过程中给我造成了很大的困扰.关键的的错误点在于,softmax函数并不是一个逐元素函数(仔细看分母),不能应用逐元素函数求微分的法则.


image.png
image.png

相关文章

  • 2018-05-06-CS224补充知识-矩阵求导

    1.Introduction  线性代数在机器学习以及深度学习中扮演着重要的角色,涉及到向量的运算,矩阵的运算,特...

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

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

  • 矩阵求导

    深度学习-矩阵求导的坑闲话矩阵求导

  • 矩阵的导数运算

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

  • 矩阵

    几个常用矩阵求导 矩阵求导矩阵求逆矩阵和行列式特征方程和特征根

  • 数学基础

    奇异值分解矩阵求导_知乎1矩阵求导_知乎2

  • 矩阵求导与最小二乘法

    一、矩阵求导 矩阵求导就是对内部每一项求导 , 矩阵的迹有如下性质: 因而可推出如下性质:设 ,相当于分别对和取偏...

  • 矩阵求导

  • 矩阵求导

    多元函数导数 基本概念: 一阶导:梯度向量的概念 二阶导:Hessian矩阵 Hf 如果光滑性好,可以交换偏导的顺...

  • 矩阵求导

网友评论

    本文标题:2018-05-06-CS224补充知识-矩阵求导

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