|
在之前寫(xiě)的上百篇機(jī)器學(xué)習(xí)博客中,不時(shí)會(huì)使用矩陣向量求導(dǎo)的方法來(lái)簡(jiǎn)化公式推演,但是并沒(méi)有系統(tǒng)性的進(jìn)行過(guò)講解,因此讓很多朋友迷惑矩陣向量求導(dǎo)的具體過(guò)程為什么會(huì)是這樣的。這里準(zhǔn)備用幾篇博文來(lái)討論下機(jī)器學(xué)習(xí)中的矩陣向量求導(dǎo),今天是第一篇。 本系列主要參考文獻(xiàn)為維基百科的Matrix Caculas和張賢達(dá)的《矩陣分析與應(yīng)用》。 1. 矩陣向量求導(dǎo)引入在高等數(shù)學(xué)里面,我們已經(jīng)學(xué)過(guò)了標(biāo)量對(duì)標(biāo)量的求導(dǎo),比如標(biāo)量對(duì)標(biāo)量的求導(dǎo),可以表示為。 有些時(shí)候,我們會(huì)有一組標(biāo)量來(lái)對(duì)一個(gè)標(biāo)量的求導(dǎo),那么我們會(huì)得到一組標(biāo)量求導(dǎo)的結(jié)果: 如果我們把這組標(biāo)量寫(xiě)成向量的形式,即得到維度為m的一個(gè)向量對(duì)一個(gè)標(biāo)量的求導(dǎo),那么結(jié)果也是一個(gè)m維的向量: 可見(jiàn),所謂向量對(duì)標(biāo)量的求導(dǎo),其實(shí)就是向量里的每個(gè)分量分別對(duì)標(biāo)量求導(dǎo),最后把求導(dǎo)的結(jié)果排列在一起,按一個(gè)向量表示而已。類(lèi)似的結(jié)論也存在于標(biāo)量對(duì)向量的求導(dǎo),向量對(duì)向量的求導(dǎo),向量對(duì)矩陣的求導(dǎo),矩陣對(duì)向量的求導(dǎo),以及矩陣對(duì)矩陣的求導(dǎo)等。 總而言之,所謂的向量矩陣求導(dǎo)本質(zhì)上就是多元函數(shù)求導(dǎo),僅僅是把把函數(shù)的自變量,因變量以及標(biāo)量求導(dǎo)的結(jié)果排列成了向量矩陣的形式,方便表達(dá)與計(jì)算,更加簡(jiǎn)潔而已。 為了便于描述,后面如果沒(méi)有指明,則求導(dǎo)的自變量用表示標(biāo)量,表示n維向量,表示維度的矩陣,求導(dǎo)的因變量用表示標(biāo)量,表示m維向量,表示維度的矩陣。 2. 矩陣向量求導(dǎo)定義根據(jù)求導(dǎo)的自變量和因變量是標(biāo)量,向量還是矩陣,我們有9種可能的矩陣求導(dǎo)定義,如下:
這9種里面,標(biāo)量對(duì)標(biāo)量的求導(dǎo)高數(shù)里面就有,不需要我們單獨(dú)討論,在剩下的8種情況里面,我們先討論上圖中標(biāo)量對(duì)向量或矩陣求導(dǎo),向量或矩陣對(duì)標(biāo)量求導(dǎo),以及向量對(duì)向量求導(dǎo)這5種情況。另外三種向量對(duì)矩陣的求導(dǎo),矩陣對(duì)向量的求導(dǎo),以及矩陣對(duì)矩陣的求導(dǎo)我們?cè)诤竺嬖僦v。 現(xiàn)在我們回看第一節(jié)講到的例子,維度為m的一個(gè)向量對(duì)一個(gè)標(biāo)量的求導(dǎo),那么結(jié)果也是一個(gè)m維的向量:。這是我們表格里面向量對(duì)標(biāo)量求導(dǎo)的情況。這里有一個(gè)問(wèn)題沒(méi)有講到,就是這個(gè)m維的求導(dǎo)結(jié)果排列成的m維向量到底應(yīng)該是列向量還是行向量? 這個(gè)問(wèn)題的答案是:行向量或者列向量皆可!畢竟我們求導(dǎo)的本質(zhì)只是把標(biāo)量求導(dǎo)的結(jié)果排列起來(lái),至于是按行排列還是按列排列都是可以的。但是這樣也有問(wèn)題,在我們機(jī)器學(xué)習(xí)算法法優(yōu)化過(guò)程中,如果行向量或者列向量隨便寫(xiě),那么結(jié)果就不唯一,亂套了。 為了解決這個(gè)問(wèn)題,我們引入求導(dǎo)布局的概念。 3. 矩陣向量求導(dǎo)布局為了解決矩陣向量求導(dǎo)的結(jié)果不唯一,我們引入求導(dǎo)布局。最基本的求導(dǎo)布局有兩個(gè):分子布局(numerator layout)和分母布局(denominator layout )。 對(duì)于分子布局來(lái)說(shuō),我們求導(dǎo)結(jié)果的維度以分子為主,比如對(duì)于我們上面對(duì)標(biāo)量求導(dǎo)的例子,結(jié)果的維度和分子的維度是一致的。也就是說(shuō),如果向量是一個(gè)m維的列向量,那么求導(dǎo)結(jié)果也是一個(gè)m維列向量。如果如果向量是一個(gè)m維的行向量,那么求導(dǎo)結(jié)果也是一個(gè)m維行向量。 對(duì)于分母布局來(lái)說(shuō),我們求導(dǎo)結(jié)果的維度以分母為主,比如對(duì)于我們上面對(duì)標(biāo)量求導(dǎo)的例子,如果向量是一個(gè)m維的列向量,那么求導(dǎo)結(jié)果是一個(gè)m維行向量。如果如果向量是一個(gè)m維的行向量,那么求導(dǎo)結(jié)果是一個(gè)m維的列向量向量。 可見(jiàn),對(duì)于分子布局和分母布局的結(jié)果來(lái)說(shuō),兩者相差一個(gè)轉(zhuǎn)置。 再舉一個(gè)例子,標(biāo)量對(duì)矩陣求導(dǎo),那么如果按分母布局,則求導(dǎo)結(jié)果的維度和矩陣的維度是一致的。如果是分子布局,則求導(dǎo)結(jié)果的維度為。 這樣,對(duì)于標(biāo)量對(duì)向量或者矩陣求導(dǎo),向量或者矩陣對(duì)標(biāo)量求導(dǎo)這4種情況,對(duì)應(yīng)的分子布局和分母布局的排列方式已經(jīng)確定了。 稍微麻煩點(diǎn)的是向量對(duì)向量的求導(dǎo),本文只討論列向量對(duì)列向量的求導(dǎo),其他的行向量求導(dǎo)只是差一個(gè)轉(zhuǎn)置而已。比如m維列向量對(duì)n維列向量求導(dǎo)。它的求導(dǎo)結(jié)果在分子布局和分母布局各是什么呢?對(duì)于這2個(gè)向量求導(dǎo),那么一共有個(gè)標(biāo)量對(duì)標(biāo)量的求導(dǎo)。求導(dǎo)的結(jié)果一般是排列為一個(gè)矩陣。如果是分子布局,則矩陣的第一個(gè)維度以分子為準(zhǔn),即結(jié)果是一個(gè)的矩陣,如下: 上邊這個(gè)按分子布局的向量對(duì)向量求導(dǎo)的結(jié)果矩陣,我們一般叫做雅克比 (Jacobian)矩陣。有的資料上會(huì)使用來(lái)定義雅克比矩陣,意義是一樣的。 如果是按分母布局,則求導(dǎo)的結(jié)果矩陣的第一維度會(huì)以分母為準(zhǔn),即結(jié)果是一個(gè)的矩陣,如下: 上邊這個(gè)按分母布局的向量對(duì)向量求導(dǎo)的結(jié)果矩陣,我們一般叫做梯度矩陣。有的資料上會(huì)使用來(lái)定義梯度矩陣,意義是一樣的。 有了布局的概念,我們對(duì)于上面5種求導(dǎo)類(lèi)型,可以各選擇一種布局來(lái)求導(dǎo)。但是對(duì)于某一種求導(dǎo)類(lèi)型,不能同時(shí)使用分子布局和分母布局求導(dǎo)。 但是在機(jī)器學(xué)習(xí)算法原理的資料推導(dǎo)里,我們并沒(méi)有看到說(shuō)正在使用什么布局,也就是說(shuō)布局被隱含了,這就需要自己去推演,比較麻煩。但是一般來(lái)說(shuō)我們會(huì)使用一種叫混合布局的思路,即如果是向量或者矩陣對(duì)標(biāo)量求導(dǎo),則使用分子布局為準(zhǔn),如果是標(biāo)量對(duì)向量或者矩陣求導(dǎo),則以分母布局為準(zhǔn)。對(duì)于向量對(duì)對(duì)向量求導(dǎo),有些分歧,我的所有文章中會(huì)以分子布局的雅克比矩陣為主。 具體總結(jié)如下:
4. 矩陣向量求導(dǎo)基礎(chǔ)總結(jié)有了矩陣向量求導(dǎo)的定義和默認(rèn)布局,我們后續(xù)就可以對(duì)上表中的5種矩陣向量求導(dǎo)過(guò)程進(jìn)行一些常見(jiàn)的求導(dǎo)推導(dǎo)總結(jié)求導(dǎo)方法,并討論向量求導(dǎo)的鏈?zhǔn)椒▌t。
(歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處。歡迎溝通交流: liujianping-ok@163.com) |
|
|
來(lái)自: 又有人找你 > 《深度學(xué)習(xí)》