吳恩達 DeepLearning.ai 課程提煉筆記(1-4)神經網路和深度學習 --- 深層神經網路

以下為在Coursera上吳恩達老師的DeepLearning.ai課程項目中,第一部分《神經網路和深度學習》第四周課程部分關鍵點的筆記。筆記並不包含全部小視頻課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂。同時在閱讀以下筆記之前,強烈建議先學習吳恩達老師的視頻課程。


1. 矩陣的維度

DNN結構示意圖如圖所示:

對於第 l 層神經網路,單個樣本其各個參數的矩陣維度為:

  • W^{[l]}(n^{[l]},n^{[l-1]})
  • b^{[l]}(n^{[l]},1)
  • dW^{[l]}(n^{[l]},n^{[l-1]})
  • db^{[l]}(n^{[l]},1)
  • Z^{[l]}(n^{[l]},1)
  • A^{[l]}=Z^{[l]}(n^{[l]},1)

2. 為什麼使用深層表示

人臉識別和語音識別:

對於人臉識別,神經網路的第一層從原始圖片中提取人臉的輪廓和邊緣,每個神經元學習到不同邊緣的信息;網路的第二層將第一層學得的邊緣信息組合起來,形成人臉的一些局部的特徵,例如眼睛、嘴巴等;後面的幾層逐步將上一層的特徵組合起來,形成人臉的模樣。隨著神經網路層數的增加,特徵也從原來的邊緣逐步擴展為人臉的整體,由整體到局部,由簡單到複雜。層數越多,那麼模型學習的效果也就越精確。

對於語音識別,第一層神經網路可以學習到語言發音的一些音調,後面更深層次的網路可以檢測到基本的音素,再到單詞信息,逐漸加深可以學到短語、句子。

所以從上面的兩個例子可以看出隨著神經網路的深度加深,模型能學習到更加複雜的問題,功能也更加強大。

電路邏輯計算:

假定計算異或邏輯輸出:

y=x_{1}oplus x_{2}oplus x_{3}oplus cdotsoplus x_{n}

對於該運算,若果使用深度神經網路,每層將前一層的相鄰的兩單元進行異或,最後到一個輸出,此時整個網路的層數為一個樹形的形狀,網路的深度為 O(log_{2}(n)) ,共使用的神經元的個數為:

1+2+cdot+2^{log_{2}(n)-1}=1cdot dfrac{1-2^{log_{2}(n)}}{1-2}=2^{log_{2}(n)}-1=n-1

即輸入個數為n,輸出個數為n-1。

但是如果不適用深層網路,僅僅使用單隱層的網路(如右圖所示),需要的神經元個數為 2^{n-1} 個 。同樣的問題,但是深層網路要比淺層網路所需要的神經元個數要少得多。

3. 前向和反向傳播

首先給定DNN的一些參數:

  • L:DNN的總層數;
  •  n^{[l]}:表示第 l 層的包含的單元個數;
  • a^{[l]} :表示第 l 層激活函數的輸出;
  • W^{[l]} :表示第 l 層的權重;
  • 輸入 x 記為 a^{[0]} ,輸出 hat y 記為 a^{[L]}

前向傳播(Forward propagation)

Input: a^{[l-1]}

Output: a^{[l]}
m cache(z^{[l]})

  • 公式:

z^{[l]}= W^{[l]}cdot a^{[l-1]}+b^{[l]}\a^{[l]}=g^{[l]}(z^{[l]})

  • 向量化程序:

Z^{[l]}=W^{[l]}cdot A^{[l-1]}+b^{[l]}\A^{[l]}=g^{[l]}(Z^{[l]})

反向傳播(Backward propagation)

Input: da^{[l]}

Output: da^{[l-1]}dW^{[l]}db^{[l]}

  • 公式:

dz^{[l]}=da^{[l]} * g^{[l]}{

da^{[l-1]} 代入 dz^{[l]} ,有:

dz^{[l]}=W^{[l+1]}{^T}cdot dz^{[l+1]}* g^{[l]}{

  • 向量化程序:

dZ^{[l]}=dA^{[l]} * g^{[l]}{

4. 參數和超參數

參數:

參數即是我們在過程中想要模型學習到的信息, W^{[l]}b^{[l]}

超參數:

超參數即為控制參數的輸出值的一些網路信息,也就是超參數的改變會導致最終得到的參數 W^{[l]}b^{[l]} 的改變。

舉例:

  • 學習速率:alpha
  • 迭代次數: N
  • 隱藏層的層數:L
  • 每一層的神經元個數: n^{[1]}n^{[2]} , cdots
  • 激活函數 g(z) 的選擇

更多超參數的調整和學習吳恩達老師將在下一個主題中介紹。


大概利用了一周的時間將第一部分《神經網路和深度學習》學習完了,這一部分如其標題,主要從logistic regression 開始逐步講解了神經網路前向傳播和後向傳播的內部原理,通過學習結合課後的作業確實能夠更加深入更加透徹地理解神經網路的原理。感謝Ng提供這麼好的課程。


本文將同時更新在我的CSDN博客

吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-4)

歡迎關注,一起學習一起進步喲。


推薦閱讀:

【ICCV 2017論文筆記】我們應當如何理解視頻中的人類行為?
深度卷積網路的 BUG 一例:「絕藝」最近被人類棋手找到了一個有趣的缺陷
數學不行還學AI - 第5話 - 神經網路平話演義(下)
關於AI的胡說八道
2017 ? AI晶元元年

TAG:深度学习DeepLearning | 神经网络 | 人工智能 |