到現在已經學習了機器學習的三個步驟。分別是「定義模型」、「定義損失」,再來就是「做最佳化」。知道這三個步驟後,我們要如何才能做得更好呢?
首先要看模型在訓練資料中的表現如何,也就是看模型在訓練資料損失的情況。如果在訓練資料的損失較大,就表示有兩種可能的情況。
可能是模型太簡單了,不足一描述資料的情控,所以訓練資料的效果也不太好。可以增加更多特徵,或是增加神經元,或是增加深度(層數)等方法來解決。
可能使用梯度下降分法沒有找到較好的解,這邊下一節課會再說明怎麼辦。
在 2015 年有一個論文,提到一項實驗,不管是在訓練資料或是測試資料,使用 20 層的效果好過了 56 層。但照理說,比較多層會有比較彈性的模型,所以照理說 20 層不會比 56 層來的利害。這裡要注意的,這裡的問題不算是過適(overfit),而是最佳化的問題。
而當訓練資料的效果比較好,而測試資料的效果比較差,表示可能發生過適的情況,或是訓練資料與測試資料的分佈不相同。這時候可以嘗試的解法有三個:
最後提到了 K 折驗證方法(k-fold cross validation)。也就是將資料分成訓練集與驗證集。藉此來確保模型可以在不同的資料集中有相近的表現。