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