【深度學習基礎-07】神經網路演算法(Neural Network)上--BP神經網路基礎理論

learning_CV發表於2019-01-10

目錄

1 起源

2 多層向前神經網路(Multilayer Feed-Forward Neural Network)

3 設計神經網路

 4 交叉驗證方法

5 BP神經網路演算法


1 起源

以人腦中的神經網路為啟發,出現過不同的版本

最著名的演算法是1980年的BP神經網路(Backpropagation)

2 多層向前神經網路(Multilayer Feed-Forward Neural Network)

2.1 BP神經網路被使用在多層向前神經網路

2.2 多層向前神經網路包含以下部分:

      輸入層input layer       隱藏層 hidden layer      輸出層 output layer

2.3 每層由單元units組成

2.4 輸入層是由訓練集的例項特徵向量傳入

2.5 經過連線點的權重weight傳入到下一層,上一層的輸入是下一層的輸入

2.6 隱藏層的個數可以是任意的,輸入層只有一層,輸出層只有一層

2.7 每個單元unit也可以稱為神經結點

2.8 神經網路有幾層?除了輸入層那一層的個數就是幾層

2.9 一層中加權求和,然後根據非線性方程轉化輸出

2.10 多層向前神經網路,理論上,如果有足夠多的隱藏層和足夠大的訓練集,可以模擬出任何方程。

3 設計神經網路

3.1 在使用神經網路訓練資料之前,必須確定層數,以及每層單元的個數

3.2 特徵向量在被傳入輸入層時通常先標準化到0到1之間,為了加速學習過程

3.3 離散型變數可以被編碼成每一個輸入單元對應一個可能的特徵值

  • 比如,A可能取值有3種情況,a0,a1,a2,那麼在輸入層時,就設定3個神經單元
  • 如果A=a0,則輸入為1,0,0,這三個單元如此設定
  • A=a1,則三個單元設定0,1,0。同理以此類推

 3.4 神經網路可以用作分類問題,也可以表示迴歸問題

  • 輸出單元個數:如果是兩類,那麼輸入單元只需要用1個單元就行
  • 如果是多於2類,每個單元代表一個類
  • 通常輸出層數量等於類數
  • 沒有明確的規則來設計有多少個隱藏從,根據測試和誤差、準確度來實驗並改進

4 交叉驗證方法

 

5 BP神經網路演算法

5.1 通過迭代性的處理來處理訓練集的例項

5.2 通過對比神經網路後輸出層 預測值和真實值的差異

5.3 反方向(輸出層->隱藏層->輸入層)來以最小化誤差來更新每個連線的權重 

5.4 演算法詳細內容:

輸入:D 資料集,學習率learning rate ,一個 多層向前神經網路

輸入:一個訓練好的神經網路

  • 初始化權重weights和偏向bias:隨機初始化在-1到1之間,或者-0.5到0.5之間,每個單元 有一個偏向
  • 對於 每一個訓練例項,執行以下步驟

根據誤差反向傳送

對於輸出層:

    O是預測,T是真值

對於隱藏層:

     O是預測,T是真值

權重更新:

偏差更新:

權重更新的(L)是學習率(變化率)

終止條件

  • 權重的更新低於某個閾值
  • 預測的錯誤率低於某個閾值
  • 達到預設一定的迴圈次數 

相關文章