![反向傳播算法的工作原理_第1頁](http://file4.renrendoc.com/view/612a18dc33a975983ea4087b01751c34/612a18dc33a975983ea4087b01751c341.gif)
![反向傳播算法的工作原理_第2頁](http://file4.renrendoc.com/view/612a18dc33a975983ea4087b01751c34/612a18dc33a975983ea4087b01751c342.gif)
![反向傳播算法的工作原理_第3頁](http://file4.renrendoc.com/view/612a18dc33a975983ea4087b01751c34/612a18dc33a975983ea4087b01751c343.gif)
![反向傳播算法的工作原理_第4頁](http://file4.renrendoc.com/view/612a18dc33a975983ea4087b01751c34/612a18dc33a975983ea4087b01751c344.gif)
![反向傳播算法的工作原理_第5頁](http://file4.renrendoc.com/view/612a18dc33a975983ea4087b01751c34/612a18dc33a975983ea4087b01751c345.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、(23)反向傳播算法的工作原理(1)反向傳播算法是神經(jīng)網(wǎng)絡(luò)中的重要算法,通過它能夠快速計算梯度,進(jìn)而通過梯度下降實現(xiàn)權(quán)重和偏置參數(shù)的更新反向傳播算法最初是在20世紀(jì)70年代被引入的,但直到1986年大衛(wèi)魯梅爾哈特、杰弗里辛頓和羅納德威廉姆斯合作的一篇著名論文問世后,人們才充分認(rèn)識到它的重要性。這篇論文描述了幾種神經(jīng)網(wǎng)絡(luò),其中反向傳播比以前的方法快得多,使人們有可能利用神經(jīng)網(wǎng)絡(luò)來解決以前無法解決的問題。如今,反向傳播算法是神經(jīng)網(wǎng)絡(luò)中所要學(xué)習(xí)的主要內(nèi)容。本文的內(nèi)容中涉及到更多的數(shù)學(xué)問題。如果你對數(shù)學(xué)不感興趣,可以把反向傳播當(dāng)作一個黑匣子,忽略其中的細(xì)節(jié)。但是,如果想深入理解神經(jīng)網(wǎng)絡(luò),還是有必要花時
2、間研究這些細(xì)節(jié)的。反向傳播的核心思想是代價函數(shù)C相對于網(wǎng)絡(luò)中任何權(quán)重w(或偏置b)的偏導(dǎo)數(shù)dC/dw,此式說明,更新權(quán)重和偏差時,代價函數(shù)的變化程度。雖然表達(dá)式有點復(fù)雜,但它的每一個元素都有一個自然的、直觀的解釋。所以反向傳播不僅僅是一種可供學(xué)習(xí)的快速算法,它也為我們詳細(xì)解釋了權(quán)重和偏置的改變,從而提升網(wǎng)絡(luò)的整體預(yù)測能力。這很值得詳細(xì)研究?;诰仃嚨挠嬎阍谟懻摲聪騻鞑ブ埃屛覀兿扔靡粋€基于矩陣的快速算法來計算神經(jīng)網(wǎng)絡(luò)的輸出。首先要明確一些符號的意義,文中會用wjk表示從(l1)th層的第kth個神經(jīng)元到Ith層的第jth個神經(jīng)元的連接權(quán)重參數(shù)。下圖顯示的是從網(wǎng)絡(luò)第二層的第四個神經(jīng)元到第三層的
3、第二個神經(jīng)元的連接的權(quán)重:1Uyer2lsyer3訥*isthewenghtfromthe爐neuronithe1嚴(yán)窮ertothejthueurcminthe抄layer這種記法一開始很麻煩,要掌握它確實需要費些功夫。但只要稍加努力,你就會發(fā)現(xiàn)這種記法變得簡單而自然。它的一個奇怪之處是j和k的順序。你可能認(rèn)為更合理的操作是:使用j表示輸入神經(jīng)元、k表示輸出神經(jīng)元,反之就不成立了,是這樣。下面將解釋這個奇怪現(xiàn)象的原因。我們使用類似的符號來表示網(wǎng)絡(luò)的偏置和激活結(jié)果。bj表示Ith層中的jth神經(jīng)元的偏差;用窗來表示激活I(lǐng)th層中的沖神經(jīng)元。下面的圖表展示了這些符號的應(yīng)用:layer1layer2
4、layer3(23)(23)有了這些符號,ith層中的淪神經(jīng)元的激活a與(ii)th層中的激活產(chǎn)生了關(guān)聯(lián),公式如下:其中,求和表示的是(l-1)th層中所有神經(jīng)元共計k個。為了以矩陣形式重寫這個表達(dá)式,我們?yōu)槊總€層I定義一個權(quán)重矩陣wl,權(quán)重矩陣wl的各項是連接到神經(jīng)元的Ith層的權(quán)重,也就是說,jth行和kth列中的項是wjk。類似地,對于每個層l,我們定義一個偏差向量,勺。你也許可以猜出這樣操作的原理一一偏差向量的元素bj,是Ith層中每個神經(jīng)元的一個分量。最后,我們定義了一個激活函數(shù)的輸出向量al,它的分量是j將(23)式用矩陣形式重寫,不過,這里還需要將激活函數(shù)()向量化。基本想法是函
5、數(shù)應(yīng)用于向量v中的每個元素,于是用符號(V)來表示函數(shù)的這種應(yīng)用,也就是說,r(v)的分量只是”(v)j=b(vj)。舉個例子,對于函數(shù)f(x)=x2,f矢量化形式的效果如下:2f(2)4f(3)=f(3)9也就是說,矢量化的f只是對矢量的每個元素求平方。有了這些符號,我們就可以把式(23)改寫成漂亮而緊湊的矢量化形式:al=(wlal-1+bl)(25)這個表達(dá)式使我們可以從全局的角度來思考問題:一個層里的激活函數(shù)是如何與前一層里的激活輸出相關(guān)聯(lián)的。我們只需將權(quán)重矩陣應(yīng)用于激活函數(shù),然后添加偏置向量,最后應(yīng)用函數(shù)(順便說一下,正是這個表達(dá)式激活了前面提到的wjk符號中的怪現(xiàn)象。如果我們用j來
6、表示輸入的神經(jīng)元,用k來表示輸出的神經(jīng)元,那么,我們需要用權(quán)重矩陣的轉(zhuǎn)置來代替方程(25)中的權(quán)重矩陣。這是一個很小的改變,但是很煩人,我們將失去簡單易懂的說法(和想法):“將權(quán)重矩陣應(yīng)用于激活函數(shù)”。與我們現(xiàn)在所采用的逐神經(jīng)元觀點相比,這種全局觀點通常更簡單、更簡潔(涉及的指數(shù)更少!)。這種方法可以使我們逃離“角標(biāo)地獄”,同時仍然精確地表述所發(fā)生的情況。該表達(dá)式在實踐中也很有用,因為大多數(shù)矩陣庫提供了實現(xiàn)矩陣乘法、矢量加法和矢量化的快速方法。當(dāng)使用方程(25)計算a時,我們計算中間量Z三wlal-1+bl。把zl稱為層l中的神經(jīng)元的加權(quán)輸入。我們將在后半部分大量使用加權(quán)輸入zl。方程(25)
7、有時用加權(quán)輸入來表示,如:a=a(zl)o同樣值得注意的是,zl包含zj=Ekwjkaj-1+bj,也就是說,zj只是層I中神經(jīng)元j的激活函數(shù)的加權(quán)輸入。代價函數(shù)的兩個假設(shè)反向傳播的目標(biāo)是計算代價函數(shù)C相對于網(wǎng)絡(luò)中任何權(quán)重w或偏置b的偏導(dǎo)數(shù)dC/dw和dC/db。為了使反向傳播有效,我們需要對代價函數(shù)的形式做兩個主要的假設(shè)。不過,在陳述這些假設(shè)之前,先考慮以示例說明代價函數(shù)。以下是二次代價函數(shù)的形式:1工C=2nxll(x)叢(x)|2其中,n是訓(xùn)練示例的總數(shù);刀x是對所有單個訓(xùn)練示例求和;y=y(x)是相應(yīng)的真實輸出;L表示網(wǎng)絡(luò)中的層數(shù);aL=aL(x)是輸入x時從網(wǎng)絡(luò)輸出的激活向量(即網(wǎng)絡(luò)
8、的預(yù)測值)。那么,為了應(yīng)用反向傳播,我們需要對代價函數(shù)C做什么樣的假設(shè)呢?第一個假設(shè)是,對于單個訓(xùn)練示例x,可以把代價函數(shù)寫成一個平均值C=IExCx,而不是Cx。對于二次代價函數(shù)來說,情況就是如此。其中單個訓(xùn)練示例的代價為Cx=2Hy-aLI2。這個假設(shè)也適用于所有其他的代價函數(shù)。之所以需要這個假設(shè),是因為反向傳播實際上允許我們計算一個訓(xùn)練集的偏導(dǎo)數(shù)dCx/dw和dCx/db。然后,我們通過對訓(xùn)練模型求平均值來恢復(fù)dC/dw和dC/db。事實上,基于這個假設(shè),我們認(rèn)為訓(xùn)練示例x已修復(fù),并刪除x下標(biāo),將代價Cx寫成C。我們最終會讓x回到原處,但目前它是一個令人討厭的符號,最好還是隱式的。我們對
9、代價的第二個假設(shè)是,它可以寫成神經(jīng)網(wǎng)絡(luò)輸出的函數(shù):例如,二次代價函數(shù)滿足這一要求,因為單個訓(xùn)練示例/的二次代價可以寫成:(27)Ej(j-ajL)2代價函數(shù)也取決于真實值。你可能感到疑惑:為什么我們不把代價也看作是y的函數(shù)?不過,請記住,輸入訓(xùn)練示例/是固定的,因此輸出y也是一個固定參數(shù)。特別是,y不是我們可以通過改變權(quán)重和偏差來修改的。也就是說,它不是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的東西。因此,將C看作是aL的函數(shù),而y只是一個幫助定義該函數(shù)的參數(shù)。矩陣的Hadamard積sOt反向傳播算法基于常見的線性代數(shù)運算,如矢量加法、矢量乘矩陣等。但其中一種運算不太常用。假設(shè)s和t是同一維的兩個矢量。然后我們使用sO
10、t來表示這兩個矢量的對應(yīng)元素的積。因此,sOt的分量僅為(sOt)j=Sjtj。例如,12-1x3-3=2x4=8這種矩陣的對應(yīng)元素相乘被稱為矩陣的Hadamard積。很多支持矩陣計算的庫通常提供了Hadamard積的函數(shù)或算式,這在實現(xiàn)反向傳播時非常有用。反向傳播幕后的四個基本方程反向傳播能夠讓網(wǎng)絡(luò)中的權(quán)重和偏置參數(shù)更新,從而最小化代價函數(shù),這意味著計算偏導(dǎo)數(shù)dC/dwjk和dC/dbj。但是為了便于計算,我們首先引入一個中間量j它表示Ith層的jth神經(jīng)元誤差。反向傳播將為我們提供一個計算誤差略的過程,然后將町與dC/dwjk和dC/dbj關(guān)聯(lián)起來。為了理解這個誤差是如何定義的,我們想象在
11、神經(jīng)網(wǎng)絡(luò)中有一個精靈:neuron,j,layerI精靈坐在I層的jth神經(jīng)元上。當(dāng)輸入結(jié)果傳給神經(jīng)元時,精靈就會擾亂神經(jīng)元的運作。它在神經(jīng)元的加權(quán)輸入中增加了一點變化因此神經(jīng)元輸出的不是6(zj),而是輸出6(zj+zj)o這種變化會在網(wǎng)絡(luò)中的后續(xù)層傳播,最終導(dǎo)致總代價發(fā)生變化,變化的幅度為:dCdzjzjode現(xiàn)在,這個精靈表現(xiàn)很好,它試圖幫助你減少代價。也就是說,他試圖找到一個使代價更小的zj。假設(shè)dzj有一個很大的值(正或負(fù)),ldCdCl精靈可以選擇zj,獲取與dzj相反的符號,從而實現(xiàn)梯度下降。相比之下,如果dzj接近于零,那么精靈無法通過擾動加權(quán)輸入zj來減少代價。這是精靈會認(rèn)為
12、,神經(jīng)元已經(jīng)接近最佳狀態(tài)(當(dāng)然,這種情況只適合于小的改變厶zj。我們假設(shè)精靈會被迫做出這么小的改變)。de所以,瞄是對神經(jīng)元誤差的度量。受此啟發(fā),我們在l層中定義神經(jīng)元j的誤差&,其表達(dá)式為:(29)按照通常的約定,使用刃來表示與層l相關(guān)的誤差向量。反向傳播將為我們提供一種計算每層的刃的方法,然后將這些誤差與實際感興趣的量dC/dwjk和dC/dbj相關(guān)聯(lián)。你可能感到疑惑:為什么精靈要更改加權(quán)輸入zj?或許,想象它更改輸出激活aj會更自然,因為這樣的更改使我們能夠利用爲(wèi)作為誤差的度量標(biāo)準(zhǔn)。事實上,如果你這樣做,結(jié)果會和下面的討論非常相似。但這種做法使反向傳播在代數(shù)表達(dá)上更為復(fù)雜。因此,我們將堅
13、持使dC用3j=瞄作為誤差度量標(biāo)準(zhǔn)。制勝計劃:反向傳播基于四個基本方程。這些方程為我們提供了一種計算誤差刃和代價函數(shù)梯度的方法。我講到的是以下四個方程式。不過,需要注意的是:你不應(yīng)該期望在瞬間就掌握這些方程式,期望越高失望越大。事實上,要理解反向傳播,需要相當(dāng)多的時間和耐心,需要逐漸深入研究這些方程。輸出層肛中的誤差方程式:(BP1)dCj=dajaf(zJ)(BP1)給出了皿的分量。這是一個非常自然的表達(dá)。右邊的第一項dC/daL是對jth輸出激活的函數(shù),代價的變化。例如,如果C不太依賴于某個特定的輸出神經(jīng)元j,那么時的值將很小,這是我們所期望的。右邊的第二項E(zj)是激活函數(shù)在zL的導(dǎo)數(shù)
14、。注意,(BP1)中的所有內(nèi)容都很容易計算。特別是,我們計算zf,計算E(zj)只是簡單的求導(dǎo)。當(dāng)然,dC/daL的確切形式取決于代價函數(shù)的形式。但是,如果代價函數(shù)已知,則計算dC/daL應(yīng)該不會有什么問題。例如,如果我們使用二次代價函數(shù)C=2工j(yj-aL)2,容易得出dC/daLj=(aLj-yj),這顯然是很容易計算的。式(BP1)是L的分量式表達(dá)式。這是一個非常好的表達(dá)式,但不是反向傳播所需要的基于矩陣的形式。然而,我們很容易將這個方程改寫為基于矩陣的形式,如:dL=Vcpa(zL)(BP1a)在這里,NaC是一個矢量,其分量是偏導(dǎo)數(shù)dC/Oaf。你可以將NaC看作是C相對于輸出激活
15、的變化率。顯然(BP1a)和(BP1)是等價的,因此從現(xiàn)在起,我們將交替使用(BP1)。例如,在二次代價的情況下,得到NaC=(aL-y)。因此,完全基于矩陣的(BP1)就變成這種形式:6L=(aL一y)a(zL)(30)如你所見,此表達(dá)式中的所有內(nèi)容都有一個很好的矢量形式,并且可以使用諸如Numpy之類的庫輕松地進(jìn)行計算。關(guān)于下一層l+1的誤差&的方程是&=(wi+i)T&i+i)OE(Z)(BP2)其中,(wl+1)T是(l+1)th層的權(quán)重矩陣wl+1的轉(zhuǎn)置。這個方程看起來很復(fù)雜,但每個元素都很好解釋。假設(shè)我們知道(l+1)th層的誤差&l+1。當(dāng)我們應(yīng)用轉(zhuǎn)置權(quán)重矩陣(wl+1)T時,可
16、以直觀地認(rèn)為:這是在網(wǎng)絡(luò)中反向移動誤差,使我們可以對第l層輸出處的誤差進(jìn)行某種衡量。然后,我們?nèi)adamard積刁(刃)。這就通過層l中的激活函數(shù)反向移動誤差,從而使我們得出層l的加權(quán)輸入中的誤差&。將(BP2)與(BP1)相結(jié)合,我們可以計算網(wǎng)絡(luò)中任何層的誤差&1。首先使用(BP1)來計算皿,再應(yīng)用方程(BP2)來計算肛-1,然后再次使用方程(BP2)來計算口-2,在網(wǎng)絡(luò)中依此類推。與網(wǎng)絡(luò)中任何偏置相關(guān)的、代價變化率的方程是:(BP3)也就是說,誤差&正好等于變化率dC/dbj。這是一個好消息,因為(BP1)和(BP2)已經(jīng)告訴我們?nèi)绾斡嬎?。我們可以將(BP3)簡寫為:dCdb=&(31
17、)我們知道&和偏差b是在同一個神經(jīng)元上評估的。與網(wǎng)絡(luò)中任何權(quán)重相關(guān)的、代價變化率的方程是:dCdWjk=a計&(BP4)下所示:dC(32)dw=ain&out這告訴我們?nèi)绾斡嬎闩c&和al-1相關(guān)的偏導(dǎo)數(shù)dC/dwjk,而我們已經(jīng)知道如何計算&和al-1了??梢杂媒菢?biāo)較少的符號改寫方程,如其中,ain是對權(quán)重w的神經(jīng)元輸入的激活,&out是權(quán)重w的神經(jīng)元輸出的誤差。放大查看權(quán)重w,以及由該權(quán)重連接的兩個神經(jīng)元,我們可以將其描述為:方程(32)的一個很好的結(jié)果是:當(dāng)激活ain很小的時候,也就是ain0,梯度項dC/dw也將趨于很小。在這種情況下,權(quán)重學(xué)習(xí)緩慢,這意味著它在梯度下降過程中變化不大。
18、換句話說,(BP4)的一個結(jié)果是低激活神經(jīng)元輸出的權(quán)重學(xué)習(xí)緩慢。從(BP1)到(BP4)中可以得到其他關(guān)于這些方面的理解。我們首先著眼于輸出層。考慮一下(BP1)中的E(zjL),可以使用S型函數(shù)。當(dāng)(zjj)大約為0或1時,函數(shù)變得非常平坦。當(dāng)這種情況發(fā)生時,我們就得到0。因此,要吸取的教訓(xùn)是:如果輸出神經(jīng)元是低激活度(0或高激活度(D,最后一層中的權(quán)重將緩慢學(xué)習(xí)。在這種情況下,通常會說:輸出神經(jīng)元已經(jīng)飽和,因此權(quán)重停止學(xué)習(xí)(或?qū)W習(xí)緩慢)。類似的情況也適用于輸出神經(jīng)元的偏置。我們可以對早期的層獲得類似的結(jié)果。特別要注意(BP2)中的,(刃)項。這意味著:如果神經(jīng)元接近飽和,盼可能會變小。這也意味著:輸入到飽和神經(jīng)元的任何權(quán)重都將學(xué)習(xí)緩慢(如果(wl+1)Tdl+1有足夠大的項來補(bǔ)償8(zj)的小值,這個推理就不成立了。但我說的是總體趨勢
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024秋七年級數(shù)學(xué)上冊 第二章 有理數(shù)2.2數(shù)軸 2在數(shù)軸上比較數(shù)的大小說課稿(新版)華東師大版
- 2023九年級數(shù)學(xué)下冊 第二十八章 銳角三角函數(shù)28.2 解直角三角形及其應(yīng)用28.2.2 應(yīng)用舉例第2課時 方向角和坡角問題說課稿 (新版)新人教版
- Module 7 Unit 2 There are twelve boys on the bike(說課稿)-2024-2025學(xué)年外研版(三起)英語 四年級上冊
- 16赤壁賦說課稿
- 4《說說我們的學(xué)?!罚ㄕf課稿)- 2004-2025學(xué)年統(tǒng)編版道德與法治三年級上冊001
- 2025銷售居間合同勞動合同
- Unit4《Bobbys House》lesson6(說課稿)-2024-2025學(xué)年北師大版(三起)英語四年級上冊
- 10在牛肚子里旅行 說課稿-2024-2025學(xué)年三年級上冊語文統(tǒng)編版
- 16新年的禮物 (說課稿)統(tǒng)編版道德與法治一年級上冊
- 2024年九年級語文上冊 第五單元 第9課《劉姥姥進(jìn)賈府》說課稿 北師大版
- 房屋租賃運營服務(wù)投標(biāo)方案(技術(shù)方案)
- 巖土工程勘察服務(wù)投標(biāo)方案(技術(shù)方案)
- 實驗室儀器設(shè)備驗收單
- 新修訂藥品GMP中藥飲片附錄解讀課件
- 蒙特利爾認(rèn)知評估量表北京版
- 領(lǐng)導(dǎo)干部個人有關(guān)事項報告表(模板)
- 危險化學(xué)品目錄2023
- GB/T 7631.18-2017潤滑劑、工業(yè)用油和有關(guān)產(chǎn)品(L類)的分類第18部分:Y組(其他應(yīng)用)
- GB/T 14258-2003信息技術(shù)自動識別與數(shù)據(jù)采集技術(shù)條碼符號印制質(zhì)量的檢驗
- 政府資金項目(榮譽(yù))申報獎勵辦法
- 最新如何進(jìn)行隔代教育專業(yè)知識講座課件
評論
0/150
提交評論