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