BP算法基本原理推導----《機器學習》筆記


前言

多層網絡的訓練需要一種強大的學習算法,其中BP(errorBackPropagation)算法就是成功的代表,它是迄今最成功的神經網絡學習算法。

今天就來探討下BP算法的原理以及公式推導吧。

神經網絡

  先來簡單介紹一下神經網絡,引入基本的計算公式,方便后面推導使用

圖1 神經網絡神經元模型

  圖1就是一個標准的M-P神經元模型。

【神經元工作流程】

  每個神經元接受n個(圖1中只有3個)來自其他神經元或者直接輸入的輸入信號(圖1中分別為x0,x1,x2),這些輸入信號分別與每條“神經”的權重相乘,並累加輸入給當前神經元。每個神經元設定有一個閾值θ(圖1中的b),累計值需要減去這個閾值,並且將最終結果通過“激活函數”(圖1中的f)擠壓到(0,1)范圍內,最后輸出。

  總結一下,神經元的工作流程主要有3步:

  ①累計輸入的信號與權重。

    

  ②將權重與設定的閾值相減

      

  ③將第2步得出的結果送給激活函數(一般是sigmoid函數),輸出

         

 

【多層前饋神經網絡】

  將上面的神經元按照一定的層次結構連接起來,就得到了神經網絡。

  圖2 多層前饋神經網絡

 

  圖2顯示的是一個3層(1個輸入層,1個隱藏層,1個輸出層)的神經網絡。

  像這樣的形成層級結構,每層神經元與下一層神經元全連接(每層的每個神經元到下一層的每個神經元都有連接),神經元之間不存在同層連接,也不存在跨層連接的神經網絡通常被稱為“多層前饋神經網絡”。

【神經網絡工作流程】

  假定有數據集D:

  輸入神經網絡,同樣假定就是圖2這個3層前饋神經網絡,我們來列一下,圖2這個網絡要通過這些訓練集來訓練得到多少個參數。

  圖2的神經網絡有n個輸入神經元(記為x1、x2....xn)、m個隱藏層神經元(記為h1,h2,...,hm),k個輸出神經元(記為y1,y2,...,yk),通過訓練,我們要獲得下面幾種數值

  ①輸入層到隱藏層的權值:n x m 個

  ②隱藏層到輸出層的權值:m x k 個

  ③m個隱藏層閾值與k個輸出層閾值

  訓練完成后,通過測試集樣例與訓練出的參數,可以直接得到輸出值來判斷所屬分類(分類問題)

BP算法

  神經網絡的運行過程清楚了,那么訓練過程是怎么樣的呢?

  我們知道,訓練的任務是:

      通過某種算法,習得上面所講的n x m + m x k + m + k = (n+k+1) x m + k 個參數

  這里我們使用的就是BP算法。

  先來根據神經元工作流程來定義幾個量,這里再貼一下修改后的神經網絡流程圖

圖3 3層前饋神經網絡圖

【定義】

    第i個輸入神經元到第j個隱藏層神經元的權重:Vij

    第i個隱藏層神經元到第j個輸出層神經元的權重:Wij

    第i個隱藏層神經元的輸出:bi

    第i個輸出層的閾值:θi

    第j個隱藏層神經元的輸入:

         

    第q個輸出神經元的額輸入:

         

  假定通過我們的神經網絡,對於訓練樣例網絡輸出為

   假定完美輸出應該為例如,對於k分類問題,若訓練樣例p屬於第1類,則yp=(1,0,0,0...,0)

  那么一輪訓練我們的均方誤差為:

  

  實際上

 

  其中f函數為sigmoid函數。

  這下,我們的目標就轉化為:

    尋得一組合適的參數序列,使得(1)式的值(均方誤差)最小。

  在我的上一篇隨筆里也提到過這個問題,這種形式的問題比較適合使用梯度下降算法,BP正是采取了這個策略,以目標的負梯度方向對參數進行調整。

【梯度下降求解參數】

  梯度下降的基本思想是:設定參數的初始值,通過一個學習速率η和當前梯度,來逐漸步進參數,以求擬合一個局部最優的參數

  一般的參數迭代過程如下:

    

  不清楚梯度下降算法的可以看一下我另一篇隨筆:http://www.cnblogs.com/HolyShine/p/6403116.html

  神經網絡的一次迭代,就是參數的一次“步進”。

  接下來我們使用梯度下降分別推導幾個參數的迭代公式

  我們以隱藏層中第h個神經元為參照對象,求解他的輸入權重V和輸出權重W,以及閾值γ;以輸出層中第j個神經元為輸出參照,求解他的閾值θ

   <隱藏層到輸出層的權重Whj>

  根據梯度下降算法,權重參數的步進為:

  由復合函數求導公式以及式(1)式(2):

  其中,第二項是sigmoid函數求導,由於sigmoid函數有如下的性質:

  所以

  第一項和第三項的推導也列在這里

  最終(3)式變為:

  

  這些量都是一輪訓練中已知的,因此可以解得梯度的大小,用於參數的更新工作

  其他參數的求解基本一致。

 

 

 

 

 

 

 

  

 

  

 

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM