天天看點

機器學習筆記5:機器學習政策之方差和偏差

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

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

      開發 一個完整的機器學習項目要經曆:使用訓練集訓練模型--->開發集調整模型參數--->測試集測試模型效果--->上線實際使用。

  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. 機器學習在某些領域已經超越了人類的表現

繼續閱讀