不得不說,向量和矩陣真的是一門高深而又通用的學問,應用十分廣泛,不信你可以往回看,前面有關線性代數的文章,哪一篇沒個矩陣或者向量。是以呢,我們今天就來看一下向量的導數(矩陣求導)相關内容。
1、定義和約定
矩陣求導的本質是多元函數求導,可以了解為把求導的結果排列為矩陣形式,友善表達與計算。但是矩陣求導本身有一個混亂的地方,就是行、列向量的差異,所導緻的結果的差異。而這個差異将導緻最後結果出現轉置問題。事實上,對于最後求導的結果,很多教材的處理是不一樣的,本質上,這隻是一個
問題。本章采用非轉置結果,也即是得到結果是雅克比矩陣,同時後面将解釋非轉置結果。
是目前找到關于矩陣求導最詳細的結果,是以這裡的結果将保持和
的結果一緻,
相關内容可進一步閱讀:https://en.wikipedia.org/wiki/Matrix_calculus#Layout_conventions。
約定:
-
标量用普通小寫字母表示,如
,
-
向量用帶箭頭小寫字母表示,如
,且其中元素為:
- 矩陣用大寫字母表示,如:
-
所有向量均預設為列向量,即
為列向量,而
-
分子布局(
):分子為
(列向量)或分母為
(行向量),或者說分子保持原始形式,分母為轉置形式。
-
分母布局(
):分子為
(行向量)或分母為
(列向量),或者說分子為轉置形式,分母保持為原始形式。
需要注意的是,以下公式的原始計算式子,
上是不做轉置的,但是為了統一,下文是使用了轉置。例如分子布局的标量對向量,
上是 ,而本文是 ,但無論是
2、分子布局
(1)标量對向量:分子
為标量,分母
為行向量
(2)向量對标量:分子
為列向量,分母
為标量
(3)向量對向量:分子
為列向量,分母
例如
是
矩陣,
是
列向量,則
是
列向量,記
,那麼
其中
(4)标量對矩陣。這裡的書寫與一些網上的部落格不一樣,但是計算結果是一樣。網上一般是
,但是為了避免混淆,這裡的分母部分不再寫為
,而是
。
是一個
這裡看到是轉置的。
(5)矩陣對标量
3、分母布局
(1) 标量對向量:分子
為标量,分母
為列向量
(2) 向量對标量:分子
為行向量,分母
為标量
(3) 向量對向量:分子
為行向量,分母
例如
是
矩陣,
是
列向量,則
是
列向量,記
,那麼
(4) 标量對矩陣。
這裡看到是正的。
4、其他寫法
一個小衆的寫法(鄒博寫法):向量對向量求偏導,可以看到分子分母都是列向量,這種情況其實不好推導。
是
矩陣,
是
列向量,則
是
列向量,記
,那麼
第一個元素
對第一個元素
求導,得到
。因為
是列向量,是以
第一個元素
對第二個元素
,得到
,按照
形狀,寫在第二行第一列,以此類推,得到
推廣得到:
需要注意的是,所謂的布局,其實就是起始計算公式的分子和分母采用的行列設定。關于詳細的各個矩陣求導的基礎結果,可以進一步閱讀
:https://en.wikipedia.org/wiki/Matrix_calculus#Scalar-by-vector_identities
5、常用結果
一些常用的結果(原始向量不做說明,均為列向量):
向量對向量:(向量對向量得矩陣,沒嚴格驗證)
标量對向量(标量對向量,向量是行得行,是列得列,沒嚴格驗證)
; 若
是對稱陣 ,
; 若
是對稱陣 ,
其實通過上面的式子可以發現,求導結果類似于我們函數求導的結果,唯一差異在于轉置以及前後關系。而這一點,如果不想記憶,可以通過結果是行向量還是列向量“猜”到。
推導:
接下來我們計算誤差平方和
是以分子肯定是行向量乘以列向量。而因為
是一個列向量,是以也一定是
這種形式得到的列向量(而不是
)
(1)
(标量對向量,且标量和
(2)
(3) (标量對向量,标量的轉置等于本身,檢視上面公式)
(4)
上面式子整合,有:
分享到這裡,最後一篇線性代數就結束啦,可是通往數學界的道路永遠沒有盡頭哦~