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

矩阵求导——只需要记住这个诀窍矩阵求导 只需要记住这个诀窍 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下chmod +x的意思?为什么要进行chmod +x

    linux下chmod +x的意思?为什么要进行chmod +x上周在工作中接触到chmod+x这个命令,如下图:首先对start.sh这个启动文件删除,然后使用rz命令上传了新的start.sh,然后发现还有进行下一步,chmod+xstart.sh这一步是什么意思呢?经过上网查询(说的比较复杂,引申太多)和咨询我们研发(还是研发说的通俗易懂)chmod+x的意思就是给执行权限LINUX下不同的文件类型有不同的颜色,这里…

    2022年7月12日
    36
  • stun信令「建议收藏」

    stun信令「建议收藏」#1.简介stun协议本身是用来进行NAT穿透使用,其本身实际上是NAT内部设备获取外部IP地址的一种协议。STUN协议在RFC上目前经过三种演变,其中RFC3489上定义的STUN和之后的RFC5389和8489上定义的stun在概念上存在明显区分:RFC3489定义:SimpleTraversalofUserDatagramProtocol(UDP)ThroughNetworkAddressTranslators(NATs)(STUN)RFC5389和RFC8489:Se

    2022年7月17日
    22
  • linux用yum安装jdk或yum组安装jdk只有java命令没有javac命令

    linux用yum安装jdk或yum组安装jdk只有java命令没有javac命令解决linux上使用yum安装jdk导致有java命令没有javac命令的问题

    2022年5月27日
    40
  • Web开发 Cs和Bs架构

    Web开发 Cs和Bs架构CS架构:是指客户端与服务器举个例子:qq.exe文件在电脑上安装就可以看做是一个客户端,而数据就是从服务器发送过来的,优点在于,安全性能相对而言较高,缺点在于,对于不同的操作系统需要开发出不同版本的软件BS架构:是指游览器与服务器比如说qq.com可以在浏览器中直接访问优点在于,具有可移植性缺点在于,安全性能相对较低,以及与电脑自身的网速有关…

    2025年10月10日
    3
  • 圆桌排列组合问题_圆桌相邻概率

    圆桌排列组合问题_圆桌相邻概率假设有来自 m 个不同单位的代表参加一次国际会议。每个单位的代表数分别为 ri(i=1,2,…,m)。会议餐厅共有 n 张餐桌,每张餐桌可容纳 ci(i=1,2,…,n) 个代表就餐。为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法,给出满足要求的代表就餐方案。输入格式第 1 行有 2 个正整数 m 和 n,m 表示单位数,n 表示餐桌数。第 2 行有 m 个正整数,分别表示每个单位的代表数 ri。第 3 行有 n 个正整数,分别表示每个餐桌的容量 ci。输

    2022年8月9日
    9
  • 大数据数仓建模

    大数据数仓建模        大数据项目之电商数仓(用户行为数据采集)数据仓库简介      1.什么是数据库?    数据库(database)是按照数据结构来组织,存储和管理数据的建立在计算机存储设备上的仓库。    数据库是长期存储在计算机内,有组织的,可共享的数据集合。数据库中的数据指的是以一定的数据模型组织,描述和存储在一起,具有尽可能小的冗余度,较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。    常用的数据库有mysql,oracle,sqlserver等。作用不一样,数据库是

    2022年5月7日
    50

发表回复

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

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