吳恩達《Machine Learning》精煉筆記 5:神經網路

紅色石頭發表於2021-01-14

系列文章:

吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習

吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程

吳恩達《Machine Learning》精煉筆記 3:迴歸問題和正則化

吳恩達《Machine Learning》精煉筆記 4:神經網路基礎

今天帶來第五週課程的筆記:神經網路。本文是在上節神經網路的基礎上,做了進一步的闡述,內容包含:

  • 神經網路代價函式
  • 反向傳播法及解釋
  • 梯度檢驗
  • 神經網路的小結

神經網路代價函式

引數解釋

對幾個引數的標記方法進行說明解釋:

分類討論

主要是兩類:二分類和多類分類

代價函式

邏輯斯蒂迴歸(LR)中的代價函式:

在邏輯斯蒂迴歸中,只有一個輸出變數稱之為標量scalar。

但是在神經網路中會有多個輸出變數,hθ(x)是一個K維的向量。

假設第i個輸出函式:

代價函式J表示為:

解釋說明:

反向傳播法Backpropagation Algorithm

  • 首先計算最後一層的誤差
  • 再一層層地反向求出各層的誤差,直到倒數第二層

前向傳播例子

假設有一個資料樣本:

前向傳播法就是透過一層層地按照神經網路的順序從輸入層到輸出層計算下去。

反向傳播例子

  1. 從最後一層的誤差開始計算:

  1. 用δ表示誤差,誤差=模型預測值-真實值

  1. 前一層的誤差

  1. 再前一層的誤差

第一層是輸入變數,不存在誤差

  1. 假設λ=0,如果不做正則化處理時

對上面的式子中各個上下標的含義進行解釋:

  • l代表的是第幾層
  • j代表的是計算層中的啟用單元的下標
  • i代表的是誤差單元的下標

演算法

  • 利用正向傳播方法計算每層的啟用單元
  • 利用訓練集的真實結果與神經網路的預測結果求出最後一層的誤差
    • 最後利用該誤差運用反向傳播法計算出直至第二層的所有誤差。
  • 便可以計算代價函式的偏導數

反向傳播的直觀理解

前向傳播原理

  • 2個輸入單元;2個隱藏層(不包含偏置單元);1個輸出單元
  • 上標i表示的是第幾層,下標表示的是第幾個特徵或者說屬性

圖中有個小問題,看截圖的右下角!!!

根據上面的反向傳播法得到的結論:

反向傳播原理

引數展開

上面的式子中實現了怎麼利用反向傳播法計算代價函式的導數,在這裡介紹怎麼將引數從矩陣形式展開成向量形式

梯度檢驗

如何求解在某點的導數

在代價函式中怎麼對某個引數θ求導

神經網路小結

首要工作

在構建神經網路的時候,首先考慮的是如何選擇網路結構:多少層和每層多少個神經單元

  • 第一層的單元數即我們訓練集的特徵數量。
  • 最後一層的單元數是我們訓練集的結果的類的數量。
  • 如果隱藏層數大於1,確保每個隱藏層的單元個數相同,通常情況下隱藏層單元的個數越多越好。

訓練神經網路步驟

1.引數的隨機初始化
2.利用正向傳播方法計算所有的hθ(x)
3.編寫計算代價函式 JJ的程式碼
4.利用反向傳播方法計算所有偏導數
5.利用數值檢驗方法檢驗這些偏導數
6.使用最佳化演算法來最小化代價函式

至此,第五週的課程筆記完畢!


本文首發於公眾號:AI有道(ID: redstonewill),歡迎關注!

相關文章