iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

到現在已經學習了機器學習的三個步驟。分別是「定義模型」、「定義損失」,再來就是「做最佳化」。知道這三個步驟後,我們要如何才能做得更好呢?

首先要看模型在訓練資料中的表現如何,也就是看模型在訓練資料損失的情況。如果在訓練資料的損失較大,就表示有兩種可能的情況。

  1. 模型偏見(Model Biase)

可能是模型太簡單了,不足一描述資料的情控,所以訓練資料的效果也不太好。可以增加更多特徵,或是增加神經元,或是增加深度(層數)等方法來解決。

  1. 最佳化做的不夠好(Optimization Issues)

可能使用梯度下降分法沒有找到較好的解,這邊下一節課會再說明怎麼辦。

在 2015 年有一個論文,提到一項實驗,不管是在訓練資料或是測試資料,使用 20 層的效果好過了 56 層。但照理說,比較多層會有比較彈性的模型,所以照理說 20 層不會比 56 層來的利害。這裡要注意的,這裡的問題不算是過適(overfit),而是最佳化的問題。

而當訓練資料的效果比較好,而測試資料的效果比較差,表示可能發生過適的情況,或是訓練資料與測試資料的分佈不相同。這時候可以嘗試的解法有三個:

  1. 增加訓練資料的數量,就算模型的彈性較大,也可能可以限制找到解。
  2. 做資料擴增,但擴增的方式需要合理。例如動物的照片,可以左右顛倒,但上下顛倒就不太合理。
  3. 限制模型、不要這麼的彈性。模型的彈性大小取決於對問題的理解。限制模型的方法可以減少神經元、使用共用參數、使用比較少的特徵,或是提早停止訓練(early stop)。而全連接的類神經網路是比較有彈性的,而 CNN 是比較有限制的類神經網路。另外還有正則化(regularization),或是丟棄網路連結(dropout)都是可以限制網路彈性的方法。

最後提到了 K 折驗證方法(k-fold cross validation)。也就是將資料分成訓練集與驗證集。藉此來確保模型可以在不同的資料集中有相近的表現。


上一篇
機器學習基本概念(二)
下一篇
類神經網路訓練不起來怎麼辦之一:局部最小值與鞍點
系列文
上課了!李宏毅老師 機器學習 (2021)16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言