神經網絡和深度學習(一)神經網絡基礎


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 即 θ1nx).

但這樣輸出的概率值會超出[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、向量化:

循環計算:效率低

向量化計算:效率高


免責聲明!

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



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