演算法工程師修仙之路:吳恩達機器學習(九)
阿新 • • 發佈:2018-12-08
吳恩達機器學習筆記及作業程式碼實現中文版
神經網路引數的反向傳播演算法
代價函式
-
假設神經網路的訓練樣本有 個,每個包含一組輸入 和一組輸出訊號 , 表示神經網路層數, 表示每層的神經元個數( 表示輸出層神經元個數), 代表最後一層中處理單元的個數。
-
將神經網路的分類定義為兩種情況:二類分類和多類分類。
- 二類分類: , 表示哪一類;
- K類分類: , 表示分到第 類; (k>2)
-
邏輯迴歸問題中我們的代價函式為:
- 在邏輯迴歸中,我們只有一個輸出變數,又稱標量( scalar),也只有一個因變數 。
-
在神經網路中,我們可以有很多輸出變數, 是一個維度為K的向量,並且我們訓練集中的因變數也是同樣維度的一個向量,因此我們的代價函式會比邏輯迴歸更加複雜一些:
- 。
- 這個看起來複雜很多的代價函式背後的思想還是一樣的,我們希望通過代價函式來觀察演算法預測的結果與真實情況的誤差有多大。
- 唯一不同的是,對於每一行特徵,我們都會給出K個預測,基本上我們可以利用迴圈,對每一行特徵都預測K個不同結果,然後在利用迴圈在K個預測中選擇可能性最高的一個,將其與 中的實際資料進行比較。
- 正則化的那一項只是排除了每一層 後,每一層的 矩陣的和。最裡層的迴圈 迴圈所有的行(由 層的啟用單元數決定),迴圈 則迴圈所有的列,由該層( 層)的啟用單元數所決定。即: 與真實值之間的距離為每個樣本真實值減去每個類輸出的加和,對引數進行優化的偏置項處理所有引數的平方和。
反向傳播演算法
-
為了計算代價函式的偏導數 ,我們需要採用一種反向傳播演算法,也就是首先計算最後一層的誤差,然後再一層一層反向求出各層的誤差,直到倒數第二層。
-
假設我們的訓練集只有一個例項(