矩阵求导与神经网络反向传播

矩阵求导

关于矩阵求导,其实严格意义上来说仅仅只是一种求导的矩阵表示形式,其本质还是和普通多元函数求导过程是一致的。将矩阵的各个元素拆分开来,将矩阵运算写成各个元素之间的运算,矩阵变换可以变成多元函数,这样矩阵求导过程就可以与多元函数求导过程联系起来了。要理解矩阵求导运算,最主要的其实是理解矩阵导数的表示,将矩阵导数的拆分形式与多元函数求导联系起来。
本文主要参考《Matrix cookbook》和wiki上面的内容,下面简单介绍一下矩阵求导的相关内容,为后面介绍前馈神经网络FNN的反向传播过程做铺垫。

矩阵求导的表示形式之一:值函数对向量/矩阵变量的导数

下面表达式中, y y 表示一个实值函数, x 表示一个向量变量,那么他们的矩阵求导含义为:

yx=yx1yx2yxn ∂ y ∂ x = [ ∂ y ∂ x 1 ∂ y ∂ x 2 ⋯ ∂ y ∂ x n ]

y y 表示一个实值函数, X 表示一个矩阵变量:
yX=yx11yx21yxp1yx12yx22yxp2yx1qyx2qyxpq ∂ y ∂ X = [ ∂ y ∂ x 11 ∂ y ∂ x 12 ⋯ ∂ y ∂ x 1 q ∂ y ∂ x 21 ∂ y ∂ x 22 ⋯ ∂ y ∂ x 2 q ⋯ ⋯ ⋯ ⋯ ∂ y ∂ x p 1 ∂ y ∂ x p 2 ⋯ ∂ y ∂ x p q ]

上面给出了矩阵求导的表示形式的具体含义,很容易理解。下面给出几个例子, a a 是实数, β x x 是向量, A A B B C C 是与 x x 无关的矩阵:
βTxx=β ∂ β T x ∂ x = β

xTxx=x ∂ x T x ∂ x = x

xTAxx=(A+AT)x ∂ x T A x ∂ x = ( A + A T ) x

如果你能发现这三个式子左边的分子都是一个数,分母都是一个向量,那么你应该很容易理解这几个等式。是在不能理解就自己把左右两边的矩阵运算拆分开来,然后使用多元函数求导的过程将左右两边分别表示出来就行了。以第一个为例:
βTx=i=1nβixi β T x = ∑ i = 1 n β i x i

βTxx=βTxx1βTxx2βTxxn=ni=1βixix1ni=1βixix2ni=1βixixn=β1β2βn=β ∂ β T x ∂ x = [ ∂ β T x ∂ x 1 ∂ β T x ∂ x 2 ⋯ ∂ β T x ∂ x n ] = [ ∂ ∑ i = 1 n β i x i ∂ x 1 ∂ ∑ i = 1 n β i x i ∂ x 2 ⋯ ∂ ∑ i = 1 n β i x i ∂ x n ] = [ β 1 β 2 ⋯ β n ] = β

这样就能很清楚的理解矩阵矩阵求导的表示形式的具体含义了。

矩阵求导的表示形式之二:向量函数对值/向量/矩阵变量的导数

下面表达式中, y y 表示一个向量函数, x x 表示一个值变量,那么他们的矩阵求导含义为:

y x = [ y 1 x y 2 x y n x ]

接下来是向量函数 y y 对向量变量 x x 的导数含义为:

yx=y1x1y2x2ymxny1x2y2x2ymx2y1xny2xnymxn ∂ y ∂ x = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ⋯ ∂ y 1 ∂ x n ∂ y 2 ∂ x 2 ∂ y 2 ∂ x 2 ⋯ ∂ y 2 ∂ x n ⋯ ⋯ ⋯ ⋯ ∂ y m ∂ x n ∂ y m ∂ x 2 ⋯ ∂ y m ∂ x n ]

以一个最为简单的例子为例:
y=Wx y = W x

那么:
yx=W ∂ y ∂ x = W

最后向量函数 y y 对矩阵变量 W W 的导数是一个张量,具体形状为:
yW=y1W11y1W21y1Wm1
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值