1.視頻網站:mooc慕課https://mooc.study.163.com/university/deeplearning_ai#/c
2.詳細筆記網站(中文):http://www.ai-start.com/dl2017/
3.github課件+作業+答案:https://github.com/stormstone/deeplearning.ai
4.5 搭建深層神經網絡塊 Building blocks of deep neural networks
我們已經瞭解了正向反向傳播的基礎組成部分,它們也是深度NN的重要組成部分,本節將介紹用它們建一個深度NN。
觀察上圖,這是一個層數較少的NN。
在第l層
- 參數是和。
- 正向傳播的輸入是,即前一層的輸出。
- 正向傳播的輸出是
所以l層每個節點的2步計算過程如下
我們可以把保存下來,因爲它對於正向反向傳播的步驟都非常有用。
接着看反向傳播,同樣在第l層
- 輸入是,即後(右邊)一層的輸出。
- 輸出是,和
概念
正向函數
forward function:用作正向傳播步驟的函數。
它在第l層的輸入是,輸出是,參數是和。同時,它還需要保存。
反向函數
backward function:用作反向傳播步驟的函數。
它在第l層的輸入是激活函數的導數,輸出是。這裏還會計算出,和。
實現了正向函數和反向函數後,NN的計算過程如下
正向傳播步驟
- 把特徵放入第一層,計算激活函數,輸出,保存
- 計算第二層激活函數,輸出,保存
- 後面幾層依次類推
- 最後計算出第l層,也就是輸出層的預測值
反向傳播步驟,包含一系列的反向迭代來計算反向梯度
- 在第l層輸入,輸出和,
- 依次類推,直至第2層,輸入,輸出和和
- 對於第1層,沒有必要計算。因爲這是輸入特徵x的導數,對於訓練監督學習的權重W沒有必要
完成上述步驟,即最終完成了一次訓練過程,現在我們得到了導數項dW和db,可以進行權重更新(是學習率)
到這裏爲止,就實現了深度NN的一個梯度下降循環。
補充一點,編程時候注意事項:請把z,W和b的值保存下來,方便正向和反向計算。