類神經網路:互動式練習

在下方的互動式練習中,您將進一步瞭解類神經網路的運作方式。首先,您會瞭解參數和超參數變更如何影響網路的預測。接著,您將運用所學知識訓練類神經網路,以符合非線性資料。

練習 1

下列小工具會設定類神經網路,並採用下列設定:

  • 輸入層有 3 個神經元,分別包含 0.000.000.00
  • 含有 4 個神經元的隱藏層
  • 含有 1 個神經元的輸出層
  • 套用至所有隱藏層節點和輸出節點的 ReLU 活化函式

查看網路的初始設定 (注意:請勿點選 ▶️>| 按鈕),然後完成小工具下方的任務。

任務 1

類神經網路模型的三項輸入特徵值皆為 0.00。按一下網路中的每個節點,即可查看所有初始化的值。按下「播放」按鈕 (▶️) 前,請先回答下列問題:

您認為會產生哪種輸出值:正數、負數或 0?
正數輸出值
負數輸出值
輸出值為 0

現在請按一下網路上方「播放」按鈕 (▶️),並觀察所有隱藏層和輸出節點值是否填入。上述答案是否正確?

按這裡查看說明

您獲得的確切輸出值會因權重和偏差參數的隨機初始化方式而異。不過,由於輸入層中的每個神經元值都是 0,因此用於計算隱藏層節點值的權重都會歸零。舉例來說,第一個隱藏層節點的計算方式如下:

y = ReLU(w11* 0.00 + w21* 0.00 + w31* 0.00 + b)

y = ReLU(b)

因此,每個隱藏層節點的值都會等於偏誤 (b) 的 ReLU 值,如果 b 為負數,則為 0;如果 b 為 0 或正數,則為 b 本身。

輸出節點的值計算方式如下:

y = ReLU(w11* x11 + w21* x21 + w31* x31 + w41* x41 + b)

任務 2

修改神經網路前,請先回答下列問題:

如果您在第一個隱藏層之後,將另一個隱藏層新增至神經網路,並為這個新層提供 3 個節點,同時保持所有輸入和權重/偏差參數不變,哪些其他節點的計算會受到影響?
網路中的所有節點,輸入節點除外
只有第一個隱藏層中的節點
只有輸出節點

現在請修改神經網路,新增含有 3 個節點的隱藏層,如下所示:

  1. 按一下「1 hidden layer」(1 個隱藏層) 文字左側的「+」按鈕,在輸出層之前新增隱藏層。
  2. 按兩下新隱藏層上方的「+」按鈕,在該層中新增 2 個節點。

上述答案是否正確?

按這裡查看說明

只有輸出節點會變更。由於這個神經網路的推論是「前饋式」(計算作業從頭到尾進行),因此在網路中新增層級只會影響新層級「之後」的節點,不會影響之前的節點。

任務 3

在網路圖的第一個隱藏層中,按一下第二個節點 (從頂端算起)。變更網路設定前,請先回答下列問題:

如果變更權重 w12 的值 (顯示在第一個輸入節點 x1 下方),哪些其他節點的計算可能會受到影響 (適用於某些輸入值)?
第一個隱藏層中的第二個節點、第二個隱藏層中的所有節點,以及輸出節點。
第一個隱藏層、第二個隱藏層和輸出層中的所有節點。

現在,請點選權重 w12 的文字欄位 (顯示在第一個輸入節點 x1 下方),將值變更為 5.00,然後按下 Enter 鍵。 觀察圖表的更新情形。

你的答案是否正確?驗證答案時請務必小心:如果節點值沒有變更,是否表示基礎計算沒有變更?

按這裡查看說明

在第一個隱藏層中,只有第二個節點 (您點選的節點) 會受到影響。第一個隱藏層中其他節點的值計算不含 w12 做為參數,因此不受影響。第二個隱藏層中的所有節點都會受到影響,因為這些節點的計算取決於第一個隱藏層中第二個節點的值。同樣地,輸出節點值也會受到影響,因為其計算方式取決於第二個隱藏層中節點的值。

您是否認為答案是「無」,因為當您變更權重值時,網路中的節點值都沒有變更?請注意,節點的基礎計算方式可能會變更,但節點的值不會變更 (例如,ReLU(0) 和 ReLU(–5) 都會產生 0 的輸出。 請勿僅根據節點值就假設網路受到的影響,務必一併查看計算結果。

練習 2

特徵交叉練習類別資料模組中,您手動建構特徵交叉,以符合非線性資料。現在,您會瞭解是否可以建構類神經網路,在訓練期間自動學習如何擬合非線性資料。

您的工作:設定類神經網路,將下圖中的橘色點與藍色點分開,並在訓練和測試資料中,將損失值降至 0.2 以下。

Instructions:

在下方的互動式小工具中:

  1. 如要修改神經網路超參數,請嘗試下列部分設定:
    • 按一下網路圖表「隱藏圖層」標題左側的「+」和「-」按鈕,即可新增或移除隱藏圖層。
    • 如要新增或移除隱藏層中的神經元,請點選隱藏層資料欄上方的「+」和「-」按鈕。
    • 如要變更學習率,請從圖表上方的「學習率」下拉式選單中選擇新值。
    • 從圖表上方的「啟用」下拉式選單中選擇新值,即可變更啟用函式。
  2. 按一下圖表上方的「播放」按鈕 (▶️),使用指定參數訓練類神經網路模型。
  3. 觀察模型在訓練過程中如何配合資料,以及「輸出」部分中的「測試損失」和「訓練損失」值。
  4. 如果模型在測試和訓練資料上的損失未低於 0.2,請按一下「重設」,然後使用不同的設定重複步驟 1 至 3。重複這個程序,直到獲得滿意的結果為止。

按這裡查看解決方案

我們透過下列方式,將測試和訓練損失都降到 0.2 以下:

  • 新增 1 個隱藏層,內含 3 個神經元。
  • 選擇 0.01 的學習率。
  • 選擇 ReLU 活化函式。