- Logistic Regression
- 由於你要計算是與否的問題,所以y hat的值只在0~1之間,故取Sigmoid Function比較好,圖案就是Sigmoid Function 樣子。
其中Loss function 長這個樣子
那為什麼不用squared error 就好呢?
因為可能不是Global Maximum
f
把Lose Function 加起來,除以m就是 Cost Function,而我們要找到最小的Cost Function
所以要找到適合的w和b,怎麼找呢?用Gradient Descent法則。
用這樣去找,這是一個慢慢移動的概念,其中Alpha是Learning Rate
在寫程式時,由於沒辦法寫成這樣 ,外加曲很多值都會用到J,故我們簡化成dw
而 也簡化成db。
之後老師教了一點簡單的微積分概念,但這太簡單了,我們就略過吧~
這邊說的是Chain Rule的概念,紀肇,我們要找db和dw來求最小的Loss Function
正向傳播就是你用他給的東西去算出Loss function 的值,反向傳播就是你透過算出來的Loss function 去找dw和db是什麼,你看看~dw、db又和dz有關,dz和da有關。
就是要找這兩個~w1動一點點的話J怎麼變?以及b動一點點的話,J怎麼變?
這我們就會用到反向傳播的改念(Backpropagation),名字聽起來很酷,但其實就是從J去推測如下圖的
a,b,c動一點點的話J怎變?是Chain Rule的概念。
不用管他怎來,反正就微積分
J+=的意思是J = J+後面的東西,是python裡面常用的手法,而這邊的意思把J從i=1加到m
就變成Cost Funcetion了。
盡量不要用到For Loop因為會跑得比較慢,,這邊用右邊寫成Matrix的方式表示,就可以省略一個For Loop。
如果找一次的話,這是python代碼
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
這邊是把z寫成矩陣模式~變成
Z= np.dot(w.T,X) + b
A = sigmoid(Z)
這邊是把
assert(a.shape == (5,1))
沒有留言:
張貼留言