步驟 5:調整超參數

我們必須選擇多個超參數來定義和訓練模型。我們仰賴直覺、例子和最佳做法建議。不過,我們最先設定的超參數值可能無法產生最佳結果。這只是提供訓練的好起點。每個問題都不相同,因此調整這些超參數有助於修正模型,以更準確地反映現有問題的具體細節。以下說明我們使用的幾個超參數,以及如何調整這些參數:

  • 模型中的層數:類神經網路中的層數是其複雜程度的指標。選擇這個值時請務必謹慎。過多層會讓模型學習過多有關訓練資料的資訊,進而導致過度配適。層數太少會限制模型的學習能力,導致資源不足。以文字分類資料集來說,我們實驗了單層、雙層和三層機器學習功能。具有兩個層的模型成效良好,在某些情況下甚至比三層模型更好。同樣地,我們也試出了 4 層和 6 層的 sepCNN,而 4 層模型的執行效能也非常好。

  • 每個圖層的單位數:圖層中的單元必須保存圖層執行轉換的資訊。對第一層而言,則取決於特徵數量。在後續圖層中,單元數量取決於從上一層展開或縮小表示法的情形。盡量減少層間資訊遺失的情況。我們嘗試了 [8, 16, 32, 64] 範圍內的值,所以 32/64 單位的效果不錯。

  • 放棄率:模型在模型中用於正規化。可定義要捨棄的輸入比例做為預防過度的預防措施。建議範圍:0.2–0.5。

  • 學習率:這是類神經網路權重在疊代之間變更的頻率。較長的學習率可能會導致權重出現大幅波動,而且我們可能找不到最理想的值。學習率偏低,但模型會佔用更多疊代次數。一開始可以先從 1e-4 開始。如果訓練速度非常慢,請提高這個值。如果模型不是學習模式,請嘗試降低學習率。

我們另外針對 sepCNN 模型提供了幾個額外的超參數:

  1. 核心大小:卷積視窗的大小。建議值:3 或 5。

  2. 嵌入維度:我們用來表示字詞嵌入的維度數量,也就是每個字詞向量的大小。建議值:50 至 300。在我們的實驗中,我們使用預先訓練的嵌入層和 200 個維度的 GloVe 嵌入功能。

嘗試使用這些超參數,看看哪個參數效果最好。依據用途選擇使用成效最佳的超參數後,就可以開始部署模型。