機器學習 神經網路引數的反向傳播演算法

2021-10-08 09:39:45 字數 2253 閱讀 6636

分類問題為多元分類和二元分類

delta是沒有1層的,因為第一層是我們的觀測值,沒有誤差

經過後面的推導,忽略了λ(正則項),就會得到左下角代價函式的偏導項

反向傳播演算法計算後,累計誤差的結果等於對代價函式的偏導。

i 指的是第幾個樣本

j 指的是第 l 層的第 j 個節點

反向傳播具體的「error計算過程」

theta 展開成向量

代價函式的返回值如何計算?先通過theta計算得來每層的 「error」,然後將「error」也向量化返回,同時計算代價函式返回

通過定義算來的梯度和反向傳播法算來的梯度進行比較,如果接近的話,就可以放到高階優化演算法裡面進行theta的求解

執行梯度檢驗演算法時注意的事項

全0初始化不再適用於神經網路

要使用隨機初始化思想

在正負對稱的區間隨機生成初始化theta矩陣

step1:選擇乙個網路結構

選擇原則:

1)特徵的維數決定了選擇輸入端的units個數;

2)最終要分成的類別的多少決定了輸出單元的個數;

3)3個特徵時,乙個隱藏層,5個隱藏單元是比較合理的結構;可以增加隱藏層的層數,也可以增加每層的隱藏單元的個數(越多越好),不過隨之而來的計算量需要考慮進去;需要注意的是盡量保持每個隱藏層的單元個數一致,並且單元個數一定要大於特徵數(2,3,5倍都是可以的);

step2:初始化隨機權重theta

一般情況下,初始化為對稱區間的接近於0的值,當然這些都是隨機的;

step3:執行向前傳播演算法

執行向前傳播演算法,利用每個輸入樣本特徵x(i),根據初始化的theta,計算出 h(x(i));

step4:計算代價

由於已經算出來了**值,則可以根據代價函式算出此樣本條件下的代價 j(theta);

step:5:反向傳播演算法

第3步到第5步是需要重複m(樣本數)次,每次都能得到所有層的節點激勵項值 al 和「 δl 」,於是就可以計算出單個樣本的theta的梯度,執行m次以後,就可以得到這m個訓練樣本在當前theta下的總的誤差值,然後求平均後,再考慮正則化,最後兩者相加構成最終的對於theta的梯度d。(詳盡的公式 見 「反向傳播演算法」 圖)

step6:梯度檢測

將上述步驟得來的梯度與數值法(偏導數的定義方法)得來的梯度進行比較檢測確保兩者接近後,然後關閉這個梯度檢測演算法,因為我們只需要檢測一次我們反向傳播演算法是正確的即可,否則運算量將太過龐大;

step6:梯度下降或者高階優化演算法

最後,我們已經利用反向傳播演算法計算出了代價函式的偏導數,也就是theta的梯度值,然後可以借助梯度下降演算法,或者其他高階優化演算法使得代價函式最小化,從而得到神經網路的引數(parameters):theta。

需要注意的是,這裡的代價函式是非凸的,因此無論是梯度下降演算法,還是高階優化演算法都有可能求得的值是區域性最優解,儘管如此,得到的最後的解還是可以接受的。

機器學習 反向傳播神經網路推導

簡單的反向傳播神經網路可以說就是將基本單元如感知器,組成層級結構,劃分出輸入層 隱含層 輸出層 不同層之間通過連線來形成耦合,從而組成乙個有功用的網狀演算法結構。感知器可以通過迭代計算來逼近想獲取的結果,迭代過程中感知器不斷和計算結果反饋,較為常用的迭代計算方法有梯度下降法。當感知器組成網路之後,每...

機器學習10 神經網路反向傳播演算法

一,神經網路的代價函式 首先引入一些便於稍後討論的新標記方法 假設神經網路的訓練樣本有 m 個,每個包含一組輸入 x 和一組輸出訊號 y,l 表示神經網路層數,sl 表示每層的 neuron 個數 sl 表示輸出層神經元個數 sl 代表最後一層中處理單元的個數。將神經網路的分類定義為兩種情況 二類分...

神經網路學習引入 反向傳播

反向傳播技術是神經網路的核心技術之一。如果乙個運算我們能夠使用計算圖表式出來,那麼我們就能夠利用反向傳播的方法,即從後往前遞迴地呼叫鏈式法則來計算梯度。乙個簡單的函式f x y,z x y zf x,y,z x y z f x,y,z x y z的計算圖如下所示。假設輸入為 x 2,y 5,z 4,...