电竞比分网-中国电竞赛事及体育赛事平台

分享

機(jī)器學(xué)習(xí)中的矩陣向量求導(dǎo)(一) 求導(dǎo)定義與求導(dǎo)布局

 又有人找你 2021-03-17

    在之前寫(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)量y對(duì)標(biāo)量x的求導(dǎo),可以表示為?y?x。

    有些時(shí)候,我們會(huì)有一組標(biāo)量yi,i=1,2,...,m來(lái)對(duì)一個(gè)標(biāo)量x的求導(dǎo),那么我們會(huì)得到一組標(biāo)量求導(dǎo)的結(jié)果:

?yi?x,i=1,2.,,,m

    如果我們把這組標(biāo)量寫(xiě)成向量的形式,即得到維度為m的一個(gè)向量y對(duì)一個(gè)標(biāo)量x的求導(dǎo),那么結(jié)果也是一個(gè)m維的向量:?y?x

    可見(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)的自變量用x表示標(biāo)量,x表示n維向量,X表示m×n維度的矩陣,求導(dǎo)的因變量用y表示標(biāo)量,y表示m維向量,Y表示p×q維度的矩陣。

2. 矩陣向量求導(dǎo)定義

    根據(jù)求導(dǎo)的自變量和因變量是標(biāo)量,向量還是矩陣,我們有9種可能的矩陣求導(dǎo)定義,如下:

自變量\因變量 標(biāo)量y 向量y 矩陣Y
標(biāo)量x ?y?x ?y?x ?Y?x
向量x ?y?x ?y?x ?Y?x
矩陣X ?y?X ?y?X ?Y?X

 

    這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è)向量y對(duì)一個(gè)標(biāo)量x的求導(dǎo),那么結(jié)果也是一個(gè)m維的向量:?y?x。這是我們表格里面向量對(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ō),如果向量y是一個(gè)m維的列向量,那么求導(dǎo)結(jié)果?y?x也是一個(gè)m維列向量。如果如果向量y是一個(gè)m維的行向量,那么求導(dǎo)結(jié)果?y?x也是一個(gè)m維行向量。

    對(duì)于分母布局來(lái)說(shuō),我們求導(dǎo)結(jié)果的維度以分母為主,比如對(duì)于我們上面對(duì)標(biāo)量求導(dǎo)的例子,如果向量y是一個(gè)m維的列向量,那么求導(dǎo)結(jié)果?y?x是一個(gè)m維行向量。如果如果向量y是一個(gè)m維的行向量,那么求導(dǎo)結(jié)果?y?x是一個(gè)m維的列向量向量。

    可見(jiàn),對(duì)于分子布局和分母布局的結(jié)果來(lái)說(shuō),兩者相差一個(gè)轉(zhuǎn)置。

    再舉一個(gè)例子,標(biāo)量y對(duì)矩陣X求導(dǎo),那么如果按分母布局,則求導(dǎo)結(jié)果的維度和矩陣X的維度m×n是一致的。如果是分子布局,則求導(dǎo)結(jié)果的維度為n×m。

    這樣,對(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維列向量y對(duì)n維列向量x求導(dǎo)。它的求導(dǎo)結(jié)果在分子布局和分母布局各是什么呢?對(duì)于這2個(gè)向量求導(dǎo),那么一共有mn個(gè)標(biāo)量對(duì)標(biāo)量的求導(dǎo)。求導(dǎo)的結(jié)果一般是排列為一個(gè)矩陣。如果是分子布局,則矩陣的第一個(gè)維度以分子為準(zhǔn),即結(jié)果是一個(gè)m×n的矩陣,如下:

?y?x=(?y1?x1?y1?x2?y1?xn?y2?x1?y2?x2?y2?xn?????ym?x1?ym?x2?ym?xn)

    上邊這個(gè)按分子布局的向量對(duì)向量求導(dǎo)的結(jié)果矩陣,我們一般叫做雅克比 (Jacobian)矩陣。有的資料上會(huì)使用?y?xT來(lái)定義雅克比矩陣,意義是一樣的。

    如果是按分母布局,則求導(dǎo)的結(jié)果矩陣的第一維度會(huì)以分母為準(zhǔn),即結(jié)果是一個(gè)n×m的矩陣,如下:

?y?x=(?y1?x1?y2?x1?ym?x1?y1?x2?y2?x2?ym?x2?????y1?xn?y2?xn?ym?xn)

    上邊這個(gè)按分母布局的向量對(duì)向量求導(dǎo)的結(jié)果矩陣,我們一般叫做梯度矩陣。有的資料上會(huì)使用?yT?x來(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é)如下:

自變量\因變量 標(biāo)量y 列向量y 矩陣Y
標(biāo)量x /

?y?x

分子布局:m維列向量(默認(rèn)布局)

分母布局:m維行向量

?Y?x

分子布局:p×q矩陣(默認(rèn)布局)

分母布局:q×p矩陣

列向量x

?y?x

分子布局:n維行向量

分母布局:n維列向量(默認(rèn)布局)

?y?x

分子布局:m×n雅克比矩陣(默認(rèn)布局)

分母布局:n×m梯度矩陣

/
矩陣X

?y?X

分子布局:n×m矩陣

分母布局:m×n矩陣(默認(rèn)布局)

/ /

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) 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多