在下方的互動式練習中,您將進一步瞭解類神經網路的運作方式。首先,您會瞭解參數和超參數變更如何影響網路的預測。接著,您將運用所學知識訓練類神經網路,以符合非線性資料。
練習 1
下列小工具會設定類神經網路,並採用下列設定:
- 輸入層有 3 個神經元,分別包含
0.00、0.00和0.00值 - 含有 4 個神經元的隱藏層
- 含有 1 個神經元的輸出層
- 套用至所有隱藏層節點和輸出節點的 ReLU 活化函式
查看網路的初始設定 (注意:請勿點選 ▶️ 或 >| 按鈕),然後完成小工具下方的任務。
任務 1
類神經網路模型的三項輸入特徵值皆為 0.00。按一下網路中的每個節點,即可查看所有初始化的值。按下「播放」按鈕 (▶️) 前,請先回答下列問題:
現在請按一下網路上方「播放」按鈕 (▶️),並觀察所有隱藏層和輸出節點值是否填入。上述答案是否正確?
按這裡查看說明
您獲得的確切輸出值會因權重和偏差參數的隨機初始化方式而異。不過,由於輸入層中的每個神經元值都是 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 個節點的隱藏層,如下所示:
- 按一下「1 hidden layer」(1 個隱藏層) 文字左側的「+」按鈕,在輸出層之前新增隱藏層。
- 按兩下新隱藏層上方的「+」按鈕,在該層中新增 2 個節點。
上述答案是否正確?
按這裡查看說明
只有輸出節點會變更。由於這個神經網路的推論是「前饋式」(計算作業從頭到尾進行),因此在網路中新增層級只會影響新層級「之後」的節點,不會影響之前的節點。
任務 3
在網路圖的第一個隱藏層中,按一下第二個節點 (從頂端算起)。變更網路設定前,請先回答下列問題:
現在,請點選權重 w12 的文字欄位 (顯示在第一個輸入節點 x1 下方),將值變更為 5.00,然後按下 Enter 鍵。
觀察圖表的更新情形。
你的答案是否正確?驗證答案時請務必小心:如果節點值沒有變更,是否表示基礎計算沒有變更?
按這裡查看說明
在第一個隱藏層中,只有第二個節點 (您點選的節點) 會受到影響。第一個隱藏層中其他節點的值計算不含 w12 做為參數,因此不受影響。第二個隱藏層中的所有節點都會受到影響,因為這些節點的計算取決於第一個隱藏層中第二個節點的值。同樣地,輸出節點值也會受到影響,因為其計算方式取決於第二個隱藏層中節點的值。
您是否認為答案是「無」,因為當您變更權重值時,網路中的節點值都沒有變更?請注意,節點的基礎計算方式可能會變更,但節點的值不會變更 (例如,ReLU(0) 和 ReLU(–5) 都會產生 0 的輸出。 請勿僅根據節點值就假設網路受到的影響,務必一併查看計算結果。
練習 2
在特徵交叉練習的類別資料模組中,您手動建構特徵交叉,以符合非線性資料。現在,您會瞭解是否可以建構類神經網路,在訓練期間自動學習如何擬合非線性資料。
您的工作:設定類神經網路,將下圖中的橘色點與藍色點分開,並在訓練和測試資料中,將損失值降至 0.2 以下。
Instructions:
在下方的互動式小工具中:
- 如要修改神經網路超參數,請嘗試下列部分設定:
- 按一下網路圖表「隱藏圖層」標題左側的「+」和「-」按鈕,即可新增或移除隱藏圖層。
- 如要新增或移除隱藏層中的神經元,請點選隱藏層資料欄上方的「+」和「-」按鈕。
- 如要變更學習率,請從圖表上方的「學習率」下拉式選單中選擇新值。
- 從圖表上方的「啟用」下拉式選單中選擇新值,即可變更啟用函式。
- 按一下圖表上方的「播放」按鈕 (▶️),使用指定參數訓練類神經網路模型。
- 觀察模型在訓練過程中如何配合資料,以及「輸出」部分中的「測試損失」和「訓練損失」值。
- 如果模型在測試和訓練資料上的損失未低於 0.2,請按一下「重設」,然後使用不同的設定重複步驟 1 至 3。重複這個程序,直到獲得滿意的結果為止。
按這裡查看解決方案
我們透過下列方式,將測試和訓練損失都降到 0.2 以下:
- 新增 1 個隱藏層,內含 3 個神經元。
- 選擇 0.01 的學習率。
- 選擇 ReLU 活化函式。