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


Cost function(代價函數)

1、參數表示:

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

神經網絡的層數:L

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

 

2、兩種分類問題:

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

y = 0 or 1

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

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

有K個輸出單元

 

 

3、代價函數:

 

 Backpropagation algorithm(反向傳播算法)

1、字符定義:

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

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

 

2、計算過程:(假設是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) 不存在誤差。

 

3、算法流程:

(其中向量化表示Δ:

 

 通過證明可得【后期推導】:

 

4、理解算法:

如果 λ = 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)... 

例如:

 

5、算法實現:

(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、訓練神經網絡:

(1)隨機初始化權重;

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

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

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

  compute Δ
end %for

compute D

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM