深度學習

已完成

「深度學習」是一種進階機器學習形式,可嘗試模擬人類大腦的學習方式。 深度學習的關鍵在於建立人工 神經網路,以使用數學函式模擬神經中的神經活動,如下所示。

生物神經網路 人工神經網路
自然神經網路圖。 人工神經網路圖。
神經元會引發以對電化學刺激作出回應。 引發時,會將訊號傳遞至連接的神經元。 每個神經元都是一個對輸入值 (x) 和 權數 (w) 進行操作的函式。 函式會包裝在 啟用 函式中,以判斷是否要傳遞輸出。

人工神經網路由多 神經元所組成,基本上定義了深度巢狀函式。 此架構是該技術之所以稱為 深度學習 的原因,且其所產生的模型通常稱為 深度神經網路 (DNN)。 您可以針對許多種類的機器學習問題使用深度神經網路,包括迴歸和分類,以及用於自然語言處理和電腦視覺的更特製化模型。

就像本課程模組中所討論的其他機器學習技術一樣,深度學習牽涉到將定型資料調整至函式,以根據一個或多個特徵 (x) 的值預測標籤 (y)。 函式 (f(x)) 是巢狀函式的外部層,其中神經網路的每一層會封裝在 x 上運作的函式,以及與它們相關聯的權數 (w) 值。 用於定型模型的演算法包括反覆運算地將訓練資料中的特徵值 (x) 向前饋送到各層以計算 ŷ 的輸出值,驗證模型以評估計算的 ŷ 值與已知 y 值 (量化模型中的誤差或 損失 水平) 的距離,然後修改權數 (w) 以減少損失。 定型的模型包含最終權數值,以產生最精確的預測。

範例 - 使用深度學習進行分類

為了進一步瞭解深度神經網路模型的運作方式,讓我們來探索一個範例,其中神經網路會用來定義企鵝物種的分類模型。

神經網路用來定義企鵝物種的圖表。

特徵資料 (x) 由一些企鵝的量值所組成。 具體來說,量值為:

  • 企鵝喙的長度。
  • 企鵝喙的深度。
  • 企鵝鰭肢的長度。
  • 企鵝的重量。

在此情況下,x 是四個值的向量,或以數學來表示的話,即為 x=[x1,x2,x3,x4]

我們嘗試預測的標籤 (y) 是企鵝的物種,而且有三個可能的物種,分別為:

  • 阿德利企鵝
  • 巴布亞企鵝
  • 頰帶企鵝

這是分類問題的範例,其中機器學習模型必須預測觀察最有可能屬於哪一個類別。 分類模型會透過預測由每個類別的機率所組成的標籤來完成此作業。 換句話說,y 是三個機率值的向量;每個可能的類別都有一個機率值: [P(y=0|x)、P(y=1|x)、P(y=2|x)]

使用此網路推斷預測的企鵝類別的程序如下:

  1. 企鵝觀察的特徵向量會饋送至神經網路的輸入層,其中包含每個 x 值的神經元。 在此範例中,會使用下列 x 向量作為輸入: [37.3, 16.8, 19.2, 30.0]
  2. 神經第一層的函式會藉由結合 x 值和 w 權數來計算加權總和,並將其傳遞至啟用函式,以判斷它是否符合要傳遞至下一層的閾值。
  3. 層中的每個神經元都會連線到下一層中的所有神經元 (這種架構有時稱為 完全連線的網路),因此每一層的結果都會透過網路向前傳送,直到到達輸出層為止。
  4. 輸出層會產生值的向量;在此情況下,使用 softmax 或類似的函式來計算三種可能企鵝類別的機率分佈。 在此範例中,輸出向量為: [0.2, 0.7, 0.1]
  5. 向量的元素代表類別 0、1 和 2 的機率。 第二個值是最高的值,因此模型會預測企鵝的物種是 1 (巴布亞企鵝)。

神經網路的學習方式為何?

神經網路中的權數是計算標籤預測值的方式的核心。 在定型程序期間,模型會 瞭解 將能產生最精確預測的權數。 讓我們更詳細地探索訓練程序,以瞭解此學習的進行方式。

神經網路被定型、評估與最佳化的圖表。

  1. 系統會定義定型和驗證資料集,並將定型特徵饋送至輸入層。
  2. 網路每一層中的神經元會套用其權數 (這一開始會隨機指派) 並透過網路饋送資料。
  3. 輸出層會產生包含 ŷ 計算值的向量。 例如,企鵝類別預測的輸出可能是 [0.3. 0.1. 0.6]
  4. 損失函式 可用來比較預測的 ŷ 值與已知的 y 值,並匯總 (稱為損失) 的差異。 例如,如果上一個步驟中傳回輸出的已知類別是頰帶企鵝,則 y 值應該是 [0.0, 0.0, 1.0]。 這與 ŷ 向量之間的絕對差異是 [0.3, 0.1, 0.4]。 事實上,損失函式會計算多個案例的匯總變異數,並將之摘要為單一 損失 值。
  5. 由於整個網路基本上是一個大型巢狀函式,因此最佳化函式可以使用差異微數來評估網路上每個權數對損失的影響,並判斷其如何調整 (向上或向下),以減少整體損失量。 特定最佳化技術可能會有所不同,但通常牽涉到 梯度下降 方法,其中每個權數都會增加或減少,以將損失降至最低。
  6. 權數的變更會 反向傳播 至網路中的層級,並取代先前使用的值。
  7. 此程序會在多個反覆項目上重複執行 (稱為 Epochs),直到遺失降到最低,且模型可正確預測。

注意

雖然更容易將定型資料中的每種情況一次一個地通過網路傳遞,但實際上資料會被批次處理成矩陣,並使用線性代數計算進行處理。 因此,神經網路定型最適合在具有圖形處理單位 (GPU) 的電腦上執行,這會針對向量和矩陣操作執行最佳化。