什麼時候應該修改驗證集和測試集的指標
前言
我們可以將模型的訓練理解成為尋找靶心的過程,如果想要模型在驗證集和測試集上的表現都好的話,那麼就需要保證驗證集和測試集相對於訓練集而言它們的靶心都處於同一位置。
如果驗證集和測試集相對於訓練集的靶心有所偏差,這時候就需要考慮修改驗證集和測試集或修改驗證集和測試集的指標
。本篇文章的主要內容來自於deeplearning.ai視訊教程。接下來我們通過兩個案例來說明一下什麼時候應該修改驗證集和測試集的資料,什麼時候需要改變它們的評估指標。
修改訓練集和驗證集的評估指標
我們有兩個垃圾郵件的分類器A和B,分類器A的錯誤率為3%,分類器B的錯誤率為5%,最開始評估分類器的指標是
錯誤率
,從資料上看A分類器的錯誤率明顯要低於分類器B,所以很當然的我們會選擇分類器A。通過實際使用兩個分類器發現,分類器A會將正常郵件當做垃圾郵件進行攔截處理,而分類器B對於部分的垃圾郵件沒有攔截功能而正常推送給使用者,而不會將正常郵件當做垃圾郵件進行攔截。從使用者角度考慮,當然不希望正常郵件被當做垃圾郵件進行攔截處理,萬一你攔截的是我的重要郵件,必定會對我造成較大的損失。相對於多看幾封垃圾郵件而言,我更希望多看幾封垃圾郵件,而不是我的正常郵件被攔截。評估指標存在的意義就是能夠讓我們從多個不同的模型中快速選擇效果最好的模型
,從現在評估指標來看,很明顯不能滿足我們的要求,所以我們需要修改評估指標。
- 如何修改評估指標
錯誤率:
m:表示驗證集或測試集中樣本的數量
:表示預測郵件為正常郵件的類標
:表示預測郵件為垃圾郵件的類標
:表示真實的類標為正常郵件
:表示真實的類標為垃圾郵件
分類錯誤的郵件主要由兩部分組成,將垃圾郵件預測為正常郵件,即公式中的 ,將正常的郵件預測為垃圾郵件,即公式中的 。在上式的錯誤率中兩種錯誤所佔的權重是相同的,即兩種分類錯誤的情況所帶來的損失是相同的,現在我們想使得將正常郵件預測為垃圾郵件在錯誤率中所佔的比重降低,所以我們可以提高第二種預測錯誤所帶來的損失,以降低第二種情況分類的錯誤率。
改進後的錯誤率:
:表示的是將垃圾郵件分為正常郵件所佔的比重
:表示的是將正常郵件分為垃圾郵件所佔的比重
為了降低將正常郵件分為垃圾郵件的錯誤率,可以設定將
的值大於
的值,並保持
通過增加第二種分類錯誤所帶來的損失降低第二種分類的錯誤率。
改變驗證集和測試集的資料
現在我們有兩個貓的分類器A和分類器B,訓練資料的圖片我們是從網上獲取的,圖片都是比較清晰的而且取景都是比較專業的,訓練兩個分類器獲取了兩個模型,通過評估指標
錯誤率
我們發現分類器A的效能明顯要優於分類器B。將兩個分類器訓練完成之後,我們獲取到兩個模型,將模型部署到應用時發現,分類器B的表現居然要比分類器A的表現好,通過調查發現,使用者上傳的圖片大多都是模糊的圖片而且取景也不是特別專業。而這與我們所希望的並不一樣,根據評估指標的結果來看,分類器A的效能應該要優於分類器B,所以這時評估指標已經不能夠很好的衡量模型的效能。我們應該考慮修改驗證集和測試集的資料,增加一些模糊和取景不專業的圖片或者修改評估指標,使得我們的評估指標不僅能夠在驗證集和測試集上辨認好的模型,更能夠在實際使用中來辨認好的模型
。
總結
我們可以將機器學習的過程分為兩個步驟確定目標和向這個目標靠近
,可以將這個過程理解為一個射箭的學習,首先我們需要確定我的目標是射中靶心(確定目標),然後我們通過控制射箭的方向和力度以及風等因素,不斷使得我們射出的箭向靶心靠近(靠近目標)。所以說,對於機器學習來說目標其實就相當於評估的指標,我們通過使用各種各樣的機巧,調參等來提高和改善模型在驗證集和測試集上的評估指標,以提升模型的效能。如果評估指標選擇存在問題,那麼之後的工作只是在浪費時間
。所以評估指標的選擇很重要,當發現評估指標存在問題時應該及時修改,避免後續工作不必要的浪費。