BP神经网络模型
一、簡介
BP神經網絡學習算法可以說是目前最成功的神經網絡學習算法。顯示任務中使用神經網絡時,大多數是使用BP算法進行訓練.
在我看來BP神經網絡就是一個”萬能的模型+誤差修正函數“,每次根據訓練得到的結果與預想結果進行誤差分析,進而修改權值和閾值,一步一步得到能輸出和預想結果一致的模型。舉一個例子:比如某廠商生產一種產品,投放到市場之后得到了消費者的反饋,根據消費者的反饋,廠商對產品進一步升級,優化,從而生產出讓消費者更滿意的產品。這就是BP神經網絡的核心。
BP神經網絡是一種按誤差反向傳播(簡稱誤差反傳)訓練的多層前饋網絡,其算法稱為BP算法,它的基本思想是梯度下降法,利用梯度搜索技術,以期使網絡的實際輸出值和期望輸出值的誤差均方差為最小。
關于梯度下降算法的直觀理解
關于梯度下降算法的直觀理解,我們以一個人下山為例。比如剛開始的初始位置是在紅色的山頂位置,那么現在的問題是該如何達到藍色的山底呢?按照梯度下降算法的思想,它將按如下操作達到最低點:
?
第一步,明確自己現在所處的位置
第二步,找到相對于該位置而言下降最快的方向
第三步, 沿著第二步找到的方向走一小步,到達一個新的位置,此時的位置肯定比原來低
第四部, 回到第一步
第五步,終止于最低點
按照以上5步,最終達到最低點,這就是梯度下降的完整流程。當然你可能會說,上圖不是有不同的路徑嗎?是的,因為上圖并不是標準的凸函數,往往不能找到最小值,只能找到局部極小值。所以你可以用不同的初始位置進行梯度下降,來尋找更小的極小值點,當然如果損失函數是凸函數就沒必要了,開開心心的進行梯度下降吧!
BP神經網絡結構
BP神經網絡的過程主要分為兩個階段,第一階段是信號的前向傳播,從輸入層經過隱含層,最后到達輸出層;第二階段是誤差的反向傳播,從輸出層到隱含層,最后到輸入層,依次調節隱含層到輸出層的權重和偏置,輸入層到隱含層的權重和偏置。
BP神經網絡流程
神經元是以生物研究及大腦的響應機制而建立的拓撲結構網絡,神經網絡的基本組成單元是神經元。神經元的通用模型如圖所示,其中常用的激活函數有閾值函數、sigmoid函數和雙曲正切函數。
神經元的輸出為:?
神經網絡是將多個神經元按一定規則聯結在一起而形成的網絡,如圖 所示。?
二、BP網絡輸入與輸出關系
BP網絡采用的傳遞函數是非線性變換函數——Sigmoid函數(又稱S函數)。其特點是函數本身及其導數都是連續的,因而在處理上十分方便。
三、?BP算法的Java代碼實現
1.? 定義一個BP神經網絡的類,設置網絡相關參數
2.? ? 實例化該神經網絡,按下圖被構建成一個輸出3維,輸出1維,帶有3個隱藏層(每個隱藏層10個節點)的BP網絡;(此處還可以隨意擴展輸入、輸出維度和隱藏層相關系數)
3.? ? 初始化BP神經網絡的時候,開始初始化各層網絡節點的 權重、權重動量、誤差初始值
4.? 引入學習訓練數據;4組輸入、輸出數據迭代5000次
? ? 5000次中不斷向前逐層計算輸出的節點數據
? ? 并同時逐層計算誤差反向修改權重值,直到迭代完畢;注意誤差函數值必須呈現下降趨勢
5.? 引入數據進行結果預測,將數據帶回模型計算得結果;最終可知預測結果趨近于0.7
四、 BP算法意味著什么
神經網絡利用現有的數據找出輸入與輸出之間得權值關系(近似),然后利用這樣的權值關系進行仿真,例如輸入一組數據仿真出輸出結果,當然你的輸入要和訓練時采用的數據集在一個范疇之內。例如預報天氣:溫度 濕度 氣壓等作為輸入 天氣情況作為輸出利用歷史得輸入輸出關系訓練出神經網絡,然后利用這樣的神經網絡輸入今天的溫度 濕度 氣壓等 得出即將得天氣情況。同理,運用到自動化測試中,使用測試數據反映結果走向,bug數,質量問題等情況也可以做到提前預測的!
附錄:
?
總結
- 上一篇: 华为时间管理培训
- 下一篇: 博弈论基础-蒋文华(浙大)