1、什么是神經網絡?
(1)房價預測模型Ⅰ:
神經網絡:size x ——> O ——> price y
ReLU函數(Rectified linear unit 修正線性單元):修改線性的函數,避免出現price未負數的情況.
(2)房價預測模型Ⅱ:
即神經網絡為:
2、Binary classification(二分分類):
以識別照片中的貓為例
① 判定:若是貓,則 y = 1;若不是貓,則 y = 0.
② 圖片規格:64*64,數字化表示:3個 64*64矩陣,分別表示Red Green Blue的強度值.
③ 樣本x的向量長度:nx = 64*64*3 = 12288.
④ 訓練集:{(x(1), y(1)), (x(2), y(2)), ..., (x(m), y(m))}.
⑤ 訓練集數量:mtrain,測試集數量:mtest.
⑥ 矩陣X:有m列,每一列表示一個樣本x(i).
⑦ 向量Y:長度為m.
3、Logistic regression(邏輯回歸):
(1)問題定義:
給出 x,求 y^ = P(y = 1 | x),即在 x 的條件下,照片是貓的概率,y^ 的取值為[0, 1].
(2)解決思路:
給出參數 w(nx 長度向量),參數 b(常數).
輸出 y^ = wTx + b( b 即 θ0,w 即 θ1~θnx).
但這樣輸出的概率值會超出[0, 1]的范圍,不合理.
使用sigmoid函數,對向量 x 添加x0 = 1,向量化計算 y^ = sigmoid(wTx +b) = sigmoid(θTx),將概率值限制在了[0, 1]內.
其中 sigmoid(z) = 1/(1 + e^(-z)).
問題轉換為:求參數 w 和 b,使得 y^(i) 與 y(i) 相近.
4、Cost function(代價函數):
Loss/Error function (損失函數):
在邏輯回歸中的損失函數:
如果 y = 1, L = - log(y^),則希望 y^ 越大;如果 y = 0,L = log(1 - y^),則希望 y^ 越小.
Cost function:
問題轉換為:求參數 w 和 b,使得最小化 J(w, b).
5、計算圖的導數計算:
體會鏈式法則和反向傳播:
dJ/dv = 3;
dv/da = 1,dJ/da = dJ/dv * dv/da = 3;
dv/du = 1,dJ/du = dJ/dv * dv/du = 3;
du/db = 2,dJ/db = dJ/du * du/db = 6;
du/dc = 3,dJ/dc = dJ/du * du/dc = 9.
6、Gradient Descent(梯度下降):
(1)梯度下降過程:
(2)含有2個特征量,單個樣本的情況:
"da" = dL/da = -y/a + (1-y)/(1-a)
"dz" = dL/dz = dL/da * da/dz = [-y/a + (1-y)/(1-a)] * a(1-a) = a-y
"dw1" = dL/dw1 = dL/dz * dz/dw1 = (a-y)*x1
"dw2" = dL/dw2 = dL/dz * dz/dw2 = (a-y)*x2
"db" = dL/db = dL/dz * dz/db = (a-y)*1 = a-y
梯度下降流程(一次梯度更新):
w1 = w1 - α*dw1 = w1 - α*(a-y)*x1
w2 = w2 - α*dw2 = w2 - α*(a-y)*x2
b = b - α*db = b - α*(a-y)
(3)含有2個特征量,m 個樣本的情況:
梯度下降過程:
Repeat{
w1 = w1 - α/m*∑dw1(i) = w1 - α/m*∑(a-y)*x1(i)
w2 = w2 - α/m*∑dw2(i) = w2 - α/m*∑(a-y)*x2(i)
b = b - α/m*∑db(i) = b - α/m*∑(a-y)
}
7、向量化:
循環計算:效率低
向量化計算:效率高