在之前寫的上百篇機(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)量寫成向量的形式,,即得到維度為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è)向量表示而已,。類似的結(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ò)程中,,如果行向量或者列向量隨便寫,那么結(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)求導(dǎo)。但是對(duì)于某一種求導(dǎo)類型,,不能同時(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)注明出處,。歡迎溝通交流: [email protected]) |
|
來(lái)自: 又有人找你 > 《深度學(xué)習(xí)》