1 2 吳恩達深度學習筆記之深層神經網路的建立過程

2021-08-19 15:00:33 字數 1074 閱讀 9859

建立dnn深度學習架構:

1.初始化引數w,b:根據給定的layer_dims即各層單元數資訊,對各層引數wl,bl進行初始化,對於第l層wl的維度為(layer_dims[l],layer_dims[l-1]),可以使用np.random.randn(shape)進行初始化。bl的唯度為(layer_dims[l],1),可以使用np.zeros((shape))進行初始化

2.前向傳播:前向傳播主要為兩個步驟,首先是線性傳播獲取z,利用z=np.dot(w,a)+b,並把(a,w,b)放入linear_cache中,然後通過激勵函式獲取下一步的a,前l-1層的激勵函式通常為relu函式,最後一層為sigmoid函式,此步需儲存包括linear_cache和activation_cache的資訊((a,w,b),(z))為後續過程做鋪墊

3計算損失函式cost,注意計算後的cost一定要經過np.squeeze()進行壓縮,否則得不到實數

4.反向傳播:同樣反向傳播也分為兩步,首先是獲取dz,對於最後一層需要用原始求導公式先獲取dal,其它層都可以推出,

從dal到dz為激勵函式傳播過程,此處需要使用到第二步中的activation_cache即z的資訊,根據激勵函式不同求導使用的函式也不同,可以事先寫好求導函式,方便使用。求得dz後,通過線性傳播過得dw,db,da_prev,此處需要用到第二部中的linear_cache的資訊即(a,w,b)。反向傳播返回各層梯度值grads

線性反向傳播公式:

dw=np.dot(dz,a_prev.t)/m

db=np.sum(dz,axis=1,keepdims=true)/m

da_prev=np.dot(w.t,dz)

5.根據反向傳播的梯度值更新引數:

def update_parameters(parameters,grads,learning_rate):

l=len(parameters)//2

for i in range(l):

parameters['w'+str(i+1)]=parameters['w'+str(i+1)]-learning_rate*grads['dw'+str(i+1)]

return parameters

吳恩達深度學習筆記

2.02 紅色為小標題,藍色比較重要 第四講第二週 4.2.1 為什麼要進行例項 4.2.2 經典網路 lenet 5網路當時還沒有padding,所以在卷積過程當中越來越小 也沒有relu函式,當時這個例子用的是sigmoid函式。超級引數不是很多。這個典型的網路有padding,使用的是relu...

吳恩達深度學習筆記

目錄導數的細節 向量化python中的廣播 第二部分深度學習內容 吳恩達講深度學習 1.資料量更大 2.演算法越來越優 3.業務場景越來越多樣化 4.學術界or工業界越來越卷 私以為 邏輯回歸是最簡單的二分類模型,也可以說是後續深度神經網路的基礎框架.達叔的演算法知識第一課.邏輯回歸的引數是w和b,...

吳恩達 深度學習 學習筆記

第一周 卷積神經網路 第二週 深度卷積網路 例項 第三週 目標檢測 首先我們來看一下普通的滑動視窗,首先給一張14 14 3的影象用16個5 5 3過濾器處理之後變成10 10 16的特徵圖,經過2 2的池化操作後變成 5 5 16 的特徵圖,然後新增乙個連線400個單元的全連線層,再新增乙個全連線...