天天看點

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

第三周:淺層神經網絡(Shallow neural networks)

文章目錄

  • 第三周:淺層神經網絡(Shallow neural networks)
  • 前言
  • 正文
    • 3.1 神經網絡概述( Neural Network Overview)
    • 3.2 神經網絡的表示( Neural Network Representation)
    • 3.3 計算一個神經網絡的輸出( Computing a Neural Network's output)
    • 3.4 多樣本向量化( Vectorizing across multiple examples)
    • 3.5 向量化實作的解釋( Justification for vectorized implementation)
    • 3.6 激活函數( Activation functions)
    • 3.7 為什麼需要非線性激活函數?( why need a nonlinear activation)
    • 3.8 激活函數的導數( Derivatives of activation functions)
      • (1)Sigmoid activation function
      • (2)Tanh activation function
      • (3)Rectified Linear Unit(ReLU)
      • (4)Leaky Linear Unit(Leaky ReLU)
    • 3.9 神經網絡的梯度下降( Gradient descent for neural networks)
    • 3.10(選修)直覺了解反向傳播 (Backpropagation intuition)
    • 3.11 随機初始化( Random+Initialization)
  • 總結

前言

主要内容:吳恩達《Deep Learning》系列的第一門課《神經網絡和深度學習》的第三周部分:淺層神經網絡

簡介:本文是筆者在學習該課程的過程中随意記錄的一些要點,希望能幫助到大家,歡迎大家留言or私信讨論

參考資料:吳恩達先生的課程材料&黃海廣先生整理的深度學習課程筆記(V5.7)

正文

以下是本篇文章正文内容

3.1 神經網絡概述( Neural Network Overview)

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結
吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.2 神經網絡的表示( Neural Network Representation)

一、

當我們計算網絡的層數時,輸入層是不算入總層數内,是以隐藏層是第一層,輸出層是第二 層

二、

我們将輸入層稱為第零層

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.3 計算一個神經網絡的輸出( Computing a Neural Network’s output)

單一樣本

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.4 多樣本向量化( Vectorizing across multiple examples)

多個樣本

​ 邏輯回歸是将各個訓練樣本組合成矩陣,對矩陣的各列進行計算。神經網絡是通過對邏輯回歸中的等式簡單的變形,讓神經網絡計算出輸出值。這種計算是所有的訓練樣本同時進行的,以下是實作它具體的步驟:

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

向量化

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結
吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.5 向量化實作的解釋( Justification for vectorized implementation)

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.6 激活函數( Activation functions)

a = t a n h ( z ) = e z − e − z e z + e − z a=tanh(z)=\frac {e^z-e^{-z}}{e^z+e^{-z}} a=tanh(z)=ez+e−zez−e−z​

​ tanh函數是sigmoid的向下平移和伸縮後的結果。對它進行了變形後,穿過了(0,0)點,并且值域介于+1和-1之間。

​ 在訓練一個算法模型時,如果使用tanh函數代替sigmoid函數中心化資料,使得資料的平均值更接近0而不是0.5。

​ 優化算法中:tanh函數在任何時候都優于sigmoid函數

​ 但有一個例外:在二分類的問題中,對于輸出層,因為𝑦的值是0或1,是以想讓 y ^ \widehat{y} y

​的數值介于0和1之間,而不是在 -1和 +1之間。是以需要使用sigmoid激活函數。

​ sigmoid函數和tanh函數兩者共同的缺點是,在𝑧特别大或者特别小的情況下,導數的梯度或者函數的斜率會變得特别小,最後就會接近于0,導緻降低梯度下降的速度。

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

​ 如果輸出是0、1值(二分類問題),則輸出層選擇sigmoid函數,然後其它的所有單元都選擇Relu函數。

​ Relu函數和Leaky Relu函數

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結
吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結
吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.7 為什麼需要非線性激活函數?( why need a nonlinear activation)

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

​ 總而言之,不能在隐藏層用線性激活函數;唯一可以用的通常是輸出層

3.8 激活函數的導數( Derivatives of activation functions)

(1)Sigmoid activation function

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

a = g ( z ) a=g(z) a=g(z)

d d z g ( z ) = a ( 1 − a ) \frac {d}{dz}g(z)=a(1-a) dzd​g(z)=a(1−a)

(2)Tanh activation function

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

g ( z ) = t a n h ( z ) = e z − e − z e z + e − z g(z)=tanh(z)=\frac {e^z-e^{-z}}{e^z+e^{-z}} g(z)=tanh(z)=ez+e−zez−e−z​

d d z g ( z ) = 1 − ( t a n h ( z ) ) 2 \frac{d}{dz}g(z)=1-(tanh(z))^2 dzd​g(z)=1−(tanh(z))2

注:當 z = ± 10 z=±10 z=±10時 d d z g ( z ) ≈ 0 \frac{d}{dz}g(z)≈0 dzd​g(z)≈0

​ 當 z = 0 z=0 z=0時 d d z g ( z ) = 1 − ( 0 ) = 1 \frac{d}{dz}g(z)=1-(0)=1 dzd​g(z)=1−(0)=1

(3)Rectified Linear Unit(ReLU)

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結
吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

(4)Leaky Linear Unit(Leaky ReLU)

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

3.9 神經網絡的梯度下降( Gradient descent for neural networks)

3.10(選修)直覺了解反向傳播 (Backpropagation intuition)

3.11 随機初始化( Random+Initialization)

​ 當你訓練神經網絡時,權重随機初始化是很重要的。對于邏輯回歸,把權重初始化為0當然也是可以的。但是對于一個神經網絡,如果你把 權重或者參數都初始化為 0,那麼梯度下降将不會起作用。

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

​ b可以初始化為0,但W不行,一旦W=0,會導緻反向傳播中dZ1=dZ2,進而導緻梯度下降無法繼續

​ e.g.

吳恩達《神經網絡和深度學習》學習筆記——(二)淺層神經網絡第三周:淺層神經網絡(Shallow neural networks)前言正文總結

總結

以上就是神經網絡的程式設計基礎(第二周)的部分學習筆記,本文僅僅簡單記錄了在學習過程中個人認為比較重要的要點。

繼續閱讀