相關課件:https://download.csdn.net/download/haoyutiangang/10369622
本週課程主要講的是邏輯迴歸,因爲之後的神經網絡模型和邏輯迴歸類似。
二分分類
比如用多張圖片訓練來預測圖片中是否有貓。
符號表示:
- 單個樣本: (x, y)
- 樣本數量: m
- 第 i 個樣本:
- 訓練集: m =
- 測試集: m =
- 輸入輸出: 每個樣本的 x 爲輸入,y 爲輸出
- 輸入矩陣X: 輸入 的多個維度構成一個 n維列向量,m 個 構成 m 個列向量,組合成爲一個 (n*m) 的輸入矩陣
- 輸出矩陣Y: 輸出 非0即1,是一個1維 的向量(一個數),m 個 構成 m 個列向量,組合成爲一個 (1*m) 的矩陣
logistic 迴歸
邏輯迴歸預測結果是1還是0
在線性迴歸中我們通常使用 = WX+b 來預測 Y 的預測值,但是這樣 的取值範圍特別大,爲了讓 收斂到 Y 也就是1或者0,需要對結果再進行一次 sigmoid 運算。
下圖中紅色部分是另一種表示方式,將 W 和 b 統一表示了,本課程中還是使用 W 和 b 來表示參數。
logistic 迴歸損失函數
- 樣本上標(i): 表示第 i 個樣本
- 損失函數(loss function): 評估 和 y 之間的差距
- 成本函數(cost function): 評估損失函數的均值,即 m 個損失函數的均值
損失函數通常使用
但是邏輯迴歸中,上述損失函數不是凸函數,不好計算最小值。
邏輯迴歸的損失函數(Loss Function):
邏輯迴歸的成本函數(Cost Function):
成本函數是 W 和 b 的函數,我們的目的是求最佳的 W 和 b, 使得成本函數儘可能的接近於0
梯度下降法
梯度下降法每次都沿着導數下降的方向走一小段距離,通過多次迭代逐步接近於函數最小值。(函數需是凸函數)
爲學習率,學習率和導數的乘積決定了步長值,在學習率一定的情況下,導數越大,步長越大;導數越小,步長越小。
導數
導數求導 和 鏈式法則
logistic 迴歸中的梯度下降法
前向傳播
反向傳播
補充
鏈式求導
m 個樣本的梯度下降
- 在 for 循環中計算每個樣本的前向傳播和反向傳播,共 m 次
- 每個計算時輸入可能是 n 維向量,所以需要計算 共 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