類神經網路:遊樂場練習

第一個類神經網路

在本練習中,我們會訓練第一個小型類神經網路。類神經網路可讓我們學習學習非線性模型,而不必使用明確特徵交叉功能。

工作 1:給定的模型會將我們的兩個輸入特徵結合為單一神經元。此模型會學習任何非線性嗎?執行程式碼以確認你的語言。

工作 2:嘗試將隱藏層中的類神經元從 1 增加到 2,並嘗試從線性啟用改為非線性啟動 (例如 ReLU)。您是否能建立可學習非線性的模型?是否能有效建立資料模型?

工作 3:嘗試使用 ReLU 等非線性啟動功能,將隱藏層中的神經元從 2 增加到 3 。是否能有效建立資料模型?每次執行模型的模型品質差異為何?

工作 4:繼續在每個圖層中新增或移除隱藏層和神經元的實驗。如有需要,您也可以變更學習率、正規化和其他學習設定。可以使用的最小「最小」神經元和層數以 0.177 以下的測試損失。

增加模型大小是否會影響合適程度?或者它的融合速度為何?這麼做是否改變了改用優質模型的頻率?例如,請嘗試下列架構:

  • 第一個隱藏層,包含 3 個神經元。
  • 第二個隱藏層,包含 3 個神經元。
  • 含有 2 個神經元的第三個隱藏層。

(答案會顯示在運動正下方。)



類神經網路初始化

本練習再次使用 XOR 資料,但會探討訓練類神經網路的可重複性以及初始化的重要性。

工作 1:按照指定的四或五次執行模型。每次試用期前,請按一下「Reset the network」(重設網路) 按鈕,取得新的隨機初始化。「重設網路」按鈕是指播放按鈕左側的環狀重設箭頭)。讓每個測試至少執行 500 個步驟,以確保融合。每個模型輸出內容融合的形狀為何?有關非轉換最佳化中的初始化角色是什麼?

工作 2:嘗試新增一層和幾個額外節點,讓模型變得更複雜。從工作 1 重複執行測試。這會增加結果額外的穩定性嗎?

(答案會顯示在運動正下方。)



類神經網路螺旋

這個資料集是吵雜的螺旋狀資料。很明顯,線性模型在此處會失敗,但即使是手動定義的特徵十字可能並不容易建構。

工作 1:使用 X1 和 X2 訓練最佳模型。如有需要,可新增或移除層和神經元、變更學習設定,例如學習率、正規化率和批次大小。您能得到哪些測試損失?模型輸出途徑的平滑程度如何?

工作 2:即使採用類神經網路,還是需要進行某些功能工程才能獲得最佳效能。請新增其他的跨產品功能或其他轉換,例如 sin(X1) 和 sin(X2)。你有更好的模型嗎?模型的輸出介面是否更順暢?

(答案會顯示在運動正下方。)