NO IMAGE

本文主要參考吳恩達的機器學習課程。

 

一、機器學習中的各種策略:

      開發 一個完整的機器學習專案要經歷:使用訓練集訓練模型—>開發集調整模型引數—>測試集測試模型效果—>上線實際使用。

  1. 如果模型在訓練集上表現不好,可採取的策略有:

        選擇更大的神經網路(即更復雜的模型),使用AdamOptimizer等替代隨機梯度下降法來優化,等等。

   2. 如果模型在開發集上表現不好,可採取的策略有:

          正則化,dropout(作用相當於正則化), 使用更多的資料作為訓練集,等等

   3.  如果模型在在測試集上表現不好,可採取的策略有:

          使用更多的資料作為開發集,等等

   4. 如果模型在現實應用中表現不好,可採取的策略有:

           改變開發集或者損失函式,等等

      注:不太建議使用early stopping.

 

二、 評估指標

       1. 常用的評估指標有準確率,F-socre等

       2. 實際中,可考慮執行時間等其他指標。

 

三、 指南

        選擇未來期望會用到的、模型表現較好的資料來作為開發集和測試集,即開發集、測試集應和專案上線後實際應用中的資料來自同一個分佈(資料來源一致)。反例:不能使用高清圖片作為開發集和測試集,然後實際應用大多是識別有很多噪聲的圖片,這樣應用效果可能會不好。

 

四、訓練集、開發集和測試集的劃分

   1. 傳統方式:70%的訓練集、30%的測試集(實際應叫開發集);或者60%的訓練集,20%的開發集,20%測試集

    2. 資料量很大(達到百萬以上的級別)時,可考慮98%作為訓練集,1%作為開發集,1%作為測試集。

    3. 不建議省略測試集

 

五、 和人類的水平進行比較:  

      人類在模型任務上特別擅長, 如果你的模型表現不如人類水平,可以做如下工作:

     1. 獲取人工打過標籤的資料

     2. 人工分析錯誤原因:為什麼人類作對了?

     3.  更好地進行偏差和方差分析:

(1)計算人類的水平和模型在訓練集上的錯誤率和之差deta1,計算模型在訓練集上的錯誤率和開發集上的錯誤率之差deta2;

(2)如果deta1較大,則說明偏差過大(模型可能欠擬合),可考慮的措施有:

       訓練更復雜的模型,使用更好的優化演算法(Momentum, RMSProp, Adam等), 超參搜尋等。

  (3)  如果deta2較大,則說明方差過大(模型可能過擬合),可考慮的措施有:

        使用更多的資料;正則化,包括L2,dropout, 資料增強(如圖片的裁剪/縮放/彩色變換/翻轉), 超參搜尋等。

     4. 機器學習在某些領域已經超越了人類的表現