(1-2)神經網絡與深度學習 | 淺層和深層神經網絡

目錄

淺層神經網絡

神經網絡的表示 

計算神經網絡的輸出

單個樣本前向傳播

多個樣本前向傳播

激活函數

sigmoid函數與tanh函數

Relu函數和Leaky Relu函數

使用非線性激活函數原因

神經網絡的梯度下降(反向傳播)

隨機初始化

深層神經網絡

深層神經網絡前向傳播

覈對矩陣的維數

搭建深層神經網絡塊

參數和超參數


淺層神經網絡

神經網絡的表示 

  • 用上標[i]代表神經網絡的第i層,用上標(i)代表第i個樣本;
  • W^{[i]}代表第i-1層和第i層之間的權重參數矩陣,維度爲n^{[i]}*n^{[i-1]}n^{[i]}代表第i層的單元數);b^{[i]}代表第i-1層和第i層之間的偏置參數向量,維度n^{[i]}*1
  • 一般輸入層爲第0層,不算在神經網絡的層數內。

計算神經網絡的輸出

單個樣本前向傳播

z_{j}^{[i]},a_{j}^{[i]}整合爲一個列向量記做z^{[i]},a^{[i]},把w_{j}^{[i]}^{T}整合爲一個矩陣W^{[i]}

      

多個樣本前向傳播

把m個樣本的特徵向量x^{(i)}堆疊在一起構成特徵矩陣X(n_{x}*m)作爲輸入,可以同時實現m個樣本的前向傳播,此時中間結果z,a(向量或標量)都相應的擴展爲Z,A(矩陣或向量)。擴展的矩陣橫向指標對應不同的訓練樣本,豎向指標對應神經網絡中的不同節點

 

激活函數

sigmoid函數與tanh函數

    

在實際應用中幾乎不使用sigmoid激活函數,tanh函數幾乎在所有方面都優於sigmoid函數

sigmoid激活函數使用情形(導數爲a(1-a)):

  • 使用神經網絡進行2分類時,此時輸出層只有一個單元且輸出需介於0-1之間

sigmoid函數缺點:

  • 當輸入z太大或太小時,梯度會接近於0,算法優化速度會非常慢
  • 輸出以0.5爲中心,不是以0爲中心,輸出值沒有中心化的效果(輸出數據以0爲中心化可以方便下一層的學習)

tanh函數(導數爲1-a^2):

  • 優點:輸出值以0爲中心,有數據中心化的效果。方便下一層的學習。
  • 缺點:當輸入z太大或太小時,梯度會接近於0,算法優化速度會非常慢(與sigmoid類似)。

Relu函數和Leaky Relu函數

Relu函數:

  • 優點:不存在梯度接近於0的情況,算法優化速度比sigmoid和tanh函數快很多。
  • 缺點:當輸入z< 0時,梯度=0,但是這影響不大,對於大部分隱藏層的單元來說,輸入z >0,此時梯度都是不爲0的(=1)。

Leaky Relu函數:在Relu函數的基礎上增加了一個超參數,當z< 0時的係數需要手動設置,一般設爲0.01,實際操作中,可以進行嘗試然後選出最優的。

使用非線性激活函數原因

使用非線性激活函數可以讓神經網絡得到有趣的輸出。

無論使用多少個隱層,如果每個隱層和輸出層都採用線性激活函數,那麼最後的輸出可以表示爲輸入特徵的線性組合。也就是說,此時的隱層是沒有意義的,不需要任何隱層也可以得到該輸出。但如果機器學習的是線性迴歸問題,比如房價預測,輸出層用線性激活函數也許可以。

神經網絡的梯度下降(反向傳播)

隨機初始化

權重參數W應該隨機初始化,而偏置參數b可以初始化爲0,因爲只要W保證隨機初始化,就可以破壞隱藏單元對稱性。一般隨機初始化權重參數時,還要乘以一個非常小的數,如0.01。因爲如果採用sigmoid或tanh激活函數時,不至於使z過大或過小,導致計算梯度時接近於0,降低算法的優化速度。

深層神經網絡

深層神經網絡前向傳播

A^{[0]} = X,for (l=1:l)

    Z^{[l]} = W^{[l]}*A^{[l-1]} + b^{[l]}

    A^{[l]} = g^{[l]}(Z^{[l]})

其中A^{[0]}是對單個樣本前向傳播的向量進行堆疊(一列代表一個樣本),形成相應的矩陣。

覈對矩陣的維數

以5層神經網絡爲例進行覈對矩陣的維數

單個樣本 vs. m個樣本

    

搭建深層神經網絡塊

先由a^{[0]}前向傳播得到a^{[L]}=\hat y,計算損失函數L(a^{[L]},y);再反向傳播,先計算出da^{[L]}=\frac{\partial L(a^{L},y)}{\partial a^{L}},再繼續利用鏈式法則(以及前向傳播中緩存的中間結果z^{[L]},和參數W^{[L]},b^{[L]})逐步計算出dz^{[L]},dW^{[L]},db^{[L]},da^{[L-1]},其他層依次進行。

參數和超參數

參數W^{[1]},b^{[1]},W^{[2]},b^{[2]},W^{[3]},b^{[3]},...

超參數:學習率\alpha、梯度下降迭代次數、隱層數、各個隱層單元數、激活函數的選擇等等需要自己來設置的參數,實際上超參數的不同取值可以影響模型的實際參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章