主頁 >  其他 > 一文詳解向量導數與矩陣導數

一文詳解向量導數與矩陣導數

2022-02-02 07:49:43 其他

目錄

  • 一、分子布局與分母布局
  • 二、向量導數
    • 2.1 向量對標量求導
    • 2.2 標量對向量求導
    • 2.3 向量對向量求導
  • 三、矩陣導數
    • 3.1 矩陣對標量求導
    • 3.2 標量對矩陣求導
  • 參考

向量導數與矩陣導數是機器學習的數學基礎,認真讀完本文,相信你會有不少識訓~

提 及 向 量 時 , 若 無 特 殊 說 明 , 我 們 默 認 為 列 向 量 \textcolor{red}{提及向量時,若無特殊說明,我們默認為{\bf 列向量}}

一、分子布局與分母布局

我們知道,標量(Scalar)、向量(Vector)和矩陣(Matrix)它們三者滿足如下關系:

標 量 ? 向 量 ? 矩 陣 標量 \subset 向量 \subset 矩陣 ??

即向量可以理解為一種特殊的矩陣(列數為 1 1 1 的矩陣),標量可以理解為一種特殊的向量(維度為 1 1 1 的向量),也可以理解為一個 1 × 1 1\times 1 1×1 的矩陣,所以今天我們討論的向量導數和矩陣導數可以統稱為 “矩陣導數”.

常見的矩陣導數有以下六種:

在這里插入圖片描述

標量對標量求導相信大家再熟悉不過了( f ′ ( x ) f'(x) f(x) 就是一個很典型的例子), 這里我們不再討論. 事實上我們還可以討論矩陣與向量之間的導數,矩陣與矩陣之間的導數,即表格中空著的地方,但因為這些導數的結果涉及到維數大于 2 2 2 的張量(tensor),我們無法再用矩陣的形式去表示,因此也不再討論.

接下來我們會把重心放在剩余的五個矩陣導數上,即:

  • 向量對標量求導
  • 標量對向量求導
  • 向量對向量求導
  • 矩陣對標量求導
  • 標量對矩陣求導

假設我們有 x = ( x 1 , ? ? , x n ) T \boldsymbol{x}=(x_1,\cdots,x_n)^{\mathrm T} x=(x1?,?,xn?)T y = ( y 1 , ? ? , y m ) T \boldsymbol{y}=(y_1,\cdots,y_m)^{\mathrm T} y=(y1?,?,ym?)T 兩個向量,則 ? y ? x \displaystyle \frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}} ?x?y? 共有 m n mn mn 個分量:

? y i ? x j , i = 1 , ? ? , m j = 1 , ? ? , n \frac{\partial y_i}{\partial x_j},\quad i=1,\cdots,m\quad j=1,\cdots,n ?xj??yi??,i=1,?,mj=1,?,n

我們該如何去排列這 m n mn mn 個分量呢?這就要用到我們的分子布局(Numerator Layout)和分母布局(Denominator Layout)了. 所謂布局,無非就是對上面結果的一種排列,若不對排列方式加以規定,則很有可能導致數學運算程序中出現錯誤(例如因矩陣維數原因導致不能相乘).

在談向量導數時,我們有兩個很重要的前提:

① 分子和分母都是向量,且其中一個是行向量,另外一個是列向量
② 分子和分母其中一個是標量,另外一個是行/列向量

當 ① 或 ② 滿足時,我們接下來的討論才有意義.

我們先看 ①

  • 若分母是列向量,分子是行向量,則稱之為分母布局
  • 若分子是列向量,分母是行向量,則稱之為分子布局

用一句話概括就是:誰是列向量就是什么布局.

對于 ②,我們可以依然采用 “誰是列向量就是什么布局” 來判斷,但如果分子分母都不是列向量時,該如何判斷呢?

這種情形下也是一句話概括:誰是標量就是什么布局.

我們可以將這些討論匯總在下表中:

在這里插入圖片描述

對于矩陣導數,情況就有些不一樣了:

在這里插入圖片描述

此外,我們還有以下重要等式

分 子 布 局 的 結 果 = 分 母 布 局 的 結 果 T , 分 母 布 局 的 結 果 = 分 子 布 局 的 結 果 T 分子布局的結果=分母布局的結果^{\mathrm{T}},\qquad 分母布局的結果=分子布局的結果^{\mathrm{T}} =T,=T

以上所有結果都可以匯總成下面三張圖:

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

更為直觀的表示:

在這里插入圖片描述

接下來我們的討論都將基于分子布局.

二、向量導數

2.1 向量對標量求導

向量對標量求導的一些法則:

在這里插入圖片描述

2.2 標量對向量求導

標量對向量求導的一些法則:

在這里插入圖片描述

標量對向量求導的一些重要結論

? a ? x = 0 T (2.2.A) \frac{\partial a }{\partial \boldsymbol x}={\bf 0}^{\mathrm T}\tag{2.2.A} ?x?a?=0T(2.2.A)

? a T x ? x = ? x T a ? x = a T (2.2.B) \frac{\partial \boldsymbol a^{\mathrm T}\boldsymbol x }{\partial \boldsymbol x}=\frac{\partial \boldsymbol x^{\mathrm T}\boldsymbol a }{\partial \boldsymbol x}=\boldsymbol a^{\mathrm T} \tag{2.2.B} ?x?aTx?=?x?xTa?=aT(2.2.B)

? x T x ? x = 2 x T (2.2.C) \frac{\partial \boldsymbol x^{\mathrm T}\boldsymbol x }{\partial \boldsymbol x}=2\boldsymbol x^{\mathrm T} \tag{2.2.C} ?x?xTx?=2xT(2.2.C)

