機器學習筆記(五)神經網絡參數的擬合

Cost function(代價函數)算法

一、參數表示:網絡

m 個訓練樣本:{(x(1), y(1)), (x(2), y(2)), ..., (x(m), y(m))}dom

神經網絡的層數:L函數

l 層的神經元數量(不計入偏置單元):Sl優化

 

二、兩種分類問題:spa

(1)Binary classification(二元分類):3d

y = 0 or 1blog

只有一個輸出單元 / hθ(x)爲一個實數 / SL = 1it

(2)Multi-class classification(多類別分類):io

有K個輸出單元

 

 

三、代價函數:

 

 Backpropagation algorithm(反向傳播算法)

一、字符定義:

 δj(l) :表示第 l 層的第 j 個結點的偏差。   

aj(l) :   表示第 l 層的第 j 個結點的激勵值。

 

二、計算過程:(假設是4層神經網絡,即下圖)【後期推導】

 對於第4層的每個輸出單元:

 δj(4) = aj(4)- yj (其中 aj(4) 也可記爲hθ(x))

向量化:δ(4) = a(4)- y

δ(3) = (Θ(3))Tδ(4) .*g'(z(3)) ,其中 g'(z(3)) = a(3).*(1-a(3))

δ(2) = (Θ(2))Tδ(3) .*g'(z(2)) ,其中 g'(z(2)) = a(2).*(1-a(2))

δ(1) 不存在偏差。

 

三、算法流程:

(其中向量化表示Δ:

 

 經過證實可得【後期推導】:

 

四、理解算法:

若是 λ = 0,則cost函數爲:

 接近於平方偏差函數。

而δj(l) 是cost函數的偏微分:

相似於正向傳播,反向傳播也有:

δj(l)  = Θij(l) δi(l+1) + Θi+1 j(l) δi+1(l+1) + Θi+2 j(l) δi+2(l+1)... 

例如:

 

五、算法實現:

(1)簡述:

參數:

①先對Θ(1),Θ(2),Θ(3),...進行初始化(跟邏輯迴歸不同,這裏的 Θ 是矩陣);

②實現 costFunction 計算 J 和 grad:根據 Θ 正向/反向計算出 D 和 J(Θ);

③使用 fminunc 函數求出 Θ。

 

(2)Gradient checking(梯度檢測):

 通常狀況下,ϵ=104

 對於多個θ,能夠具體爲:

代碼實現:

epsilon = 1e-4;
for i = 1:n,
  thetaPlus = theta;
  thetaPlus(i) += epsilon;
  thetaMinus = theta;
  thetaMinus(i) -= epsilon;
  gradApprox(i) = (J(thetaPlus) - J(thetaMinus))/(2*epsilon)
end;

 

(3) Random initialization(隨機初始化):

不一樣於邏輯迴歸,這裏的 Θ 初始值不能爲全0. 不然會出現每次迭代更新,每一層上的 θ 參數值相等,且每個 a 的結果也相等,即 a1(2) = a2(2) = ...。

所以初始化時須要打破對稱性,將 Θij(l) 設置在[ -ϵ, ϵ ]之間。   

代碼舉例:

If the dimensions of Theta1 is 10x11, Theta2 is 10x11 and Theta3 is 1x11.

Theta1 = rand(10,11) * (2 * INIT_EPSILON) - INIT_EPSILON;
Theta2 = rand(10,11) * (2 * INIT_EPSILON) - INIT_EPSILON;
Theta3 = rand(1,11) * (2 * INIT_EPSILON) - INIT_EPSILON;

 

神經網絡總結

一、選擇神經網絡:

輸入層的神經元數量:根據特徵的維度

輸出層的神經元數量:根據劃分的類別數量

隱藏層的神經元數量:默認多個隱藏層的神經元數量相同,隱藏層的神經元數量稍大於輸入特徵的數量。

 

二、訓練神經網絡:

(1)隨機初始化權重;

(2)經過正向傳播求 hθ(x(i))

(3)計算代價函數 J(Θ)

(4)經過反向傳播求 D(即):

  compute Δ
end %for

compute D

(5)使用梯度檢測比較上述計算結果和用數值方法計算結果是否近似。檢測結束後將這部分代碼去除,保證代碼的執行效率。

(6)使用梯度降低法或者其它優化算法最小化 J(Θ)(好比使用fminunc函數)。

相關文章
相關標籤/搜索