如果所有損失曲線在您第一次訓練模型時就會像這樣,那麼機器學習就會變得簡單許多:
不幸的是,損失曲線通常很難解讀。運用您對損失曲線的直覺,解決本頁的練習題。
練習 1:振盪損失曲線
您可以採取哪些三種做法,嘗試改善圖 21 所示的損失曲線?
根據資料結構檢查資料,找出錯誤的示例,然後從訓練集中移除這些示例。
是的,這是所有機型的最佳做法。
降低學習率。
是的,在偵錯訓練問題時,通常建議降低學習率。
將訓練集縮減為少量可信的範例。
雖然這項技巧聽起來很人工,但其實是個不錯的做法。假設模型會在少數可信賴的範例上收斂,您就可以逐步新增更多範例,或許就能找出哪些範例會導致損失曲線出現波動。
增加訓練集的範例數量。
這麼做雖然很誘人,但極不可能解決問題。
提高學習率。
一般來說,如果模型的學習曲線顯示有問題,請勿提高學習率。
練習 2. 損失曲線出現大幅跳升
請問下列哪兩個陳述指出圖 22 中爆炸損失的可能原因?
輸入資料包含一或多個 NaN,例如因除以零而導致的值。
這種情況比你想像中更常見。
輸入資料包含大量異常值。
有時,由於批次的隨機排序不當,一個批次可能會包含許多異常值。
學習率過低。
學習率極低可能會增加訓練時間,但這並非奇怪的損失曲線成因。
規則化率過高。
沒錯,過高的正則化可能會導致模型無法收斂,但不會導致圖 22 中顯示的奇怪損失曲線。
練習 3. 測試損失與訓練損失不一致
下列哪項敘述最能說明訓練和測試集的損失曲線之間存在差異的原因?
模型過度擬合訓練集。
是的,很可能是。可能的解決方案如下:
- 簡化模型,例如減少特徵數量。
- 提高正規化率。
- 確保訓練集和測試集在統計上相等。
學習率過高。
如果學習率過高,訓練集的損失曲線可能就不會像這樣運作。
練習 4. 損失曲線卡住
下列哪個敘述最有可能解釋圖 24 中顯示的異常損失曲線?
訓練集包含重複的範例序列。
這可能是一種可能。請務必充分隨機排列範例。
規則化率過高。
這不太可能是原因。
訓練集包含太多特徵。
這不太可能是原因。