反向传播算法 Backpropagation Algorithm
假設我們有一個固定樣本集,它包含 個樣例。我們可以用批量梯度下降法來求解神經網絡。具體來講,對于單個樣例(x,y),其代價函數為:這是一個(二分之一的)方差代價函數。給定一個包含 個樣例的數據集,我們可以定義整體代價函數為:
以上公式中的第一項 是一個均方差項。第二項是一個規則化項(也叫權重衰減項),其目的是減小權重的幅度,防止過度擬合。
[注:通常權重衰減的計算并不使用偏置項 ,比如我們在 的定義中就沒有使用。一般來說,將偏置項包含在權重衰減項中只會對最終的神經網絡產生很小的影響。在貝葉斯規則化方法中,我們將高斯先驗概率引入到參數中計算MAP(極大后驗)估計(而不是極大似然估計)。]
權重衰減參數 用于控制公式中兩項的相對重要性。在此重申一下這兩個復雜函數的含義: 是針對單個樣例計算得到的方差代價函數; 是整體樣本代價函數,它包含權重衰減項。
以上的代價函數經常被用于分類和回歸問題,在分類問題中,我們用y=0或y=1,來代表兩種類型的標簽(回想一下,這是因為sigmoid激活函數的值域為[0,1];如果我們使用雙曲正切型激活函數,那么應該選用-1和+1作為標簽)。對于回歸問題,我們首選要變換輸出值域(也就是y)以保證其范圍為[0,1](同樣地,如果我們使用雙曲正切型激活函數,要使用輸出值域為[-1,1])。
我們的目標是針對W和b來求其函數J(W,b)的最小值。為了求解神經網絡,我們需要將每一個參數 和 初始化為一個很小的,接近零的隨機值(比如說,使用正態分布 生成的隨機值,其中 設置為 ),之后對目標函數使用諸如梯度批量梯度下降法的最優化算法。因為 是一個非凸函數,梯度下降法很可能會收斂到局部最優解;但是實際應用中,梯度下降法通常能夠得到令人滿意的結果,最后,需要再次強調的是,要將參數進行隨機初始化,而不是全部置為0.如果所有參數都用相同的值作為初值,那么所有隱藏層單元最終會得到與輸入值有關的,相同的函數(也就是說,對于所有 ,都會取相同的值,那么對于任何輸入 都會有: )。隨機初始化的目的是使對稱失效。
梯度下降法中每一次迭代都按照如下公式對參數W和b進行更新:
其中 是學習速率。其中關鍵步驟是計算偏導數。我們現在來講一下反向傳播算法,它是計算偏導數的一種有效方法。
我們首先講一下如何使用反向傳播算法來計算 和 ,這兩項是單個樣例 的代價函數 的偏導數。
一旦我們求出該偏導數,就可以推導出整體代價函數 的偏導數:
?
以上兩行公式稍有不同,第一行比第二行多出一項,是因為權重衰減是作用于 而不是 。
反向傳播算法的思路如下:給定一個樣例(x,y),我們首先進行“前向傳導”運算,計算出網絡中所有激活值(我們用 表示第 層第 單元的激活值(輸出值)。)包括 的輸出值()。之后,針對第針對第 層的每一個節點 ,我們計算出其“殘差” ,,該殘差表明了該節點對最終輸出值的殘差產生了多少影響。對于最終的輸出節點,我們可以直接算出網絡產生的激活值與實際值之間的差距,我們將這個差距定義為 (第 層表示輸出層)。對于隱藏單元我們如何處理呢?我們將基于節點(譯者注:第 層節點)殘差的加權平均值計算 ,這些節點以 作為輸入。下面將給出反向傳導算法的細節:
1、進行前饋傳導計算,利用前向傳導公式,得到 直到輸出層 的激 ? ? ? ? ?活值。
2、對于第 層(輸出層)的每個輸出單元 ,我們根據以下公式計算殘差:
?
[譯者注:
]
?
?
3、對 的各個層,第 層的第 個節點的殘差計算方法如下:
{譯者注:
將上式中的與的關系替換為與的關系,就可以得到:
以上逐次從后向前求導的過程即為“反向傳導”的本意所在。]
?
4、計算我們需要的偏導數,計算方法如下:
最后,我們用矩陣-向量表示法重寫以上算法。我們使用“” 表示向量乘積運算符(在Matlab或Octave里用“.*”表示,也稱作阿達馬乘積)。若 ,則 。在上一個教程中我們擴展了 的定義,使其包含向量運算,這里我們也對偏導數 也做了同樣的處理(于是又有 )。
那么,反向傳播算法可以表示為以下幾個步驟:
1、進行前饋傳導計算,利用前向傳導公式,得到 直到輸出層 的激活值。
2、對輸出層(第 層),計算殘差:
?
?
3、對于 的各層,計算:
?
?
4、計算最終需要的偏導數值:
?
實現中應注意:在以上的第2步和第3步中,我們需要為每一個 值計算其 。假設 是sigmoid函數,并且我們已經在前向傳導運算中得到了 。那么,使用我們早先推導出的 表達式,就可以計算得到 。
最后,我們將對梯度下降算法做個全面總結。在下面的偽代碼中, 是一個與矩陣 維度相同的矩陣, 是一個與 維度相同的向量。下面,我們實現愛你批量梯度下降法中的一次迭代:
? ? 3、更新權重參數:
現在,我們可以重復梯度下降法的迭代步驟來減小代價函數 的值,進而求解我們的神經網絡。
?中英文對照:
反向傳播算法 Backpropagation Algorithm
(批量)梯度下降法(batch)gradient descent
(整體)代價函數 (overall)cost function
方差 squared-error
均方差 average sum-of-squares error
規則化項 regularization term
權重衰減 weight decay
偏置項 bias terms
貝葉斯規則化方法 Bayesian regularization method
高斯先驗概率 Gaussian piror
極大后驗估計 MAP
極大似然估計 maximum likelihood estimation
激活函數 activation function
雙曲正切函數 tanh function
非凸函數 non-convex function
隱藏層單元 hidden (layer) units
對稱失效 symmetry breaking
學習速率 learning rate
前向傳導 forward pass
假設值 hypothesis
殘差 error term
加權平均值 weighted average
前饋傳導 feedforward pass
阿達馬乘積 Hadamard product
前向傳播 forward propagation
轉自http://deeplearning.stanford.edu/wiki/index.php/%E5%8F%8D%E5%90%91%E4%BC%A0%E5%AF%BC%E7%AE%97%E6%B3%95
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/rong86/p/3518416.html
總結
以上是生活随笔為你收集整理的反向传播算法 Backpropagation Algorithm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MCSDK HUA Demonstrat
- 下一篇: XEvent--Demo--使用XEve