天天看點

神經網絡基礎以及激活函數,以及梯度下降

1.神經網絡分為三層:輸入層,隐藏層以及輸出層

2.a^[0]表示輸入層,a^[1]表示隐藏層,a^[2]表示輸出層,在隐藏層還要表示

則呈現a^[1]1,a^[1]2,a^[1]3

3.m個訓練集向量化

Z^[1] = W^[1]X+b
A^[1] = 符号(Z^[1])
Z^[2] = W^[2]A^[1]+b^[2]
a^[2] = 符号(Z^[2])#sigmoid()激活函數
for i in m:
Z^[1](i) = W^1]X^(i)+b
A^[1](i) = 符号(Z^[1](i))
Z^[2](i) = W^[2]A^[1][i]+b^[2]
a^[2](i) = 符号(Z^[2](i))      

4.矩陣的從左至右的行表示不同的樣本矩陣的列從上至下表示樣本的不同屬性

5.sigmoid函數就是激活函數,這個函數的值域在0-1之間

sigmoid() = 1/1+e^(-z),主要用于二分類問題

6.還有一個更好的激活函數tanh函數,值域在-1-1之間,是sigmoid函數通過平移之後得到的函數,g(z) = tanh(z) = e^(z)-e^(-z)/e^(z)+e^(-z)任何場合都可以使用,處理二分類問題

7.最常用的預設激活函數reLU,當定義域小于0的時候,它的導數為0,當定義域大于0的時候,它的值域是一條直線,reLU = max(0,z)

8.帶洩露reLU激活函數,當它的定義域小于0的時候,它會是趨近于0的函數

9.激活函數主要用于輸出層

10.正向傳播和反向傳播

#正向傳播:
Z^[1] = W^[1]X+b*[1]
A^[1] = g^[1](Z^[1])
Z^[1] = W^[2]A^[1]+b^[2]
A^[2] = g^[2](Z^^[2])+b^[2]
#反向傳播:
dZ^[2] = A^[2] - Y
dw^[2] = 1/m*dZ^[2]*A^[1]T
db^[2] = 1/m*np.sum(dZ^[2],axis = 1,keepdoms = True)
dZ^[2] = W^[2]dZ^[2]*g^[1](Z^[1])
dW^[2] = 1/m*dZ^[1]X^T
db^[1] = 1/m*np.sum      

繼續閱讀