AI 機器學習、深度學習模型調優方法及方向

關鍵字:科學的模型訓練


1. 背景

1.1 選擇正確的改進方向

在實際應用過程中,算法模型的準確度還不夠好。為改進這個問題應該怎麼做?

  • 擴大樣本容量,收集更多維度數據
  • 優化特徵工程
  • 改良模型算法或參數

總結:每一個方向都是一個選擇,選擇一個正確的方向,能夠大大提高效率。

2.2 數據發展趨勢

數據增長:得益於數字設備的發展,互聯網的發展

計算能力:得益於計算機計算能力的提高

趨勢:數據量越來越大,深度學習模型在海量數據上的表現更加高於傳統機器學習模型(另,文本類數據近年來增長速度更快)

2. 設置開發、測試集

2.1 結果導向,訓練數據與實際業務需一致(數據角度)

  • 充分考慮訓練數據與實際業務數據一致(數據質量,數據分佈)
  • 合理劃分數據,引導模型做出最正確的訓練

訓練數據和業務數據不一致會導致訓練的模型無法泛化實際業務,造成較大偏差,使用訓練集(做訓練用),開發集(特徵選擇,調整參數用),測試集(評估算法性能)

2.2 開發集、測試集應服從同一分佈

避免訓練集、開發集、測試集不符合同一分佈,如果處在不同的分佈狀態,可能會導致模型過擬合,無法泛化適應另一個分佈

2.3 開發集、測試集規模應能根據評估性能所需程度(開發集通常1000~10000)

傳統的訓練、測試集對於大規模數據並不適用,開發集和測試集的比例會遠小於30%

關注不同算法、參數模型得出結果差異,根據差異水平1%?0.1%?0.01%?,決定是否需要更大的樣本凸顯差異;大樣本也不要遠超過評估性能所需程度。

關注業務需求,較小的準確率是否對業務提高較大提升(投入產出比)

2.3 模型單值評估及優化(通常進行平均或加權平均糅合成單一指標)

單值評估指標:AUC、F1、Score 衡量最終結果

準確率(precision)、召回率(recall):衡量模型某方面能力

有時候不單一的考慮準確度,還要考慮效率(比如運行時長)、滿意度(偽真和假反的發生頻率)、期望收入(概率和期望的綜合結果)

2.4 建立idea-code-experiment 循環

快速迭代,快速改進方案,不斷循環提升,記錄優化方向,檢測提升原因,覆盤優化

3. 誤差分析

3.1 預估投入產出,決定優化方案

通過分析各類誤差分佈情況,預估優化成效及投入,評估是否值得投入

建議先解決其他原因的誤差,隨著優化的調整,再考慮標註結果誤差

3.2 建立Eyeball & Blackbox 開發集驗證

  • 大型開發集中,不需要考慮所有的誤判樣本,可以建立少量的Eyeball,檢查誤差
  • 如果出現Eyebal性能提升遠高於Blackbox,則可能有過擬合風險,要修改Eyeball

3.3 Eyeball & Blackbox 規模應足夠大

  • Eyeball應當足夠大,以便提供足夠的錯誤分類樣本
  • Blackbox一般1000~10000個樣本就足夠


4. 偏差與方差

4.1 偏差與方差的兩大來源

偏差:訓練集上的錯誤率

方差:測試集的表現低於訓練集的程度

貝葉斯錯誤率:可避免偏差誤差+方差誤差

若有較高可避免偏差,可加大模型規模,若有較高方差,可加大樣本量或正則

4.2 偏差與方差的權衡

加大規模可能會減少偏差,增大方差,加入正則可能會增加偏差,減少方差,也有些時候可以時增加方差和偏差

減少偏差

  • 加大模型規模
  • 增加特徵選擇
  • 減少正則
  • 修改模型結構
  • 添加更多數據

減少方差

  • 減小模型規模
  • 減少特徵選擇
  • 根據誤差分析修改特徵
  • 加入正則
  • 修改模型結構
  • 添加更多數據
  • 提前結束模型

5. 學習曲線

5.1 診斷偏差與方差

通過偏差和方差隨著樣本數量增加,走向來確定:

欠擬合


AI 機器學習、深度學習模型調優方法及方向



高偏差,過擬合


AI 機器學習、深度學習模型調優方法及方向



高方差,欠擬合,增加樣本


AI 機器學習、深度學習模型調優方法及方向



高偏差,高方差


AI 機器學習、深度學習模型調優方法及方向



6. 樣本分佈

6.1 樣本選取細節

  • 儘量剔除無用數據,減少浪費計算機資源和模型表徵能力
  • 對於不一致的數據是否添加,從業務意義和關注點區分,有些數據加入能增加模型表徵能力,有些數據加入會降低
  • 設置數據權重,減少計算資源浪費

樣本選用:

● 訓練集:這是算法將學習的數據(例如,互聯網圖像+移動應用圖像)。這並不需要我

們從與真正關心的相同分佈(開發/測試集分佈)的數據中提取。

● 訓練開發集:這些數據來自與訓練集相同的分佈(例如,互聯網圖像+移動應用圖

像)。它通常比訓練集要小;它只需要足夠大到來評估和跟蹤我們的學習算法的進展。

● 開發集:這是從與測試集相同分佈的數據中抽取出來的,它反映了我們最終關心的數據

的分佈(例如,移動應用圖像) 。

● 測試集:這是從與開發集相同分佈的數據中抽取出來的(例如,移動應用圖像)。

有了這四個獨立的數據集,你現在可以評估:

● 訓練誤差,對訓練集進行評估。

● 該算法能夠泛化到與訓練集相同分佈數據的能力,並對訓練開發集進行評估。

● 算法在你實際關心的任務上的性能,通過對開發集 和/或 測試集評估。


AI 機器學習、深度學習模型調優方法及方向


分享到:


相關文章: