BP反向传播矩阵推导图示详解
?PaperWeekly 原創(chuàng) ·?作者|孫裕道
學(xué)校|北京郵電大學(xué)博士生
研究方向|GAN圖像生成、情緒對(duì)抗樣本生成
背景介紹
BP(反向傳播)是有 Geffrey Hinton 在 1988 年發(fā)表的論文《Learning representations by back-propagating errors》 中首次被提出來。
該論文從題目到內(nèi)容到參考文獻(xiàn)一共 2 頁(yè)半,Hinton 也借此工作榮獲 2018 年的圖領(lǐng)獎(jiǎng)。在深度學(xué)習(xí)領(lǐng)域,BP 的重要程度在怎么強(qiáng)調(diào)也不為過,本文會(huì)從矩陣的視角對(duì) BP 進(jìn)行詳細(xì)推導(dǎo),為了更好地理解 BP 的工作原理,本文也畫了大量的示意圖幫助理解。
本文的公式經(jīng)過自己很多次的推導(dǎo)打磨,盡力做到準(zhǔn)確無誤,每一張圖也是反復(fù)的捉摸力求精準(zhǔn)表達(dá)。本文的閱讀難度確實(shí)很大,但是因?yàn)槠渲匾?#xff0c;我覺得反復(fù)抄寫下面的推導(dǎo),也會(huì)有很多收獲。
引言
在吳恩達(dá)的斯坦福機(jī)器學(xué)習(xí)的講義中關(guān)于 BP 原理的介紹只給出了最后的 BP 矩陣的推導(dǎo)結(jié)果,略去了中間的推導(dǎo)過程。本文會(huì)對(duì)略去的推導(dǎo)過程進(jìn)行補(bǔ)全。為了減少閱讀阻礙,BP 矩陣證明過程會(huì)從預(yù)備知識(shí)開始慢慢鋪展開來,其中最難啃的部分就是矩陣形式的鏈?zhǔn)椒▌t。本文文章結(jié)構(gòu)和的各個(gè)章節(jié)的內(nèi)容如下:
p 3 是一些預(yù)備知識(shí)介紹了矩陣求導(dǎo)的細(xì)節(jié),如果想要看懂之后的 BP 矩陣推導(dǎo)這部分的兩個(gè)小節(jié)一定要看明白
p 4 是關(guān)于 4 層無激活函數(shù)的 BP 推導(dǎo)細(xì)節(jié)
p 5 是關(guān)于 L 層無激活函數(shù)的 BP 推導(dǎo)細(xì)節(jié)
p 6 是關(guān)于 4 層含激活函數(shù)的 BP 推導(dǎo)細(xì)節(jié)
p 7 是關(guān)于 L 層含激活函數(shù)的 BP 推導(dǎo)細(xì)節(jié)
p 8 是對(duì)吳恩達(dá)機(jī)器學(xué)習(xí)講義中關(guān)于 BP 章節(jié)結(jié)果的驗(yàn)證
預(yù)備知識(shí)
3.1 推導(dǎo)形式1
已知, 是標(biāo)量即 ,,,,, 表示向量的 2 范數(shù),將矩陣中各個(gè)維度帶入到公式(1)有如下形式:
令 ,。則對(duì)矩陣 的鏈?zhǔn)椒▌t的求導(dǎo)公式如下所示:
其中 ,,直觀可以發(fā)現(xiàn)等式(3)左右兩邊的雅可比矩陣維度一致。對(duì)矩陣 的鏈?zhǔn)椒▌t的求導(dǎo)公式如下所示:其中 ,,等式(4)左右兩邊的雅可比矩陣維度一致。3.2 推導(dǎo)形式2
? 是激活函數(shù), 是標(biāo)量即 ,,,,, 表示向量的2范數(shù),將矩陣的各個(gè)維度帶入到公式(5)中有如下形式:
令 ,,,,則有:
其中,,即 是一個(gè)對(duì)角矩陣,對(duì)角線的元素為激活函數(shù)的導(dǎo)數(shù)。 和 矩陣的維度一致。
其中, 和 矩陣的維度一致。4 層無激活函數(shù)的神經(jīng)網(wǎng)絡(luò)
▲ 圖1:4層無激活函數(shù)的前向傳播過程
圖 1 表示的是 4 層無激活函數(shù)神經(jīng)網(wǎng)絡(luò)的前向傳播過程,其中損失函數(shù)如下所示:
令 ,根據(jù) p 3 預(yù)備知識(shí)的推導(dǎo)形式 1 的公式(3),(4)可求得:
令 ,,。又因?yàn)?,,,將公式(10),(11),(12)整理為如下所示:
根據(jù)公式(13),(14),(15)將 4 層無激活函數(shù)的 BP 原理可以形象地表示為圖 2,其中圖中虛線框表示為各個(gè)層權(quán)重參數(shù)的梯度,可以發(fā)現(xiàn)各層的權(quán)重參數(shù)梯度由前一層網(wǎng)絡(luò)的前饋計(jì)算值與后一層網(wǎng)絡(luò)傳播的誤差信息整合而來。
▲ 圖2:4層無激活函數(shù)的BP原理圖
L層無激活函數(shù)的神經(jīng)網(wǎng)絡(luò)
▲?圖3:L層無激活函數(shù)的前向傳播過程
圖 3 表示的是 L 層無激活函數(shù)神經(jīng)網(wǎng)絡(luò)的前向傳播過程,其中損失函數(shù)如下所示:
令 ,根據(jù) p 3 預(yù)備知識(shí)的推導(dǎo)形式 1 的公式(3),(4)可求得:
令 ,,,。
又因?yàn)?,,,,,則梯度的通項(xiàng)公式為:
根據(jù)公式(20)將 L 層無激活函數(shù)的 BP 原理可以形象地表示為圖 4 所示:
▲?圖4:L層無激活函數(shù)的BP原理圖
4層含激活函數(shù)的神經(jīng)網(wǎng)絡(luò)
▲?圖5:4層含激活函數(shù)的前向傳播過程
圖 5 表示的是 4 層含激活函數(shù)神經(jīng)網(wǎng)絡(luò)的前向傳播過程,其中損失函數(shù)如下所示:
令 ,根據(jù) p 3 預(yù)備知識(shí)的推導(dǎo)形式 2 的公式(7),(8)可求得:
其中 和 為對(duì)角矩陣,令 ,則有 ,;令 ,,。綜上所述有:
根據(jù)公式(25),(26),(27)將 4 層含激活函數(shù)的 BP 原理可以形象地表示為圖 6,跟 p 4 中的 4 層無激活函數(shù) BP 原理示意圖的差異在于后向傳播的誤差信息需要多乘一個(gè)對(duì)角矩陣 。
▲?圖6:4層含激活函數(shù)的BP原理圖
L 層含激活函數(shù)的神經(jīng)網(wǎng)絡(luò)
▲?圖7:L層含激活函數(shù)的前向傳播過程
圖 7 表示的是 L 層含激活函數(shù)神經(jīng)網(wǎng)絡(luò)的前向傳播過程,其中損失函數(shù)如下所示:
令 ,根據(jù) p 3 預(yù)備知識(shí)的推導(dǎo)形式 2 的公式(7),(8)可求得:
其中, 為對(duì)稱矩陣。,則 ,,;,,,。綜上所述可知梯度的通項(xiàng)公式為:
根據(jù)公式(32)將 L 層含激活函數(shù)的 BP 原理可以形象地表示為圖8所示:
▲?圖8:L層含激活函數(shù)的BP原理圖
驗(yàn)證BP矩陣推導(dǎo)
本節(jié)主要是對(duì)吳恩達(dá)機(jī)器學(xué)習(xí)講義中(ML-AndrewNg-Notes: Coursera)關(guān)于 BP 原理結(jié)論部分的驗(yàn)證,所以本文的主要目的是驗(yàn)證吳中的關(guān)于 BP 結(jié)論與本文的 p 4 之間的結(jié)論是否一致。由于符號(hào)和表示形式的差異,將吳中關(guān)于 BP 原理部分的描述用藍(lán)色字體表示(該部分在),將驗(yàn)證過程用紅色字體表示。
一個(gè) 4 層的神經(jīng)網(wǎng)絡(luò),具體示意圖如下所示:
▲?圖9:吳恩達(dá)機(jī)器學(xué)習(xí)講義中的網(wǎng)絡(luò)結(jié)構(gòu)
從最后一層的誤差開始計(jì)算,誤差是激活單元的預(yù)測(cè) 與實(shí)際值 之間的誤差。用 來表示誤差,則:
利用誤差值 來計(jì)算前一層的誤差:
其中 是 導(dǎo)數(shù), 是經(jīng)權(quán)重 而導(dǎo)致的誤差。第二層的誤差為:
因?yàn)榈谝粚邮禽斎胱兞?#xff0c;不存在誤差,有了所有的誤差表達(dá)式之后,便可以計(jì)算各個(gè)層權(quán)重的偏導(dǎo)數(shù)為:
代表目前所計(jì)算的第幾層, 代表目前計(jì)算層中的激活單元的下標(biāo),也是下一層的第 個(gè)輸入變量的下標(biāo)。 代表下一層中誤差單元的下標(biāo),是受到權(quán)重矩陣中的第 行影響的下一層中的誤差單元的下標(biāo)。
驗(yàn)證:
吳恩達(dá)的這個(gè)講義中關(guān)于 BP 推導(dǎo)中只展示出矩陣推導(dǎo)出的結(jié)果,略出了中間證明的部分,其中的證明過程可以類比本文中的 p 6 中證明過程,為了能夠讓驗(yàn)證 BP 推導(dǎo)過程更清楚,我將吳恩達(dá)機(jī)器學(xué)習(xí)講義中的推導(dǎo)符號(hào)與本文 p 6 中 4 層含激活函數(shù)的神經(jīng)網(wǎng)絡(luò)的符號(hào)進(jìn)行類比如下表所示:
▲?圖10:符號(hào)類比圖
對(duì)比可以發(fā)現(xiàn),驗(yàn)證的重點(diǎn)在于證明 ,,。
1)證明:
因?yàn)?, 都為最后一層的誤差,所以 ,證畢。
2)證明:
由上表幾的轉(zhuǎn)換可知:
其中,,對(duì)比公式(34)和公式(37)可以很容易的發(fā)現(xiàn)這兩個(gè)公式是等價(jià)的,具體的證明如下:
令 為 的列向量,即:
可以容易推知 也是一個(gè) 的列向量,令:
則公式(37)可以重新整理為如下形式:
因?yàn)?#xff0c;,則公式(37)中的矩陣 可以寫成:
則公式(34)可以重新整為如下形式:
根據(jù)公式(40)和(42)可知,,證畢。
3)證明:
證明 過程跟證明 方法一致,在此不過多贅述,證畢。
綜上所述,我們可以發(fā)現(xiàn)講義中的結(jié)論與本文中有如下等價(jià)關(guān)系:
其中,。對(duì)于權(quán)重矩陣 的第 i 行和第 j 列元素的偏導(dǎo)數(shù)即為:
此公式就是講義中最后給出的結(jié)果,這也就完美的驗(yàn)證了我之前的推導(dǎo)是正確的。
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的BP反向传播矩阵推导图示详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红色一百元是哪一年发行的
- 下一篇: CRSLab:可能是最适合你的对话推荐系