矩阵求导——只需要记住这个诀窍

矩阵求导——只需要记住这个诀窍矩阵求导 只需要记住这个诀窍 1 背景 2 正文开始 2 1 矩阵对矩阵的求导 1 背景 最近开始入门 ml amp amp dl amp amp nn 第一个问题就是解决我的数学饥荒问题 还好所看教材书后有干货数学知识 优化了学习的进程 这里打个广告 所看教材为复旦的邱锡鹏老师编纂的 神经网络与深度学习 想看的同学可以微信搜索公众号 CVer 找历史推送下载 非利益相关 然后 本

1. 背景:

2. 正文开始

首先,按照博主的分类,所有的情况都可以暴力归结为以下三个问题:

  1. 矩阵矩阵求导
  2. 行向量列向量的求导
  3. 元素元素的求导

当然大家可以有自己的记忆法则和分类,这里我只介绍我觉得好使的方法

2.1 矩阵对矩阵的求导

为什么一上来就讲这么复杂的问题呢?相必大家在学习的时候有这样的体会,尤其是在学习一种模型的时候:总的来说有两种方法,即一般到特殊或特殊到一般,至于具体选择哪一个,就要看这个模型的特性了。例如对于已经学过线性代数的同学,反正国内大部分学校都是先讲矩阵再讲向量,但我们知道向量其实是可以视为 1 × n 1×n 1×n 或者 n × 1 n×1 n×1 的矩阵,它是一种特殊的矩阵。之所以先讲矩阵,是因为矩阵这个数学模型有非常良好的性质,这些性质方便学者们记忆并灵活使用。当学习完矩阵后,向量这个子类完全可以套用矩阵所具有的性质(在一定条件下),所以根据这种思路,我想直接讲矩阵的矩阵的求导

∂ Y ∂ X = [ ∂ y 1 T ∂ x 1 ⋯ ∂ y 1 T ∂ x q ⋮ ⋱ ⋮ ∂ y m T ∂ x 1 ⋯ ∂ y m T ∂ x q ] \frac{\partial {\bm{Y}}}{\partial{\bm{X}}} = \left[ \begin{matrix} \frac{\partial {\bm{y_1^T}}}{\partial{\bm{x_1}}} & \cdots & \frac{\partial {\bm{y_1^T}}}{\partial{\bm{x_q}}} \\ \vdots & \ddots & \vdots \\ \frac{\partial {\bm{y_m^T}}}{\partial{\bm{x_1}}} & \cdots & \frac{\partial {\bm{y_m^T}}}{\partial{\bm{x_q}}} \\ \end{matrix} \right] XY=x1y1Tx1ymTxqy1TxqymT

故,矩阵对矩阵求导,第一步就是要化成 m × q m×q m×q 的大矩阵,其中第 i i i 行第 j j j 列的元素为 ∂ y i T ∂ x j \frac{\partial {\bm{y_i^T}}}{\partial{\bm{x_j}}} xjyiT,可知这是一个行向量对一个列向量进行求导。

2.2 行向量对列向量的求导

2.3 元素对元素的求导

这个没有什么可说的了,就是微积分的知识。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232274.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac navicate激活码【2021免费激活】

    (mac navicate激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html41MD9IQHZL-eyJsa…

    2022年3月30日
    147
  • goland激活码最新_最新在线免费激活

    (goland激活码最新)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S3…

    2022年3月26日
    48
  • JSON入门

    JSON入门

    2022年3月13日
    63
  • python pycharm教程_Pycharm简单使用教程(入门小结)

    python pycharm教程_Pycharm简单使用教程(入门小结)1、下载pycharmpycharm是一种PythonIDE,能够帮助我们在编写代码时提高效率。网上提供的有专业版和教育版之分。专业版是收费的,功能更全面点。教育版或社区版是阉割版本,但它是免费的。2、pycharm的安装比较简单,官网下载备注:刚下载好的pycharm无法运行程序“Cannotstartprocess,theworkingdirectory…”,两种解决方法1.选择…

    2022年8月29日
    4
  • Java反射是什么?看这篇绝对会了![通俗易懂]

    Java反射是什么?看这篇绝对会了![通俗易懂].概念反射就是把Java的各种成分映射成相应的Java类。Class类的构造方法是private,由JVM创建。反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C或者C++中就没有办法在程序中获得函数定义相关的信息。(来自Sun)JavaBe

    2022年7月7日
    22
  • 创建Oracle数据库

    [root@localhost~]#su-oracle[oracle@localhost~]$sqlplus/nologSQL>conn/assysdba;SQL&gt

    2021年12月27日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号