吳恩達(dá)深度學(xué)習(xí)作業(yè)week1_3
構(gòu)建兩層神經(jīng)網(wǎng)絡(luò)
1.定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)X,Y的維度定義(此時的X,Y包括所有數(shù)據(jù))輸入層/隱藏層/輸出層數(shù)量
2.初始化模型的參數(shù)
采用np.random.randn(a,b) * 0.01隨機(jī)初始化一個維度為(a,b)的矩陣
將偏向量初始化為0
np.zeros(a,b)
分別初始化個層的w b 即 w1,b1,w2, b2,并用assert語句確保各參數(shù)的維度
以字典形式輸出w,b
3.進(jìn)行前向傳播
- 使用字典類型的參數(shù)w,b,檢索每個參數(shù)
- 實(shí)現(xiàn)前向傳播块蚌,計算Z[1] A[1] Z[2] A[2]弃揽,訓(xùn)練集里面所有例子的預(yù)測向量受葛,并assert確保各值維度正確
- 反向傳播所需的值存儲在“cache”中朱盐,cache將作為反向傳播函數(shù)的輸入(Z1 A1 Z2 A2 )
4.計算損失
- 采用交叉熵 此處可能出現(xiàn)由于np.exp函數(shù)導(dǎo)致的Warnning 可百度忽略warning
- 使用np.squeeze函數(shù)remove矩陣中維度為1的維
5.后向傳播
- 按照后向傳播公式,一一計算似将,注意各矩陣維度梭伐,正確定義計算痹雅,并以字典形式輸出梯度值組成的舉證矩陣。
6.更新參數(shù)
- 按照公式進(jìn)行更新
7.整合各個函數(shù)至模型中
8.預(yù)測函數(shù)
- 直接使用訓(xùn)練出來的參數(shù)糊识,將測試集和參數(shù)一起作為前向傳播的變量绩社,得到預(yù)測結(jié)果后摔蓝,結(jié)合輸出層的激活函數(shù)進(jìn)行判定分類(此處是sigmoid函數(shù)的結(jié)果進(jìn)行四舍五入分類)