機器學習反向傳播演算法的數學推導
周志華的西瓜書機器學習被譽為是機器學習的入門寶典,但是這本書對於深度學習的知識介紹非常少,僅僅只是在第五章《神經網路》中對其進行簡單的概括。
這一章對於深度學習的介紹非常淺顯,沒有很深入的對其中的知識進行挖掘,也沒有很複雜的數學推導。
博主在這裡對反向傳播演算法進行數學推導,這裡我使用的方法和周老師有些不同,或許更方便一些。
一、反向傳播演算法概述
誤差反向傳播演算法又稱為BP演算法,是由Werbos等人在1974年提出來的,我們熟知的Hinton也對該演算法做出非常巨大的貢獻。這是一種在神經網路中最為有效的訓練演算法,直到現在還在深度學習中發揮著極其重要的作用。
它是利用輸出後的誤差來估計輸出層前一層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層地反傳下去,從而獲得所有其它各層的誤差估計。這是一種屬於有監督學習的方式,可以對網路中的連線權重做動態調整。
反向傳播演算法和正向傳播演算法相對應,一起構成了神經網路的整個過程:
二、數學推導
在這裡,為方便對模型的理解和數學推導,我們沒有采用西瓜書中的模型表示方式,而是用下圖來對其進行簡化:
- 與輸入層相關的變數和引數:下標
- 與隱含層相關的變數和引數:下標
- 與輸出層相關的變數和引數:下標
- 激勵函式的輸入:
- 激勵函式的輸出:
- 節點誤差:
則輸入隱藏層和輸出層的量分別為:
隱含層和輸出層的的輸出分別是:
函式的誤差損失為:
BP演算法是基於梯度下降的策略,以目標的負梯度方向對引數進行調整,所以我們用鏈式法則求出誤差的梯度為:
由前文我們得到的關係有:
所以,綜上所得,我們有:
對於誤差,當我們給定學習率為時有:
將和帶入後有:
則得到上式之後,則我們根據進行引數更新。
至此,反向傳播演算法的推導過程全部完成,其他引數的更新與上文相同,這裡不再贅述,讀者感興趣可以用這種方法自己來完成。
相關文章
- 機器學習分享——反向傳播演算法推導機器學習反向傳播演算法
- 【機器學習】李宏毅——何為反向傳播機器學習反向傳播
- 吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法吳恩達機器學習筆記神經網路反向傳播演算法
- 數學推導+Python實現機器學習演算法:線性迴歸Python機器學習演算法
- 數學推導+純Python實現機器學習演算法:邏輯迴歸Python機器學習演算法邏輯迴歸
- 深度學習二:概率和反向傳播的變種深度學習反向傳播
- CUDA教學(2):反向傳播反向傳播
- 機器學習——提升方法AdaBoost演算法,推導過程機器學習演算法
- 【機器學習之數學】01 導數、偏導數、方向導數、梯度機器學習梯度
- 卷積神經網路(CNN)反向傳播演算法公式詳細推導卷積神經網路CNN反向傳播演算法公式
- 反向傳播演算法的暴力理解反向傳播演算法
- MCMC-2|機器學習推導系列(十六)機器學習
- 零基礎深度學習入門:由淺入深理解反向傳播演算法深度學習反向傳播演算法
- 常見機器學習演算法背後的數學機器學習演算法
- 正向傳播和反向傳播反向傳播
- 詳解 BackPropagation 反向傳播演算法!反向傳播演算法
- 深度學習與CV教程(4) | 神經網路與反向傳播深度學習神經網路反向傳播
- 【機器學習】邏輯迴歸過程推導機器學習邏輯迴歸
- 機器學習 | 深入SVM原理及模型推導(一)機器學習模型
- 【機器學習】新手必看的十種機器學習演算法機器學習演算法
- 科學家提出超越傳統機器學習的量子演算法機器學習演算法
- 《神經網路的梯度推導與程式碼驗證》之CNN的前向傳播和反向梯度推導神經網路梯度CNN
- 《神經網路的梯度推導與程式碼驗證》之LSTM的前向傳播和反向梯度推導神經網路梯度
- 深度學習還不如淺層網路?RL教父Sutton持續反向傳播演算法登Nature深度學習反向傳播演算法
- 機器學習的數學焦慮機器學習
- 機器學習--白板推導系列筆記1 開篇機器學習筆記
- 機器學習演算法學習筆記機器學習演算法筆記
- 《神經網路的梯度推導與程式碼驗證》之FNN(DNN)的前向傳播和反向梯度推導神經網路梯度DNN
- 機器學習演算法機器學習演算法
- 機器學習入門學習筆記:(2.1)線性迴歸理論推導機器學習筆記
- 深度學習的優化器(各類 optimizer 的原理、優缺點及數學推導)深度學習優化
- 機器學習學習中,數學最重要!機器學習
- 量子機器學習為傳統的AI演算法注入活力機器學習AI演算法
- 機器學習/深度學習書單推薦及學習方法機器學習深度學習
- 2.反向傳播反向傳播
- 【TensorFlow篇】--反向傳播反向傳播
- 我們該如何學習機器學習中的數學機器學習
- 強化學習-學習筆記7 | Sarsa演算法原理與推導強化學習筆記演算法