AI基础:矩阵求导,你一定要收藏
不得不說,向量和矩陣真的是一門高深而又通用的學(xué)問,應(yīng)用十分廣泛,不信你可以往回看,前面有關(guān)線性代數(shù)的文章,哪一篇沒個(gè)矩陣或者向量。所以呢,我們今天就來看一下向量的導(dǎo)數(shù)(矩陣求導(dǎo))相關(guān)內(nèi)容。
1、定義和約定
矩陣求導(dǎo)的本質(zhì)是多元函數(shù)求導(dǎo),可以理解為把求導(dǎo)的結(jié)果排列為矩陣形式,方便表達(dá)與計(jì)算。但是矩陣求導(dǎo)本身有一個(gè)混亂的地方,就是行、列向量的差異,所導(dǎo)致的結(jié)果的差異。而這個(gè)差異將導(dǎo)致最后結(jié)果出現(xiàn)轉(zhuǎn)置問題。事實(shí)上,對于最后求導(dǎo)的結(jié)果,很多教材的處理是不一樣的,本質(zhì)上,這只是一個(gè)??問題。本章采用非轉(zhuǎn)置結(jié)果,也即是得到結(jié)果是雅克比矩陣,同時(shí)后面將解釋非轉(zhuǎn)置結(jié)果。是目前找到關(guān)于矩陣求導(dǎo)最詳細(xì)的結(jié)果,因此這里的結(jié)果將保持和的結(jié)果一致,相關(guān)內(nèi)容可進(jìn)一步閱讀:https://en.wikipedia.org/wiki/Matrix_calculus#Layout_conventions。
約定:
標(biāo)量用普通小寫字母表示,如??,??,
向量用帶箭頭小寫字母表示,如??,且其中元素為:
矩陣用大寫字母表示,如: ?
所有向量均默認(rèn)為列向量,即??為列向量,而??為行向量
分子布局():分子為?(列向量)或分母為?(行向量),或者說分子保持原始形式,分母為轉(zhuǎn)置形式。
分母布局():分子為?(行向量)或分母為?(列向量),或者說分子為轉(zhuǎn)置形式,分母保持為原始形式。
需要注意的是,以下公式的原始計(jì)算式子,上是不做轉(zhuǎn)置的,但是為了統(tǒng)一,下文是使用了轉(zhuǎn)置。例如分子布局的標(biāo)量對向量,?上是??,而本文是??,但無論是??還是本文,原始式子的分母部分都是行向量。?
2、分子布局
(1)標(biāo)量對向量:分子??為標(biāo)量,分母??為行向量 ??
(2)向量對標(biāo)量:分子??為列向量,分母??為標(biāo)量 ?
(3)向量對向量:分子??為列向量,分母??為行向量
例如是??矩陣,?是??列向量,則??是??列向量,記 ??,那么???
其中??又被稱為雅克比矩陣。
(4)標(biāo)量對矩陣。這里的書寫與一些網(wǎng)上的博客不一樣,但是計(jì)算結(jié)果是一樣。網(wǎng)上一般是??,但是為了避免混淆,這里的分母部分不再寫為??,而是??。??是一個(gè)??矩陣。
這里看到是轉(zhuǎn)置的。
(5)矩陣對標(biāo)量
3、分母布局
(1) 標(biāo)量對向量:分子??為標(biāo)量,分母??為列向量 ? ?
(2) 向量對標(biāo)量:分子??為行向量,分母??為標(biāo)量 ?
(3) 向量對向量:分子??為行向量,分母??為列向量
例如??是??矩陣,?是??列向量,則??是??列向量,記??,那么???
(4) 標(biāo)量對矩陣。
這里看到是正的。
4、其他寫法
一個(gè)小眾的寫法(鄒博寫法):向量對向量求偏導(dǎo),可以看到分子分母都是列向量,這種情況其實(shí)不好推導(dǎo)。
?是??矩陣,?是??列向量,則??是??列向量,記??,那么 ??為?
?第一個(gè)元素??對第一個(gè)元素??求導(dǎo),得到??。因?yàn)??是列向量,因此??第一個(gè)元素 ?? 對第二個(gè)元素??,得到??,按照??形狀,寫在第二行第一列,以此類推,得到 ??。
推廣得到:
需要注意的是,所謂的布局,其實(shí)就是起始計(jì)算公式的分子和分母采用的行列設(shè)置。關(guān)于詳細(xì)的各個(gè)矩陣求導(dǎo)的基礎(chǔ)結(jié)果,可以進(jìn)一步閱讀:https://en.wikipedia.org/wiki/Matrix_calculus#Scalar-by-vector_identities
5、常用結(jié)果
一些常用的結(jié)果(原始向量不做說明,均為列向量):
向量對向量:(向量對向量得矩陣,沒嚴(yán)格驗(yàn)證)
標(biāo)量對向量(標(biāo)量對向量,向量是行得行,是列得列,沒嚴(yán)格驗(yàn)證)
?; 若?? 是對稱陣 ,?。
?; 若?? 是對稱陣 ,?。
其實(shí)通過上面的式子可以發(fā)現(xiàn),求導(dǎo)結(jié)果類似于我們函數(shù)求導(dǎo)的結(jié)果,唯一差異在于轉(zhuǎn)置以及前后關(guān)系。而這一點(diǎn),如果不想記憶,可以通過結(jié)果是行向量還是列向量“猜”到。
推導(dǎo):
接下來我們計(jì)算誤差平方和?? 的求導(dǎo)結(jié)果,需要注意的是,誤差平方和是一個(gè)標(biāo)量
所以分子肯定是行向量乘以列向量。而因?yàn)??是一個(gè)列向量,因此也一定是??這種形式得到的列向量(而不是)
(1)?? (標(biāo)量對向量,且標(biāo)量和??無關(guān))
(2) ??(標(biāo)量對向量,查看上面公式)
(3) ?(標(biāo)量對向量,標(biāo)量的轉(zhuǎn)置等于本身,查看上面公式)
(4) ?
上面式子整合,有:
分享到這里,最后一篇線性代數(shù)就結(jié)束啦,可是通往數(shù)學(xué)界的道路永遠(yuǎn)沒有盡頭哦~
?編輯:yxc
總結(jié)
以上是生活随笔為你收集整理的AI基础:矩阵求导,你一定要收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI基础:数据可视化简易入门(Matpl
- 下一篇: 一文看尽8篇目标检测最新论文(Effic