[Quant 1.4] 矩陣微積分Matrix Calculus基礎(chǔ) (1)
資源是MIT 2020年的一節(jié)網(wǎng)課,教授是Alan Edelman
https://www.youtube.com/watch?v=oGZK3yGF-6k
我在B站沒找到搬運的資源,所以要看這個視頻需要??
還有一個問答的鏈接,我下面也提到了
https://math.stackexchange.com/questions/3724359/does-there-exist-a-gradient-chain-rule-for-this-case
本來我想寫一期RNN的筆記的。結(jié)果發(fā)現(xiàn)有一個很重要的部分的數(shù)學我已經(jīng)忘的差不多了,而且知識點還很多,所以決定單獨拿出來寫一篇。

1. Vector到Scalar的函數(shù)梯度
假設(shè)我們現(xiàn)在有一個向量,還有作用于
的函數(shù)
。那么
和
作用在
上的梯度就可以寫成
我個人習慣讓做列向量,因為后面的
也是個列向量,因此
是一個行向量 (為什么梯度是行向量呢?詳見https://math.stackexchange.com/questions/3724359/does-there-exist-a-gradient-chain-rule-for-this-case)。
上面是我們在微積分課程中學過的求偏導(dǎo)/梯度,我們舉一個簡單的例子
那么它的梯度就可以寫成
這里面是一個
的行向量。梯度也可以用全微分的形式表現(xiàn)出來

但是在矩陣微積分中,有些函數(shù)的變量可以寫成整體的矩陣或者向量的形式,而不是把他們中每一個單個的項拿出來做變量。換句話說,上面的函數(shù)表達式在矩陣微積分中就可以寫成
它的梯度也可以寫成
全微分的形式就可以寫成
這里面的和上面的
一樣,需要理解成列向量
我們可以證明,對于,它的梯度可以寫成以下兩種形式中的任何一種

再看另一個例子:
想要求這個函數(shù)的梯度,我們需要先介紹一個公式(下面稱它為AB公式)。這個公式不僅好記而且管用,后面在求matrix到scalar的函數(shù)梯度的時候也經(jīng)常用:
其中是矩陣,因此也可以是向量。我們把
代入到這個公式里面去,得到梯度的全微分形式:
因為第一行相加的兩項都是scalar,取轉(zhuǎn)置之后數(shù)值不變。把第一項取轉(zhuǎn)置之后就和第二項相等了。所以梯度也可以寫成

當然,不是所有的的函數(shù)都可以寫成向量的形式。這種情況下還是要用微積分里面學到的最原本的公式(開頭的公式)來求梯度。在機器學習里面會出現(xiàn)的Vector到Scalar的函數(shù)梯度,我們掌握上面兩種情況還有AB公式就夠用了。

2. Vector到Vector的函數(shù)梯度
假設(shè)我們的自變量向量長度為:
函數(shù)可以展開為
Element-wise,這個函數(shù)的梯度要寫成
這個矩陣就是微積分里面也講過的Jacobian matrix,它十分重要,在多元積分換元的時候也要用到。Vector到Vector函數(shù)的梯度就是Jacobian matrix。
此外,值得注意的一點是,Vector到Vector函數(shù)的梯度(即Jacobian矩陣)的維度是
。特別的,當
的時候,梯度就是一個
的矩陣,即行向量,這一點我在Vector到Scaler函數(shù)的梯度中提到過。
對于一般形式的Vector到Vector函數(shù),我們只需要一個接著一個求偏導(dǎo),把這個的矩陣填滿就行了。但是,有些Vector到Vector函數(shù)是可以整體表達成矩陣乘法形式的,例如多元線性函數(shù)。

例如函數(shù)
這里面的對應(yīng)的就是一般形式中的
,
則對應(yīng)
。我們應(yīng)用一下Jacobian的公式,可以得到
以此類推,對于,其梯度可以寫成
或者

上面的例子就是Vector到Vector的多元線性函數(shù)可以寫成矩陣乘法形式的例子,接下來再介紹一個例子,這個實際上是Vector到Scalar,但是需要怎們學了上面的例子之后才能做
這里我們可以使用AB公式。AB公式就像分步求導(dǎo)法則一樣的:當我們不知道函數(shù)整體如何求道,但是知道函數(shù)是兩個容易求道的函數(shù)的乘積,那么我們就可以使用AB公式
因為是scalar,所以它的轉(zhuǎn)置就是它本身,所以
多說一句,這里因為是一個凸函數(shù),所以求導(dǎo)之后讓導(dǎo)函數(shù)=0可以求出來全局最大值或者最小值(這里是最小值)。最后反推出來的
就有兩種解釋:第一個是方程
當b不在
中的情況下的最優(yōu)近似解;另一個是關(guān)于樣本數(shù)據(jù)矩陣
的最小二乘法線性回歸系數(shù)。

第三個例子其實還是一個Vector到Scalar的例子,但是也要用這里第一個例子的結(jié)果:
再次運用AB公式
也就是說
注意,這里我可能跟大多數(shù)教材的習慣不一樣。因為我默認是一個列向量,所以梯度應(yīng)該是一個行向量。很多地方喜歡把這個結(jié)果寫成它的轉(zhuǎn)置的形式。大家可以依照自己的習慣來記憶。
