吳恩達Coursera深度學習課程 deeplearning.ai (1-2) 神經網絡基礎--課程筆記

相關課件:https://download.csdn.net/download/haoyutiangang/10369622

本週課程主要講的是邏輯迴歸,因爲之後的神經網絡模型和邏輯迴歸類似。

二分分類

比如用多張圖片訓練來預測圖片中是否有貓。

符號表示:

  • 單個樣本: (x, y)
  • 樣本數量: m
  • 第 i 個樣本: x(i)
  • 訓練集: m = mtrain
  • 測試集: m = mtest
  • 輸入輸出: 每個樣本的 x 爲輸入,y 爲輸出
  • 輸入矩陣X: 輸入 x 的多個維度構成一個 n維列向量,m 個 x 構成 m 個列向量,組合成爲一個 (n*m) 的輸入矩陣
  • 輸出矩陣Y: 輸出 y 非0即1,是一個1維 的向量(一個數),m 個 y 構成 m 個列向量,組合成爲一個 (1*m) 的矩陣

image

logistic 迴歸

邏輯迴歸預測結果是1還是0

在線性迴歸中我們通常使用 Y^ = WX+b 來預測 Y 的預測值,但是這樣 Y^ 的取值範圍特別大,爲了讓Y^ 收斂到 Y 也就是1或者0,需要對結果再進行一次 sigmoid 運算。

下圖中紅色部分是另一種表示方式,將 W 和 b 統一表示了,本課程中還是使用 W 和 b 來表示參數。

image

logistic 迴歸損失函數

  • 樣本上標(i): 表示第 i 個樣本
  • 損失函數(loss function): 評估 y^ 和 y 之間的差距
  • 成本函數(cost function): 評估損失函數的均值,即 m 個損失函數的均值

損失函數通常使用

L(y^,y)=12(y^y)2

但是邏輯迴歸中,上述損失函數不是凸函數,不好計算最小值。

邏輯迴歸的損失函數(Loss Function):

L(y^,y)=(ylogy^+(1y)log(1y^))

邏輯迴歸的成本函數(Cost Function):

J(w,b)=1mi=1mL(y^(i),y(i))=1mi=1m[(y(i)logy^(i)+(1y(i))log(1y^(i)))]

成本函數是 W 和 b 的函數,我們的目的是求最佳的 W 和 b, 使得成本函數儘可能的接近於0

image

梯度下降法

梯度下降法每次都沿着導數下降的方向走一小段距離,通過多次迭代逐步接近於函數最小值。(函數需是凸函數)

w:=wαJ(w,b)wb:=bαJ(w,b)b

α 爲學習率,學習率和導數的乘積決定了步長值,在學習率一定的情況下,導數越大,步長越大;導數越小,步長越小。

導數

導數求導 和 鏈式法則

logistic 迴歸中的梯度下降法

前向傳播

image

反向傳播

補充

sigmoid=s=11+etsigmoid=s=s(1s)

鏈式求導
(8)da=La=ya+1y1a(9)dz=Lz=Laaz=(ya+1y1a)a(1a)=ay(10)dw1=Lw1=Lzzw1=x1dz=x1(ay)(11)db=Lb=Lzzb=1dz=ay(12)w1:=w1αdw1(13)w2:=w2αdw2(14)b:=bαdb

m 個樣本的梯度下降

  • 在 for 循環中計算每個樣本的前向傳播和反向傳播,共 m 次
  • 每個計算時輸入可能是 n 維向量,所以需要計算w1,w2,...,wn 共 n 個
  • 爲了減少 for 循環的時間,可以考慮使用向量化運算,也就是並行運算向量中的每一個值

向量化 logistic 迴歸

w: n*1
X: n*m
b: 1*m
y: 1*m

Z = np.dot(w.T,X) + b
A = sigmoid(Z)

dZ = A-Y
dw = 1/m*np.dot(X,dZ.T)
db = 1/m*np.sum(dZ)

w = w - alpha*dw
b = b - alpha*db
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章