版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、機器學習:一步步教你理解反向傳播方法在閱讀反向傳播方法的時候,看到了這篇通過示例給出 反向傳播的博文 A Step by Step Backpropagation Example 在這篇博文中,作者通過一個簡單的示例,給出了反向傳播 的過程的過程,非常的清晰,遂結合自己的理解翻譯之,希 望對反向傳播方法有所理解的朋友有些許幫助。背景 反向傳播在神經(jīng)網(wǎng)絡的訓練過程中雖然用得如此之多,但是 在網(wǎng)上還很少有通過具體的實例來解釋反向傳播怎么工作 的博文。所以在這篇文章中,我會嘗試用一個具體的例子來 解釋反向傳播過程,這樣有需要的朋友就可以通過自己的計 算過程來判斷自己對于反向理解的過程是否到位。 你可
2、以在我的 Gihub 上找個我寫的反向傳播的 Python 實現(xiàn) 代碼。概覽在這篇博文中,我們會使用有 2 個輸入單元的神經(jīng)網(wǎng)絡, 2 個隱層神經(jīng)元以及 2 個輸出神經(jīng)元。此外,隱層和輸出神經(jīng) 元會包含一個偏置,下面是基本的網(wǎng)絡結構: 為了便于后面說明的說明,我們對該網(wǎng)絡設置一些初始的權重、偏置以及輸入和輸出:反向傳播的目標是對權重進行優(yōu)化,使得神經(jīng)網(wǎng)絡能夠學習 到從任意的輸入到輸出的準確映射。在這篇博文中,我們僅使用一個簡單的訓練集,即輸入為0.05 和 0.10 ,我們希望網(wǎng)絡的輸出為 0.01 和 0.99( 即輸入的 樣本是兩個 : (0.05, 0.99), (0.10, 0.99)
3、 。前向傳播 首先來看看對于給定的初始化權重和偏置,網(wǎng)絡對于輸入 0.05 和 0.10 的輸出是啥。我們將輸入輸進網(wǎng)絡中。 我們先計算從全部網(wǎng)絡的輸入到隱層的每一個神經(jīng)元,激活 函數(shù)采用 logistic 函數(shù),對于從隱層到輸出層,我們重復這 一過程。全部的網(wǎng)絡輸入也被稱為網(wǎng)絡的輸入Derivation ofBackpropagation下面是對于 h1 role=presentation style=position: relative;h1h1 全部網(wǎng)絡輸入的輸入計算過程: neth1=w1i1+w2i2+b11neth1= 0.150.05+0.20.1+0.351=0.37 75 r
4、ole=presentation style=position:.1+0.351=0.3775(譯者注:類比到 CNN 網(wǎng)絡里,這個過程就是卷積過程,得 到特征響應圖 )然后我們將其輸入到激活函數(shù)中,得到輸出 h1 role=presentation style=position: relative;h1h1: outh1=11+eneth1=11+e0.3775=0.5932 69992 role=presentation style=position: relative;outh1=11+eneth1=11+e0.3775=0.593269992ou th1=11+eneth1=11+e0
5、.3775=0.593269992(譯者注:類比到 CNN 網(wǎng)絡里,這個過程特征響應圖經(jīng)過激 活函數(shù)運算的過程 )對于 h2 role=presentation style=position:relative;h2h2 通過上面相同的過程,我們可以得到: outh2=0.596884378 role=presentation style=position: relative;outh2=0.596884378outh2=0.596884378 對于輸入層神經(jīng)元, 將隱層的輸出作為輸入 (譯者注:在 CNN 中,還需要經(jīng)過池化后才能作為下一層的輸入,至于為啥需 要池化, 這里譯者不就解釋了 ),
6、重復上面相同的過程, 我們 可以得到:neto1=w5outh1+w6outh2+b25136507同樣的,重復上面相同的過程,可以得到 O2 role=presentation style=position: relative;O2O2: outO2=0.772928465 role=presentation style=position: relative;outO2=0.772928465outO2=0.772928465 計算總誤差 現(xiàn)在對于輸出的每一個神經(jīng)元,使用平方誤差函數(shù)求和來計 算總的誤差:Etotal=12(targetoutput)2 role=presentation s
7、tyle=position:刀 12(targetoutprelative;Etotal= 刀 12(targetoutput)2Etotal=ut)2output 就是我們的預測 label ,而 target 就是 groundtruth 。 12 role=presentation style=position: relative;1212使得我們在求騙到的時候可以消去 2,不影響模型參數(shù)的結果 求解。對于第一個神經(jīng)元的輸出 O1 role=presentation style=position: relative;O1O1 真實值是 0.01 ,而網(wǎng)絡的 輸出是 0.75136507
8、, 因而第一個神經(jīng)元的輸出誤差為: EO1=12(targetoutput)2=12(0.010.7513 6507)2=0.274811083 2=0.274811083 重復上面過程,可以得到第二個神經(jīng)元的輸出 O2 role=presentation style=position: relative;O2O2 為: EO2=0.023560026 role=presentation style=position: relative;EO2=0.023560026EO2=0.023560026 所以整個神經(jīng)網(wǎng)絡的誤差求和為: Etotal=EO1+EO2=0.274811083+0.023
9、560026=0.2983711 09 role=presentation style=position: relative;Etotal=EO1+EO2=0.274811083+0.023560026= 0.298371109Etotal=EO1+EO2=0.274811083+0.023560026=0.298371109反向傳播 反向傳播的目標是:通過更新網(wǎng)絡中的每一個權重,使得最 終的輸出接近于 groundtruth ,這樣就得到整個網(wǎng)絡的誤差作 為一個整體進行了最小化。輸出層先來考察 w5 role=presentation style=position: relative;w5w
10、5 ,我們想知道對于 w5 role=presentation style=position: relative;w5w5 的改變可以多大程度上影 響總的誤差,也就是 Etotalw5 role=presentation style=position: relative;Etotalw5Etotalw5 。 通過使用鏈式法則,可以得到: Etotalw5=Etotalouto 1outO1netO1netO1w5 role=presentation style=position: relative;Etotalw5=Etotalouto1outO1netO1netO1w5Etotal w5=E
11、totalouto1outO1netO1netO1w5 為了更直觀的表述上面鏈式法則的過程,對其進行可視化: 我們對上面使用鏈式法則得到的每一項分別進行計算。首先,整體誤差關于各個神經(jīng)元的輸出改變了?Etotal=12(targetoutput)2=12(targetO1−outputO1)2+12(targetO2outputO2)2EtotaloutO1=212(targetO1outputO1)211+0=(targetO1outputO1)=(0.010.75136507)=0.74136507 role=presentation style=position:relat
12、ive;Etotal= 刀 12(targetoutput)2=12(targetO1outputO1)2+12(targetO2outputO2)2EtotaloutO1=212(targetO1out4136507Etotal= 刀 12(targetoutput)2= 12(targetO1outputO1)2+12(targetO2outputO2)2EtotaloutO1=212(targetO1outpu36507logistic 函數(shù)的偏導數(shù)為輸出乘以 1 減去輸出,即:outO1=11+enetO1outO1netO1=outO1(1outO1)=0.75136507(10.7
13、5136507)=0.186815602 role=presentation style=position:relative;outO1=11+enetO1outO1netO1=outO1(1outO1)=0.75136507(10.75136507)=0.186815602outO1=11+enetO1outO1netO1=outO1(1outO1)=0.75136507(10.75136507)=0.186815602最后,整個網(wǎng)絡的輸入 O1 role=presentationstyle=position: relative;O1O1 關于 w5 role=presentation st
14、yle=position: relative;w5w5 改變了 多少呢? netO1=w5outh1+w6outh2+b2 1Etotalw5=Etotalout o1outO1netO1netO1w5Etotalw5=0.741 365070.1868156020.593269992=0.08 2167041 你也會看到用 delta 規(guī)則表示的形式: Etotalw5=(targetO1 outO1)outO1(1outo1)outh1 role=presentation style=position: relative;Etotalw5=(targetO1outO1)outO1(1out
15、o1)outh1E totalw5=(targetO1outO1)outO1(1outo1)outh1 我們可以將 EtotaloutO1role=presentation style=position: relative;EtotaloutO1EtotaloutO1 和 outO1netO1 role=presentation style=position: relative;outO1netO1outO1netO1 寫為 EtotalnetO1 role=presentation style=position: relative;EtotalnetO1EtotalnetO1,并用O1 ro
16、le=presentation style=position:relative; 8 O18表示它,從而可以將上面的式子表示為: O1=Etotalouto1outO1netO1O1=(target O1outO1)outO1(1outo1) role=presentation style=position:relative; 8 O1=Etotalouto1outO1netO1 8 O1=(targetO1out O1)outO1(1outo1) 8 O1=Etotalouto1outO1netO1 8 O1=(targ etO1outO1)outO1(1outo1)因此有:Etotalw5
17、=O1outh1role=presentation style=position: relative;Etotalw5= 8 O1outh1Etotalw5= 8 O1outh1 有一些論文中通過將負號從 role=presentation style=position: relative; 中提8出8來將其也可以寫為下面 這種形式:Etotalw5=O1outh1role=presentation style=position:relative;Etotalw5= 8 O1outh1Etotalw5= 8 Olouthl為了減小誤差,我們將 w5 role=presentation styl
18、e=position: relative;w5w5 原來的值減去目前的權重(通常會乘上一個學習率 role=presentationstyle=position: relative;nn,這里我們將其設置為w5+=w5Etotalw5 role=presentation style=position: relative;w+5=w5 n Etotalw5w5+=w5 n Etotalw5學習率在不同的文章中可以記法不一樣,有用 role=presentation style=p osition: relative; 的,有用 role=presentation style=position:r
19、elative; 的n 有用 role=presentation style=position: relative; 的。和 w8重復上面的過程,我們可以得到更新后的 w6 role=presentation style=position: relative;w6w6 、w7 role=presentation style=position: relative;w7w7 role=presentation style=position: relative;w8w8w6+=0.408666186w7+=0.511301270w8+=0.561370121role=presentation sty
20、le=position: relative;w+6=0.408666186w+7=0.511301270w+8=0.56 1370121w6+=0.408666186w7+=0.511301270w8+=0.561 370121 注意,在我們繼續(xù)向前推進反向傳播的時候,在要使用到 w5 role=presentation style=position: relative;w5w5、w6 role=presentation style=position: relative;w6w6、w7 role=presentation style=position: relative;w7w7和w8 rol
21、e=presentation style=position: relative;w8w8的地方,我們?nèi)匀皇褂玫氖窃瓉淼臋嘀兀?而不是更新后的權重。 隱層我們繼續(xù)推進反向傳播來計算 style=position: relative;w1w1 style=position: relative;w2w2 style=position: relative;w3w3 style=position: relative;w4w4w1 role=presentation、 w2 role=presentation、 w3 role=presentation和 w4 role=presentation 更新的權
22、重:同樣使用鏈式法則,我們可以得到:Etotalw1=Etotalouth 1outh1neth1neth1w1 role=presentation style=position:relative;Etotalw1=Etotalouth1outh1neth1neth1w1Etotal w1=Etotalouth1outh1neth1neth1w1可視化上面的鏈式法則:對于這一層 (隱層 ) 的更新我們采用上面輸出層相似的處理方 式,不過會稍有不同,這種不同主要是因為每一個隱層神經(jīng) 元的輸出對于最終的輸出都是有貢獻的。我們知道 outh1 role=presentation style=posi
23、tion: relative;outh1outh1 既影響 outO1 role=presentation style=position: relative;outO1outO1 也影響 outO2 role=presentation style=position: relative;outO2outO2 ,因此 Etotalouth1 role=presentation style=position: relative;Etotalouth1Etotalouth1 需要同時 考慮到這兩個輸出神經(jīng)元影響: Etotalouth1=EO1out h1+EO2outh1 role=presenta
24、tion style=position: relative;Etotalouth1=EO1outh1+EO2outh1Etotalouth1= EO1outh1+EO2outh1 又由于: EO1outh1=EO1net O1netO1outh1 role=presentation style=position:relative;EO1outh1=EO1netO1netO1outh1EO1outh1=EO1netO1netO1outh1我們可以用前面計算的值來計算EO1netO1 role=presentationstyle=position: relative;EO1netO1EO1netO
25、1:EO1netO1=EO1outO1outO1netO1=0.741365070.186815602=0.138498562 role=presentation style=position:relative;EO1netO1=EO1outO1outO1netO1=0.74136507又因為 netO1outh1 role=presentation style=position: relative;netO1outh1netO1outh1 等于 w5 role=presentation style=position: relative;w5w5: netO1=w5outh1+w6outh2+
26、b21netO1outh1=w5=0.40role=presentation style=position: relative;netO1=w5outh1+w6outh2+b21netO1outh1=w5= 0.40netO1=w5outh1+w6outh2+b21netO1outh1=w5=0.40 將上面每步分開算的結果合起來得:EO1outh1=EO1netO1netO1outh1=0.138498562 0.40=0.055399425 role=presentationstyle=position:relative;EO1outh1=EO1netO1netO1outh1=0.1384
27、985620.40=0.055399425EO1outh1=EO1netO1netO1outh1=0.1384985620.40=0.055399425 與上面的步驟一樣,我們可以得到: EO2outh1=w5=0.019049119 role=presentation style=position:relative;EO2outh1=w5=0.019049119EO2outh1=w5=0.019049119因此:Etotalouth1=EO1outh1+EO2outh1=0.055399425+(0.019049119)=0.036350306 role=presentation style
28、=position:relative;Etotalouth1=EO1outh1+EO2outh1=0.055399425+(0.019049119)=0.036350306Etotalouth1=EO1outh1+EO2outh1=0.055399425+(0.019049119)=0.036350306現(xiàn)在我們已經(jīng)有了 Etotalouth1 role=presentation style=position: relative;Etotalouth1Etotalouth1 ,我們還需要為每一個需 要更新的權重計算 outh1neth1 role=presentation style=posi
29、tion: relative;outh1neth1outh1neth1 和 neth1w role=presentation style=position: relative;neth1wneth1w : outh1=11+e(neth1)outh1neth1=outh1(1 outh1)=0.59326999(10.59326999)=0.2 41300709 role=presentation style=position: relative;outh1=11+e(neth1)outh1neth1=outh1(1outh1)=0 .59326999(10.59326999)=0.24130
30、0709outh1=11+e(neth1 )outh1neth1=outh1(1outh1)=0.59326999(10.59326999)=0. 241300709 如我們前面對于輸出神經(jīng)元所做的一樣,我們計算 h1 role=presentation style=position: relative;h1h1 的全部 輸入關于 w1 role=presentation style=position: relative;w1w1 求偏導: neth1=w1i1+w2i2+b11neth1w1=i1=0.05 role=presentation style=position: relative
31、;neth1=w1i1+w2i2+b11neth1w1=i1=0.05neth1= w1i1+w2i2+b11neth1w1=i1=0.05將上面計算的各個部分合起來:Etotalw1=Etotalouth1outh1neth1neth1w1Etotalw1=0.0363502413007090.05=0.000438568你可以可能會看到下面的這種寫法: Etotalw1=(OEtotal& #x2202;outOoutOnetOnetOouth1)outh1 neth1neth1w1Etotalw1=(OO whO)outh1(1outh1)i Etotalw1=h1i1 role=presentation style=position
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度印刷廠與出版社合作打印合同范本4篇
- 2025年度外墻保溫技術改造項目施工合同書3篇
- 2025年度生態(tài)旅游開發(fā)承包合同模板4篇
- 2024舞蹈賽事組織與管理服務合同
- 2025年度特色小吃店聯(lián)合經(jīng)營合同3篇
- 2025年度廚房設備安裝與用戶培訓支持合同3篇
- 2025年度物流中心承包經(jīng)營合作協(xié)議書4篇
- 2024退學協(xié)議書:涉及在線教育平臺學員退費及課程重置合同3篇
- 2024網(wǎng)絡安全防護系統(tǒng)技術開發(fā)與服務合同
- 2024版設備軟件采購及技術服務合同
- 上海車位交易指南(2024版)
- 醫(yī)學脂質的構成功能及分析專題課件
- 通用電子嘉賓禮薄
- 錢素云先進事跡學習心得體會
- 道路客運車輛安全檢查表
- 宋曉峰辣目洋子小品《來啦老妹兒》劇本臺詞手稿
- 附錄C(資料性)消防安全評估記錄表示例
- 噪音檢測記錄表
- 推薦系統(tǒng)之協(xié)同過濾算法
- 提高筒倉滑模施工混凝土外觀質量QC成果PPT
- 小學期末班級頒獎典禮動態(tài)課件PPT
評論
0/150
提交評論