1. 程式人生 > >吳恩達DeepLearning.ai筆記(1-4)-- 深層神經網路

吳恩達DeepLearning.ai筆記(1-4)-- 深層神經網路

神經網路和深度學習—深層神經網路

1.深度網路中的前向傳播


2. 核對矩陣的維度

DNN結構示意圖如圖所示:


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

  • W[l](n[l],n[l1])
  • b[l](n[l],1)
  • dW[l](n[l],n[l1])
  • db[l](n[l],1)
  • Z[l](n[l],1)
  • A[l]=Z[l](n[l],1)

3. 為什麼使用深層表示

人臉識別和語音識別:


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

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

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

電路邏輯計算:


假定計算異或邏輯輸出:

y=x1x2x3xn

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


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

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

4. 前向和反向傳播

首先給定DNN的一些引數:





4. 引數和超引數

引數:

引數即是我們在過程中想要模型學習到的資訊,W[l]b[l]

超引數:

超引數即為控制引數的輸出值的一些網路資訊,也就是超引數的改變會導致最終得到的引數W[l]b[l]的改變。

舉例:

  • 學習速率:α
  • 迭代次數:N
  • 隱藏層的層數:L
  • 每一層的神經元個數:n[1]n[2],
  • 啟用函式g(z)的選擇