? x T A x ? x = x T ( A + A T ) (2.2.D) \frac{\partial \boldsymbol x^{\mathrm T}{\bf A}\boldsymbol x }{\partial \boldsymbol x}=\boldsymbol x^{\mathrm T}({\bf A}+{\bf A}^{\mathrm T}) \tag{2.2.D} ?x?xTAx?=xT(A+AT)(2.2.D)

2.3 向量對向量求導

向量對向量求導的一些法則:

在這里插入圖片描述
向量對向量求導的一些重要結論

? a ? x = O (2.3.A) \frac{\partial \boldsymbol a }{\partial \boldsymbol x}={\bf O}\tag{2.3.A} ?x?a?=O(2.3.A)

? x ? x = I (2.3.B) \frac{\partial \boldsymbol x }{\partial \boldsymbol x}={\bf I}\tag{2.3.B} ?x?x?=I(2.3.B)

? A x ? x = A (2.3.C) \frac{\partial {\bf A}\boldsymbol x }{\partial \boldsymbol x}={\bf A}\tag{2.3.C} ?x?Ax?=A(2.3.C)

三、矩陣導數

3.1 矩陣對標量求導

矩陣對標量求導的一些法則:

在這里插入圖片描述

3.2 標量對矩陣求導

標量對矩陣求導的一些法則:

在這里插入圖片描述

標量對矩陣求導的一些重要結論

? a ? X = O (3.2.A) \frac{\partial a }{\partial {\bf X}}={\bf O}\tag{3.2.A} ?X?a?=O(3.2.A)

? a T X b ? X = b a T (3.2.B) \frac{\partial \boldsymbol a^{\mathrm T}{\bf X}\boldsymbol b }{\partial {\bf X}}=\boldsymbol{ba}^{\mathrm T}\tag{3.2.B} ?X?aTXb?=baT(3.2.B)

? a T X T b ? X = a b T (3.2.C) \frac{\partial \boldsymbol a^{\mathrm T}{\bf X}^{\mathrm T}\boldsymbol b }{\partial {\bf X}}=\boldsymbol{ab}^{\mathrm T}\tag{3.2.C} ?X?aTXTb?=abT(3.2.C)

此外,我們經常會遇到跡對矩陣求導的情形,相關結論如下:

? t r ( X ) ? X = I (3.2.D) \frac{\partial \mathrm{tr}({\bf X})}{\partial {\bf X}}={\bf I}\tag{3.2.D} ?X?tr(X)?=I(3.2.D)

? t r ( X k ) ? X = k X k ? 1 (3.2.E) \frac{\partial \mathrm{tr}({\bf X}^{k})}{\partial {\bf X}}=k{\bf X}^{k-1}\tag{3.2.E} ?X?tr(Xk)?=kXk?1(3.2.E)

? t r ( A X ) ? X = ? t r ( X A ) ? X = A (3.2.F) \frac{\partial \mathrm{tr}({\bf AX})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf XA})}{\partial {\bf X}}={\bf A}\tag{3.2.F} ?X?tr(AX)?=?X?tr(XA)?=A(3.2.F)

? t r ( A X T ) ? X = ? t r ( X T A ) ? X = A T (3.2.G) \frac{\partial \mathrm{tr}({\bf AX}^{\mathrm T})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf X}^{\mathrm T}{\bf A})}{\partial {\bf X}}={\bf A}^{\mathrm T}\tag{3.2.G} ?X?tr(AXT)?=?X?tr(XTA)?=AT(3.2.G)

? t r ( X T A X ) ? X = X T ( A + A T ) (3.2.H) \frac{\partial \mathrm{tr}({\bf X}^{\mathrm T}{\bf AX})}{\partial {\bf X}}={\bf X}^{\mathrm T}({\bf A}+{\bf A}^{\mathrm T})\tag{3.2.H} ?X?tr(XTAX)?=XT(A+AT)(3.2.H)

? t r ( X ? 1 A ) ? X = ? X ? 1 A X ? 1 (3.2.I) \frac{\partial \mathrm{tr}({\bf X}^{-1}{\bf A})}{\partial {\bf X}}=-{\bf X}^{-1}{\bf AX}^{-1}\tag{3.2.I} ?X?tr(X?1A)?=?X?1AX?1(3.2.I)

? t r ( A X B ) ? X = ? t r ( B A X ) ? X = B A (3.2.J) \frac{\partial \mathrm{tr}({\bf AXB})}{\partial {\bf X}}=\frac{\partial \mathrm{tr}({\bf BAX})}{\partial {\bf X}}={\bf BA}\tag{3.2.J} ?X?tr(AXB)?=?X?tr(BAX)?=BA(3.2.J)

? t r ( A X B X T C ) ? X = B X T C A + B T X T A T C T (3.2.K) \frac{\partial \mathrm{tr}({\bf AXBX}^{\mathrm T}{\bf C})}{\partial {\bf X}}={\bf BX}^{\mathrm T}{\bf CA}+{\bf B}^{\mathrm T}{\bf X}^{\mathrm T}{\bf A}^{\mathrm T}{\bf C}^{\mathrm T} \tag{3.2.K} ?X?tr(AXBXTC)?=BXTCA+BTXTATCT(3.2.K)

參考

[1] https://zhuanlan.zhihu.com/p/263777564
[2] https://www.zhihu.com/question/352174717
[3] https://cloud.tencent.com/developer/article/1551901
[4] https://en.wikipedia.org/wiki/Matrix_calculus
[5] https://www.comp.nus.edu.sg/~cs5240/lecture/matrix-diff.pdf

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423257.html

標籤:AI

上一篇:資料科學家VS大資料專家VS資料分析師:有什么不同?

下一篇:【Matplotlib】pyplot的高級功能

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more