【ML-0-3】矩陣求導-鏈式法則


目錄

  1. 向量對向量
  2. 標量對多個向量
  3. 標量對多個矩陣
  4. 矩陣向量求導小結

求導的自變量和因變量直接有復雜的多層鏈式求導的關系,此時微分法使用起來也有些麻煩。需要一些簡潔的方法。

本文我們討論矩陣向量求導鏈式法則,使用該法則很多時候可以幫我們快速求出導數結果。如果遇到其他資料求

導結果不同,請先確認布局是否一樣。

若沒有特殊說明,默認情況定義如下:求導的自變量用x表示標量,x表示n維向量,X表示m×n維度的矩陣,求導的因變量用y表示標量,y表示m維向量,Y表示p×q維度的矩陣。默認向量為列向量,若是行向量,本文全部使用對應字母的轉置表示。

總的求導准則:形式和平時高中所述的鏈式求導方式一樣,這里矩陣和向量求導一定要注意維度統一

一、向量對向量

假設多個向量存在依賴關系,比如三個向量 x y z 存在依賴關系,則我們有下面的鏈式求導法則:

維度探討:假設x y z 的維度分別為mnp,∂z/x 是 p×m,∂z/y 是 p×n,∂y/x 是 n×m,符合矩陣乘法維度原則。

二、標量對多個向量

2.1 3個向量

最后到1標量的依賴關系: x → y → z ,此時很容易發現維度不相容。不能再簡單套用上面的式子,而做了對應的變形:

維度探討:假設x y z 的維度分別為m,n,1,∂z/∂x 是 m×1,(∂y/∂x)T 是 m×n,∂z/∂x 是 n×1,符合矩陣乘法維度原則。

2.2 多個向量

對於更加復雜的形式:如: y1 → y2 →…… yn → z ,則表達式為:

2.3 實際應用

ML-2最小二乘法中使用到的,最小二乘法優化的目標是最小化如下損失函數:

對上述進行如下假設:

很容易得到以下表達式:

三、標量對多個矩陣

假設: X → Y → z 存在依賴關系,則我們有下面的鏈式求導法則:

上面的式子是矩陣跡性質來的,不是特別實用,也不便於推廣。我們再看一個偏難得問題:

同樣還是如此,

我們再來看看后半部分的導數:

那么最終的標簽鏈式求導公式轉化為:

排列成矩陣即為:

對上面的式子做個總結:

維度探討:假設Y A X 的維度分別為p×n,p×m,m×n,∂z/∂X是m×n,(A)T 是 m×p,∂z/∂Y是 p×n,符合矩陣乘法維度原則。

這結論在是一個向量x的時候也成立,即

同理:如果要求導的自變量在左邊,線性變換在右邊,也有類似稍有不同的結論如下:

使用好上述四個結論,對於機器學習尤其是深度學習里的求導問題可以非常快的解決

四、矩陣向量求導小結

矩陣向量求導的三種方法:定義法,微分法和鏈式求導法。在同等情況下,優先考慮鏈式求導法,尤其是第三節的四個結論。其次選擇微分法、在沒有好的求導方法的時候使用定義法是最后的保底方案。

基本上大家看了系列里這四篇后對矩陣向量求導就已經很熟悉了,對於機器學習中出現的矩陣向量求導問題已足夠。

主要來自: https://www.cnblogs.com/pinard/p/10825264.html

附件:手寫推導


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM