深度學(xué)習(xí)之反向傳播_第1頁
深度學(xué)習(xí)之反向傳播_第2頁
深度學(xué)習(xí)之反向傳播_第3頁
深度學(xué)習(xí)之反向傳播_第4頁
深度學(xué)習(xí)之反向傳播_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

深度學(xué)習(xí)之反向傳輸算法(BackPropagation)算法介紹反向傳輸算法(BP算法)重要由兩個環(huán)節(jié)(激勵傳輸、權(quán)重更新)重復(fù)循環(huán)迭代,直到網(wǎng)絡(luò)的對輸入的響應(yīng)達成預(yù)定的目的范疇為止。BP算法規(guī)定每個人工神經(jīng)元(節(jié)點)所使用的激勵函數(shù)必須是可微的。BP算法特別適合用來訓(xùn)練前向神經(jīng)網(wǎng)絡(luò)。算法原理假設(shè)有一種固定樣本集

,它包含

個樣例。能夠用批量梯度下降法來求解神經(jīng)網(wǎng)絡(luò)。具體來講,對于單個樣例

,其代價函數(shù)(或損失函數(shù))為:這是一種(二分之一的)方差代價函數(shù)。給定一種包含

個樣例的數(shù)據(jù)集,能夠定義整體代價函數(shù)為:以上公式中的第一項

是一種均方差項。第二項是一種規(guī)則化項(也叫權(quán)重衰減項),其目的是減小權(quán)重的幅度,避免過分擬合。[注:普通權(quán)重衰減的計算并不使用偏置項

,例如在

的定義中就沒有使用。普通來說,將偏置項包含在權(quán)重衰減項中只會對最后的神經(jīng)網(wǎng)絡(luò)產(chǎn)生很小的影響。]權(quán)重衰減參數(shù)

用于控制公式中兩項的相對重要性。在此重申一下這兩個復(fù)雜函數(shù)的含義:

是針對單個樣例計算得到的方差代價函數(shù);

是整體樣本代價函數(shù),它包含權(quán)重衰減項。以上的代價函數(shù)經(jīng)常被用于分類和回歸問題。在分類問題中,運用

1,來代表兩種類型的標(biāo)簽(這是由于sigmoid激活函數(shù)的值域為

;如果我們使用雙曲正切型激活函數(shù),那么應(yīng)當(dāng)選用

作為標(biāo)簽)。對于回歸問題,我們首先要變換輸出值域,以確保其范疇為

(同樣地,如果使用雙曲正切型激活函數(shù),要使輸出值域為

)。我們的目的是針對參數(shù)

來求其函數(shù)

的最小值。為了求解神經(jīng)網(wǎng)絡(luò),需要將每一種參數(shù)

初始化為一種很小的、靠近零的隨機值(例如說,使用正態(tài)分布

生成的隨機值,其中

設(shè)立為

),之后對目的函數(shù)使用諸如批量梯度下降法的最優(yōu)化算法。由于

是一種非凸函數(shù),梯度下降法很可能會收斂到局部最優(yōu)解;但是在實際應(yīng)用中,梯度下降法普通能得到令人滿意的成果。最后,需要再次強調(diào)的是,要將參數(shù)進行隨機初始化,而不是全部置為

。如果全部參數(shù)都用相似的值作為初始值,那么全部隱藏層單元最后會得到與輸入值有關(guān)的、相似的函數(shù)(也就是說,對于全部

,都會取相似的值,那么對于任何輸入

都會有:

(圖1))。隨機初始化的目的是使對稱失效。梯度下降法中每一次迭代都按照以下公式對參數(shù)

進行更新:其中

是學(xué)習(xí)速率。其中核心環(huán)節(jié)是計算偏導(dǎo)數(shù)。我們現(xiàn)在來講一下反向傳輸算法,它是計算偏導(dǎo)數(shù)的一種有效辦法。下面來介紹一下如何使用反向傳輸算法來計算

,這兩項是單個樣例

的代價函數(shù)

的偏導(dǎo)數(shù)。一旦求出該偏導(dǎo)數(shù),就能夠推導(dǎo)出整體代價函數(shù)

