AI基础:矩阵求导,你一定要收藏
不得不說,向量和矩陣真的是一門高深而又通用的學問,應用十分廣泛,不信你可以往回看,前面有關線性代數的文章,哪一篇沒個矩陣或者向量。所以呢,我們今天就來看一下向量的導數(矩陣求導)相關內容。
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) ?
上面式子整合,有:
分享到這里,最后一篇線性代數就結束啦,可是通往數學界的道路永遠沒有盡頭哦~
?編輯:yxc
總結
以上是生活随笔為你收集整理的AI基础:矩阵求导,你一定要收藏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI基础:数据可视化简易入门(Matpl
- 下一篇: AI 趋势