1. 程式人生 > >Coursera-吳恩達-機器學習-(第5周筆記)Neural Networks——Learning

Coursera-吳恩達-機器學習-(第5周筆記)Neural Networks——Learning

Week 5 —— Neural Networks : Learning

目錄

一代價函式和反向傳播

1-1 代價函式

首先定義一些我們需要使用的變數:

  • L =網路中的總層數
  • sl =第l層中的單位數量(不包括偏差單位)
  • K =輸出單元/類的數量

首先,回想一下“邏輯迴歸”正則化的成本函式是:
這裡寫圖片描述
這裡寫圖片描述
這個式子看著複雜,但其實並不難理解:我們只是添加了幾個巢狀的求和,來解釋我們的多個輸出節點。

(1)在方程的第一部分,在方括號之前,我們有一個額外的巢狀總和,表示輸出節點的數量。
(2)在正則化部分,在方括號後面,我們必須考慮多個theta矩陣。當前theta矩陣中的列數等於當前圖層中的節點數(包括偏置單元)。在我們當前theta矩陣中的行數等於下一層中的節點數(不包括偏置單元)。與之前的邏輯迴歸一樣,我們對每一項進行平方。

1-2 誤差反向傳播

建議神經網路知識多找一些資料好好學習,很重要!!!
這裡寫圖片描述
這裡寫圖片描述

正則化:

這裡寫圖片描述
從別的部落格看到的關於反向傳播的理解:

(1)由於引數選的不好,導致網路最後輸出的結果與真實值相差甚遠。我們很自然的求出了最後一層的誤差(真實-輸出)。
(2)但是,最後一層的神經元不服氣:明明數值都是前面的神經元傳遞過來的,出了誤差憑什麼都賴我啊?我要興師問罪!
(3)於是,最後一層的神經元就去找前面一層的神經元問罪,問罪的證據就是引數Θ。誰的Θ大,就說明誰傳過來的誤差大,責任也就越多。靠這個方法,最後一層的神經元,把誤差的責任按照比例“推卸”給了前一層。
(4)前一層也按照這個方式,一層層往前“推諉責任”。這樣,誤差就反向傳播給了每一層。

神經網路誤差反向傳播(補充)

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

二 神經網路的技巧

2-1 展開引數(unrolling parameter)

這一部分我們會講一個在實現中需要注意的細節,怎樣將矩陣轉化為向量,以便高階最優化演算法中使用。 在神經網路中,我們經常會對一些矩陣進行處理:
這裡寫圖片描述
為了能夠使用優化函式,例如fminunc(),我們會將矩陣展開成一個長長的向量:

thetaVector = [ Theta1(:); Theta2(:); Theta3(:); ]
deltaVector = [ D1(:); D2(:); D3(:) ]

如果Theta1的維數為10x11,Theta2為10x11,Theta3為1x11,則可以從“展開”後的向量獲取原始矩陣,如下所示:

Theta1 = reshape(thetaVector(1:110),10,11)
Theta2 = reshape(thetaVector(111:220),10,11)
Theta3 = reshape(thetaVector(221:231),1,11)

2-2 梯度檢驗(Gradient Checking)

利用前面所說的前向傳播和後向傳播計算梯度時容易出現一些小錯誤而不被發現,導致表面上代價函式可能在減小,但你最後得到的結果可能與實際有很大的誤差,這時候就需要進行梯度檢驗來檢驗我們計算的梯度是否是我們所需要的。

這裡需要提出梯度的數值估計這個概念。

如下圖所示的函式:
這裡寫圖片描述
這裡寫圖片描述
接下來我們要檢驗的就是下式是否成立,成立則說明反向傳播演算法是正確的。

數值估計的梯度≈後向傳播計算得到的梯度

梯度檢驗的實現要點(步驟):

1、使用後向傳播計算DVec(偏導數向量)
2、計算數值梯度的估計值gradApprox
3、確保DVec和gradApprox值相近
4、關閉梯度檢驗,再使用後向傳播進行學習

注意:

在訓練分類器之前一定要關閉梯度檢驗,如果沒有關閉,則在梯度下降的每次迭代中都進行數值梯度的計算,程式碼執行將十分緩慢。梯度的數值估計相對於後向傳播計算梯度來說是較大的工作量,我們使用數值估計的初衷僅僅是為了檢驗後向傳播的實現是否正確。

2-3 隨機初始化

2-4 神經網路總結

1.選擇一個網路模型

  • 輸入層單元數:特徵 x(i) 的維數
  • 輸出層單元數:分類的類別數。 多類別分類問題輸出層有多個單元,輸出的 y 不是一個數了,而是由一些 0 和一個 1 組成的向量。
  • 隱藏層數目:預設使用1個隱藏層,如果隱藏層數目多於1個,則每個隱藏層應該有相同的單元個數。 隱藏層單元數越多,效果越好,通常取稍大於輸入特徵的數目。

2.訓練神經網路
這裡寫圖片描述
3.預測新樣本