的偏導(dǎo)數(shù):以上兩行公式稍有不同,第一行比第二行多出一項,是由于權(quán)重衰減是作用于

而不是

。算法實例圖1三層神經(jīng)網(wǎng)絡(luò)上圖是典型的三層神經(jīng)網(wǎng)絡(luò)的基本構(gòu)成,LayerL1是輸入層,LayerL2是隱含層,LayerL3是隱含層,給定某些數(shù)據(jù){x1,x2,x3,...,xn},輸出也是一堆數(shù)據(jù){y1,y2,y3,...,yn},現(xiàn)在將它們在隱含層做某種變換,讓輸入的數(shù)據(jù)訓(xùn)練后得到盼望的輸出。如果輸出和原始輸入同樣,那么就是最常見的自編碼模型(Auto-Encoder)。如果輸出和原始輸入不同,那么就是很常見的人工神經(jīng)網(wǎng)絡(luò)了,相稱于讓原始數(shù)據(jù)通過一種映射來得到但愿輸出的數(shù)據(jù)。在此直接舉一種例子,帶入數(shù)值演示反向傳輸法的過程,假設(shè),有一種網(wǎng)絡(luò)層:第一層是輸入層,包含兩個神經(jīng)元i1,i2,和截距項b1;第二層是隱含層,包含兩個神經(jīng)元h1,h2和截距項b2,第三層是輸出o1,o2,每條線上標(biāo)的wi是層與層之間連接的權(quán)重,激活函數(shù)我們默認為sigmoid函數(shù)。對它們賦上初值,以下圖:其中,輸入數(shù)據(jù)

i1=0.05,i2=0.10;輸出數(shù)據(jù)o1=0.01,o2=0.99;初始權(quán)重

w1=0.15,w2=0.20,w3=0.25,w4=0.30;w5=0.40,w6=0.45,w7=0.50,w8=0.88;目的:給出輸入數(shù)據(jù)i1,i2(0.05和0.10),使輸出盡量與原始輸出o1,o2(0.01和0.99)靠近。前向傳輸輸入層---->隱含層:計算神經(jīng)元h1的輸入加權(quán)和:神經(jīng)元h1的輸出outh1:(此處用到激活函數(shù)為sigmoid函數(shù)):同理,可計算出神經(jīng)元h2的輸出outh2:隱含層---->輸出層:計算輸出層神經(jīng)元o1和o2的值:這樣前向傳輸?shù)倪^程就結(jié)束了,得到輸出值為[0.75136079,0.],與實際值[0.01,0.99]相差還很遠,因此對誤差進行反向傳輸,更新權(quán)值,重新計算輸出。反向傳輸計算總誤差總誤差:(squareerror)由于有兩個輸出,因此分別計算o1和o2的誤差,總誤差為兩者之和:隱含層---->輸出層的權(quán)值更新:以權(quán)重參數(shù)w5為例,如果想懂得w5對整體誤差產(chǎn)生了多少影響,能夠用整體誤差對w5求偏導(dǎo)求出:(鏈?zhǔn)椒▌t)下面的圖能夠更直觀的看清晰誤差是如何反向傳輸?shù)模悍謩e計算每個式子的值:計算:計算:(這一步事實上就是對sigmoid函數(shù)求導(dǎo))計算:最后三者相乘:這樣就計算出整體誤差E(total)對w5的偏導(dǎo)值。根據(jù)w5的偏導(dǎo)值,更新w5的值:(其中,是學(xué)習(xí)速率,這里取0.5)同理,可更新w6,w7,w8:隱含層---->隱含層的權(quán)值更新:計算過程與上述類似,但是有個地方需要變一下,在上文計算總誤差對w5的偏導(dǎo)時,是從out(o1)---->net(o1)---->w5,但是在隱含層之間的權(quán)值更新時,是out(h1)---->net(h1)---->w1,而out(h1)會接受E(o1)和E(o2)兩個地方傳來的誤差,因此這個地方兩個都要計算。計算:先計算:同理,計算出:兩者相加得到總值:再計算:再計算:最后,三者相乘:最后,更新w1的權(quán)值:同理,額可更新w2,w3,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論