首页 > 其他分享 >Matrix Derivative矩阵求导

Matrix Derivative矩阵求导

时间:2023-01-18 10:34:41浏览次数:66  
标签:布局 layout Matrix 形式 矩阵 vector 求导 Derivative


​Welcome To My Blog​​​
学习机器学习算法时总碰见矩阵求导,现学习一波,主要总结下
注意:这里只涉及实数的求导,研究通信的人可能接触的往往是负数求导
矩阵可以写成列向量(column vectors)或行向量(row vectors)的形式,这两种不同的形式把矩阵求导分成了两种不同的情况

求导类型

Matrix Derivative矩阵求导_scala


表格列举了六种不同的矩阵求导类型,粗体代表向量或者矩阵(其实标量和向量也可以看作矩阵).

表格中还有三个空格没写出,实际上也是存在,但暂时先不讨论,因为这三种情况的求导结果大部分都是高于二阶的张量(tensor)形式,与常见的二维矩阵形式不同.

布局约定Layout conventions

机器学习中,以线性回归为例,每个输入都有多个属性,在表示属性时可以采用列向量或者行向量的形式,这两种形式会造成求导结果形式的不同.

注意是形式上的不同,因为本质上形式的不同不会影响求导结果,只不过将结果按照不同的方式组织起来,方便进一步运算

布局决定(Layout conventions)就是为了将不同形式的求导分类.分为两种布局:分子布局(numerator layout)和分母布局(denominator layout)

通俗解释,现规定向量或者矩阵分为原始形式和转置形式两种,比如在线性回归中我们把列向量作为属性值的原始形式,其转置形式就是行向量

+ 对于分子布局(numerator layout),求导结果中分子保持原始形式,分母为转置形式

+ 对于分母布局(denominator layout),求导结果中分子为转置形式,分母保持原始形式

下图展示各种类型求导与两种布局之间的关系

Matrix Derivative矩阵求导_转置_02

numerator layout

将上述表格中的分子布局单独拿出来,求导结果如下

Matrix Derivative矩阵求导_矩阵求导_03


下面的两种定义只在分子布局中有意义

Matrix Derivative矩阵求导_scala_04

denominator layout

将上述表格中的分母布局单独拿出来,求导结果如下

Matrix Derivative矩阵求导_scala_05

常见求导结果

现给出常见的求导结果,推导相关公式时可以查表
求导有链式法则(Chain Rule),但是矩阵乘积不满足交换律,所以链式法则对于matrix-by-scalar derivatives和scalar-by-matrix derivatives这两种情况不适用
下面贴出三种求导结果

Vector-by-vector

之所以先展示vector-by-vector的表格,是因为所有适用于vector-by-vector求导的操作也直接适用于vector-by-scalar or scalar-by-vector这两种情况

Matrix Derivative矩阵求导_scala_06

Scalar-by-vector

Matrix Derivative矩阵求导_scala_07

Matrix Derivative矩阵求导_矩阵求导_08

Vector-by-scalar

Matrix Derivative矩阵求导_转置_09

参考:
​​​Matrix calculus​


标签:布局,layout,Matrix,形式,矩阵,vector,求导,Derivative
From: https://blog.51cto.com/u_2420922/6019034

相关文章

  • 【推荐系统】隐语义模型(LFD)与矩阵分解(Matrix Factorization)
    如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~文章目录​​1.隐语义模型与矩阵分解​​​​2.隐语义模型(LatentFactorModel)​​​​3.......
  • 【论文阅读|浅读】Lemane:Learning Based Proximity Matrix Factorization for Node Emb
    目录​​前言​​​​简介​​​​ABSTRACT​​​​1INTRODUCTION​​​​2RELATEDWORK​​​​3LEMANEFRAMEWORK​​​​3.1TrainableProximityMeasure​​​​3.2......
  • Matrix-Breakout: 2 Morpheus-vulnhub靶场
    环境信息靶机:192.168.124.153攻击机:192.168.124.129打靶过程nmap扫描端口及服务发现开放22,80,81端口访问80端口网站有一个黑客帝国里的角色Trinity,让我们调......
  • 74. Search a 2D Matrix
    按题目的意思是有效率的算法,我放下了我暴力ac的冲动。。别人的思路很好,首先遍历二维数组每行的开头,找到比target小的最大行,然后对哪一行进行二分查找,在写代码时请尤其注意下......
  • Matrix of Differences(构造)
    题目链接题目描述:Forasquarematrixofintegersofsize\(n×n\),let'sdefineitsbeautyasfollows:foreachpairofside-adjacentelements\(x\)and\(y\)......
  • Vasya and Magic Matrix
    VasyaandMagicMatrix关键推式子,对式子进行化简。一边计算,一边求前缀和(从终点开始dp,会更加容易操作)代码#include<bits/stdc++.h>usingnamespacestd;#definein......
  • Halcon 解方程(solve_matrix)
    在Halcon中使用solve_matrix解直线方程:dev_update_off()dev_close_window()Size:=500dev_open_window(0,0,Size,Size,'white',WindowHandle)*创建随机点X......
  • SICP:符号求导、集合表示和Huffman树(Python实现)
    绪论到目前为止,我们已经使用过的所有复合数据,最终都是从数值出发构造起来的(比如我们在上一篇博客《SICP2.2:层次性数据和闭包性质(Python实现)》所介绍的链表和树就基于......
  • 基因数据处理121之SSW的score matrix调整,使得与SparkSW评分一致
    更多代码请见:​​https://github.com/xubo245​​基因数据处理系列1.解释SSW的评分矩阵是128*128的,是按char的int值来进行计算的。而blosum50是蛋白质的,而且不是按ABC顺序来......
  • 基于Python Numpy的数组array和矩阵matrix详解
    NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes)......