矩陣向量求導
本系列主要參考文獻為維基百科的Matrix Caculas和張賢達的《矩陣分析與應用》。
一、求導定義與求導佈局
1. 矩陣向量求導引入
2. 矩陣向量求導定義
3. 矩陣向量求導佈局
具體總結如下:
4. 矩陣向量求導基礎總結
有了矩陣向量求導的定義和預設佈局,我們後續就可以對上表中的5種矩陣向量求導過程進行一些常見的求導推導總結求導方法,並討論向量求導的鏈式法則。
二、矩陣向量求導之定義法
本小節討論下標量對向量求導,標量對矩陣求導, 以及向量對向量求導這三種場景的基本求解思路。
對於本文中的標量對向量或矩陣求導這兩種情況,如前文所說,以分母佈局為預設佈局。向量對向量求導,以分子佈局為預設佈局。如遇到其他文章中的求導結果和本文不同,請先確認使用的求導佈局是否一樣。另外,由於機器學習中向量或矩陣對標量求導的場景很少見,本系列不會單獨討論這兩種求導過程。
1. 用定義法求解標量對向量求導
2. 標量對向量求導的一些基本法則
3. 用定義法求解標量對矩陣求導
4.用定義法求解向量對向量求導
5. 定義法矩陣向量求導的侷限
使用定義法雖然已經求出一些簡單的向量矩陣求導的結果,但是對於複雜的求導式子,則中間運算會很複雜,同時求匯出的結果排列也是很頭痛的。下一篇我們討論使使用矩陣微分和跡函式的方法來求解矩陣向量求導。
三、矩陣向量求導之微分法
本文的標量對向量的求導,以及標量對矩陣的求導使用分母佈局。如果遇到其他資料求導結果不同,請先確認佈局是否一樣。
1. 矩陣微分
2. 矩陣微分的性質
3. 使用微分法求解矩陣向量求導
4. 跡函式對向量矩陣求導
5. 微分法求導小結
使用矩陣微分,可以在不對向量或矩陣中的某一元素單獨求導再拼接,因此會比較方便,當然熟練使用的前提是對上面矩陣微分的性質,以及跡函式的性質熟練運用。
還有一些場景,求導的自變數和因變數直接有複雜的多層鏈式求導的關係,此時微分法使用起來也有些麻煩。如果我們可以利用一些常用的簡單求導結果,再使用鏈式求導法則,則會非常的方便。因此下一篇我們討論向量矩陣求導的鏈式法則。
四、矩陣向量求導鏈式法則
上面討論了使用微分法來求解矩陣向量求導的方法。但是很多時候,求導的自變數和因變數直接有複雜的多層鏈式求導的關係,此時微分法使用起來也有些麻煩。需要一些簡潔的方法。
本文我們討論矩陣向量求導鏈式法則,使用該法則很多時候可以幫我們快速求出導數結果。
本文的標量對向量的求導,標量對矩陣的求導使用分母佈局, 向量對向量的求導使用分子佈局。如果遇到其他資料求導結果不同,請先確認佈局是否一樣。
1. 向量對向量求導的鏈式法則
2. 標量對多個向量的鏈式求導法則
3. 標量對多個矩陣的鏈式求導法則
4. 矩陣向量求導小結
矩陣向量求導在前面我們討論三種方法,定義法,微分法和鏈式求導法。在同等情況下,優先考慮鏈式求導法,尤其是第三節的四個結論。其次選擇微分法、在沒有好的求導方法的時候使用定義法是最後的保底方案。
基本上大家看了系列裡這四篇後對矩陣向量求導就已經很熟悉了,對於機器學習中出現的矩陣向量求導問題已足夠。這裡還沒有講到的是矩陣對矩陣的求導,還有矩陣對向量,向量對矩陣求導這三種形式,如果大家只是關注機器學習的優化問題,不涉及其他應用數學問題的,可以不關注。
五、矩陣對矩陣的求導
本文所有求導佈局以分母佈局為準,為了適配矩陣對矩陣的求導,本文向量對向量的求導也以分母佈局為準,這和前面的文章不同,需要注意。
本篇主要參考了張賢達的《矩陣分析與應用》和長軀鬼俠的矩陣求導術
1. 矩陣對矩陣求導的定義
2. 矩陣對矩陣求導的微分法
3. 矩陣對矩陣求導例項
4. 矩陣對矩陣求導小結
由於矩陣對矩陣求導的結果包含克羅內克積,因此和之前我們講到的其他型別的矩陣求導很不同,在機器學習演算法優化中中,我們一般不在推導的時候使用矩陣對矩陣的求導,除非只是做定性的分析。如果遇到矩陣對矩陣的求導不好繞過,一般可以使用(四) 矩陣向量求導鏈式法則中第三節最後的幾個鏈式法則公式來避免。
https://www.cnblogs.com/pinard/p/10750718.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10773942.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10791506.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10825264.html
https://www.cnblogs.com/pinard/archive/2004/01/13/10930902.html