svpwm的原理及法则推导和控制算法详解_深度学习中的参数梯度推导(一)下篇...

必备的数学知识

矩阵微分与求导

前言

《深度学习中的参数梯度推导(一)上篇》中,我们总结了各常见(向量对矩阵,矩阵对向量)的导数定义。我们还学习了矩阵微分和矩阵导数的关系,以及一些常见的矩阵微分性质。在本篇(下篇)将介绍矩阵导数中的链式法则以及专门针对标量对矩阵/向量求导的核心方法-迹技巧。最后,我们简单演习一下如何用矩阵求导来得到神经网络中的参数的梯度。

注意:

  • 本系列默认读者已具备梯度,导数,梯度下降等基础的数学概念

  • 本系列默认读者已具备基本的线性代数知识

1.6

标量对矩阵/向量的导数求解套路-迹技巧

60de8633e5d2453b9d05837da0007269.png

在实际演练之前还有一个必用的套路需要介绍,在求标量对矩阵/向量的导数的时候非常有用,叫迹技巧。后面通过小demo就知道它为什么是必要的了。这里先列举出迹的一些性质(全部都很有用):

fe49897e2fba306e634ec0eb2436faf0.png 6b7f48da3c5bb705e7da3c45a0831e5f.png f1f21ffa8a45ec0048ba5a74adf9f2b3.png c12f0a9504f4c3a2d010c0f08d3c1861.png

微分法求导套路小结:

使用矩阵微分,可以不对向量或矩阵中的某一元素单独求导再拼接,因此会比较方便,当然熟练使用的前提是对上面矩阵微分的性质,以及迹函数的性质牢记于心。还有一些场景,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。如果我们可以利用一些常用的简单求导结果,再使用链式求导法则,则会非常的方便。因此下一小节我们讨论向量矩阵求导的链式法则。

1.7

向量微分与向量对向量求导的关系

8020879ee7369e680f458142021c9dc5.png ff03e0e611aff2d7fcf71233697d0cf8.png

有了公式(1.2)和(1.3)能做什么?能做非常有用的事情,那就是通过写一个全微分公式,配合一些简单的矩阵微分的性质(后面有说),我们就能得到标量(神经网络的loss)对矩阵(参数矩阵)的微分了。

1.8

矩阵向量求导链式法则

矩阵向量求导链式法则很多时候可以帮我们快速求出导数结果,但它跟标量对标量求导的链式法则不完全相同,所以需要单独讨论。

1.8.1 向量对向量求导的链式法则

60e7af75f830f98a73213a246f3b66f3.png

1.8.2 标量对多个向量的链式求导法则

ca950ebd4f956fc81e4207e855773775.png

1.8.3标量对多个矩阵的链式求导法则(证略)

6419c9b0c6f1348f2aa878053b6784c9.png

这里大家会发现我们没有给出基于矩阵整体的链式求导法则,主要原因是矩阵对矩阵的求导是比较复杂的定义,我们目前也未涉及。因此只能给出对矩阵中一个标量的链式求导方法。这个方法并不实用,因为我们并不想每次都基于定义法来求导最后再去排列求导结果。

以实用为主的话,其实没必要对这部分深入研究下去,只需要记住一些实用的情况就行了,而且非常好记忆:

我们也可以称以下结论为“标量对线性变换的导数”

总结下就是:

910b786c5d6065de39733694e621db79.png

1.9

用矩阵求导来求解机器学习上的参数梯度

神经网络的求导术是学术史上的重要成果,还有个专门的名字叫做BP算法,我相信如今很多人在初次推导BP算法时也会颇费一番脑筋,事实上使用矩阵求导术来推导并不复杂。为简化起见,我们推导二层神经网络的BP算法。后面还会相继系统地介绍如何推导FNN,CNN,RNN和LSTM的参数求导。

我们运用上面学过的所有知识,来求分析一个二层神经网络的loss对各层参数的梯度。以经典的 MNIST 手写数字分类问题为例,这个二层神经网络输入图片拉伸成的向量x,然后输出一个概率向量y。用交叉熵作为loss函数可以得下面计算公式:

d0d9843f9cc611a45347c0bc01cec05e.png 6edebd34cd015fef12f9da4b755ca434.png 1b62ef2299aa52c3cc14951967528ebb.png 2f04c7ff82e03c87e2a595c5af92a820.png a0aeb99f9f56110a0ad7eb79f4927d81.png 257f9a68c12905a4fe3e69939a47f9b6.png

-------推广-------

d3d6af8b09cfdfbffab9df7facca0b87.png

参考资料

  • https://www.cnblogs.com/pinard/category/894690.html

  • https://zhuanlan.zhihu.com/p/24709748

  • https://github.com/soloice/Matrix_Derivatives

深度学习

TO BE CONTINUED

数学

文章作者: 中国电信研究院 | 刘心唯

文章内容系作者个人观点,不代表融智未来公众号的观点或立场。

往期 · 推荐

● 深度学习中的参数梯度推导(一)上篇

● 精品连载|“深度学习与计算机视觉”学习笔记——历史篇

● 精品连载|“深度学习与计算机视觉”学习笔记——原理篇

● 精品连载|“深度学习与计算机视觉”学习笔记——应用篇

ec73500f6ca15364565675f48fc51013.png fd8205fda05cf2b0ac66f2f2193aedf7.gif

你们点点“分享”,给我充点儿电吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值