BP神經網絡-- 基本模型

轉自:BP神經網絡-- 基本模型,保存在此以學習。

BP 神經網絡中的 BP 爲 Back  Propagation 的簡寫,最早它是由Rumelhart、McCelland等科學家於 1986 年提出來的,Rumelhart 並在Nature 上發表了一篇非常著名的文章 《Learning representations by back-propagating errors》 。隨着時代的遷移,BP神經網絡理論不斷的得到改進、更新,現在無疑已成爲了應用最爲廣泛的神經網絡模型之一。讓我們一起來探索下 BP神經網絡最初的 基本模型和概念!

 

從神經網絡的生物模型說起

         我們知道人大腦信息的傳遞、對外界刺激產生反應都由神經元控制的,人腦就是由上百億個的這樣神經元構成。這些神經元之間並不孤立而且聯繫很密切,每個神經元平均與幾千個神經元相連接,因此構成了人腦的神經網絡。刺激在神經網絡中的傳播是遵循一定的規則的,一個神經元並非每次接到其他神經傳遞過來的刺激都產生反應。它首先會將與其相鄰的神經元傳來的刺激進行積累,到一定的時候產生自己的刺激將其傳遞給一些與它相鄰的神經元。這樣工作的百億個的神經元構成了人腦對外界進行的反應。而人腦對外界刺激的學習的機制就是通過調節這些神經元之間聯繫以及其強度。當然,實際上以上說的是對人腦真正神經工作的一種簡化的生物模型,利用這種簡化的生物模型可以將它推廣至機器學習中來,並把它描述成人工神經網絡。BP神經網絡就是其中的一種,來看看具體對神經元的分析。

BP神經網絡神經元

圖1  神經網絡中神經元示意圖

         神經元的積累的刺激是由其他神經元傳遞過來的刺激量和對應的權重之和,用 X表示這種積累,Yi 表示某個神經元傳遞過來的刺激量,Wi 表示鏈接某個神經元刺激的權重,得到公式:

         Xj = (y1 * W1)+(y2 * W2)+...+(yi * Wi)+...+ (yn * Wn)

         而當 X完成積累後,完成積累的神經元本身對周圍的一些神經元傳播刺激,將其表示爲  yj  得到如下所示:

         yj = f(Xj

         神經元根據積累後 X的結果進行處理後,對外傳遞刺激 yj 。用 f 函數映射來表示這種處理,將它稱之爲 激活函數

 

BP神經網絡的構成

         分析完單個的神經元后,再來看看它們組成網絡後的情形,用圖形來說明是最直觀的方法,如圖2所示:

 

BP神經網絡

圖2  BP神經網絡示意圖

         第一區域的來說,它們相當於外界的刺激,是刺激的來源並且將刺激傳遞給神經元,因此把第一區域命名爲輸入層。第二區域,表示神經元相互之間傳遞刺激相當於人腦裏面,因此把第二區命名爲隱藏層。第三區域,表示神經元經過多層次相互傳遞後對外界的反應,因此把第三區域命名爲輸出層

    簡單的描述就是,輸入層將刺激傳遞給隱藏層,隱藏層通過神經元之間聯繫的強度(權重)和傳遞規則(激活函數)將刺激傳到輸出層,輸出層整理隱藏層處理的後的刺激產生最終結果。若有正確的結果,那麼將正確的結果和產生的結果進行比較,得到誤差,再逆推對神經網中的鏈接權重進行反饋修正,從而來完成學習的過程。這就是BP神經網的反饋機制,也正是BP(Back  Propagation)名字的來源:運用向後反饋的學習機制,來修正神經網中的權重,最終達到輸出正確結果的目的!

 

BP神經網絡的數學推導

         從數學上對BP神經網絡模型進行分析,本文第一部分神經網的生物模型中可以得到關於BP神經網絡的第一個公式(1)

 

BP神經網絡公式

         對於神經元本身的輸出的激活函數,一般來說選取 Sigmoid 函數,那麼可以得到第二個公式(2)

 

BP神經網絡公式

 

         通過以上兩個公式,可以分析出來BP神經網絡中輸出結果的計算過程。每個神經元收到刺激 yi  然後加權積累(權重 Wji  )完成後產生 x,再通過激活函數產生刺激 yj ,向下一層與它相連的神經元傳遞,依次類推最終輸出結果。

         我們再來分析如何利用向後反饋機制來修正神經元權重 Wji,這一部分數學推導需要運用到多元微分的數學內容。要修正 Wji  就需要得到誤差量。具體來看,首先用 dj  來表示真實的正確結果,並且設誤差爲 E ,那麼( y- d對應的就是 E對於 yj 的微分增量,即 yj  減去( y- d後就能得到正確值,得到公式(3)

 

BP神經網絡公式

         然後,明確目標,需要知道的是對於權重 Wji 的誤差量是多少也就是  BP神經網絡推導量   的值。而由公式(1)中知道 Wji  x相關, 那麼可以推導出公式(4)

BP神經網絡公式

 

         需要求得 Wji 的誤差量,轉換爲需要求  BP神經網絡推導量  的值了。它的推導如下:

BP神經網絡公式

 

         其中  BP神經網絡推導量  的值,可以通過公式(2)求導得出來:

BP神經網絡公式

 

         所以最終得到的的誤差量的值爲:

BP神經網絡公式

 

         以上公式需要注意下標:最後一個是 y,前面的都是 y。推到這裏可以算是完成了運用神經網絡的輸出值 yj 和正確值 d 對最後一層隱藏層 Wji 的修正,那麼對其他隱藏層呢? 接着往下看。

         上面的推導過程由公式(3)開始,如果我們知道  BP神經網絡推導量 (注意是 y公式(3)中是 y),就可以 同理 推導求出其對應其他隱藏層需要修正的權重值誤差量了。推導如下:

 

BP神經網絡公式

         這樣所有的誤差量的都可以 同理 推導完成!

         最後一步修正 Wji ,就是加上下面變量了,設置一個 l (0 到 1 之間)學習率。

BP神經網絡公式

 

         至此,BP神經網絡反饋部分的數學推導算完成了,可以在自己的草稿紙上畫畫~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章