前言:
機器學習的模式是通過大量的資料喂給一個模型,模型會根據資料不斷調整自身參數,最終具備判别這些資料的模式或特征的能力。若模型無法從這些資料中訓練出一個很好的效果,則認為它是欠拟合。若模型在訓練的時候達到很好的效果,而在未參與訓練的資料上測試,效果不好,則認為它是過拟合。
在本文,将介紹欠拟合與過拟合的概念、特點、産生的原因、解決的方法。在認真閱讀本文後,讀者将會對欠拟合與過拟合有個全面的認識。
關注公衆号CV技術指南,及時擷取更多計算機視覺技術總結文章。
欠拟合與過拟合的概念
在訓練模型的過程中,我們通常希望達到以下兩個目的:
1. 訓練的損失值盡可能地小。
2. 訓練的損失值與測試的損失值之間的差距盡可能地小。
當第一個目的沒有達到時,則說明模型沒有訓練出很好的效果,模型對于判别資料的模式或特征的能力不強,則認為它是欠拟合的。
當第一個目的達到,第二個沒有達到時,說明模型訓練出了很好的效果,而測試的損失值比較大,則說明模型在新的資料上的表現很差,此時可認為模型過度拟合訓練的資料,而對于未參與訓練的資料不具備很好的判别或拟合能力,這種情況下,模型是過拟合的。
用一個通俗的例子來說明:
假定你家裡安排你去相親,告訴你女方在某某餐廳等你。
若你家裡人告訴你,女方穿裙子,披肩長發。結果你進去,發現有好幾個位置都是穿裙子、披肩長發的女生,此時你無法判斷是哪一個,這說明你了解女生身上的特征不夠多,是欠拟合的。
若你家裡人告訴你,女方穿裙子,戴了個帽子,披肩長發,手機殼是哆啦A夢,眉角有顆痣。結果女方覺得餐廳太熱,進餐廳沒多久就脫了帽子,你進去後發現有一個女生其它條件都符合,就是沒戴帽子,你就是以認定她不是你相親對象,這說明你了解的女生的特征太多,對于稍微有點不同的特征,你就做出了錯誤判斷,這是過拟合的。
若家裡人告訴你,女方穿裙子,披肩長發,眉角有顆痣。你進去後發現,雖然穿裙子的有好幾個,披肩長發的也不少,但眉角有痣的就那一位,即便那位還戴了個帽子,也不妨礙你認為她就是你相親對象,于是你準确地走到了她面前開始了尴尬的交流,這是合理的拟合。
在這個例子中,裙子,披肩長發都是女生很普遍的特征,眉角的痣和裙子、披肩長發的組合是她特有的特征,手機殼和戴帽子這屬于偶然的特征,不能因為她換了手機殼或沒戴帽子就不認識這人了。過拟合在于将偶然的特征也作為識别身份的标志,而欠拟合在于了解的特征的特征不夠多,在機器學習中表示模型的學習能力不夠,無法學到足夠的資料特征。
欠拟合的特點:訓練的損失值很大,且測試的損失值也很大。
過拟合的特點:訓練的損失值足夠小,而測試的損失值很大。
對于一個足夠複雜度或足夠參數量的模型或神經網絡來說,随着訓練的進行,會經曆一個“欠拟合-适度拟合-過拟合”的過程。
對于一個複雜度不夠的模型或參數量太少的神經網絡來說,隻有欠拟合。
欠拟合産生的原因與解決方法
根據欠拟合的特點來看,産生欠拟合的主要原因有兩個:
1. 模型的容量或複雜度不夠,對神經網絡來說是參數量不夠或網絡太簡單,沒有很好的特征提取能力。通常為了避免模型過拟合,會添加正則化,當正則化懲罰太過,會導緻模型的特征提取能力不足。
2. 訓練資料量太少或訓練疊代次數太少,導緻模型沒有學到足夠多的特征。
根據欠拟合産生的原因來分析,解決方法有兩個:
1. 換個更複雜的模型,對神經網絡來說,換個特征提取能力強或參數量更大的網絡。或減少正則化的懲罰力度。
2. 增加疊代次數或想辦法弄到足夠的訓練資料或想辦法從少量資料上學到足夠的特征。如适度增大epoch,資料增強,預訓練,遷移學習,小樣本學習,無監督學習等。
過拟合産生的原因與解決方法
根據過拟合的特點來看,過拟合産生的原因有以下四個:
1. 模型太複雜,對神經網絡來說,參數太多或特征提取能力太強,模型學到了一些偶然的特征。
2. 資料分布太單一,例如訓練用的所有鳥類都在籠子裡,模型很容易把籠子當成識别鳥的特征。
3. 資料噪聲太大或幹擾資訊太多,如人臉檢測,訓練圖像的分辨率都是幾百乘幾百,而人臉隻占了幾十到幾百個像素,此時背景太大,背景資訊都屬于幹擾資訊或噪聲。
4. 訓練疊代次數太多,對資料反複地訓練也會讓模型學到偶然的特征。
根據過拟合産生的原因來看,解決方法有以下四個:
1. 換一個複雜度低一點的模型或正則化,對神經網絡來說,使用參數量少一點的網絡,或使用正則化。
2. 使用不同分布的資料來訓練。如資料增強,預訓練等。
3. 使用圖像裁剪等方法對圖像進行預處理。
4. 及時地停止訓練。如何判斷什麼時候該停止訓練?使用K折交叉驗證,若訓練損失還在減少,而驗證損失開始增加,則說明開始出現過拟合。
歡迎關注公衆号 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
在公衆号中回複關鍵字 “入門指南“可擷取計算機視覺入門所有必備資料。

其它文章
ML2021 | PatrickStar:通過基于塊的記憶體管理實作預訓練模型的并行訓練
ICCV2021 | PnP-DETR:用Transformer進行高效的視覺分析
ICCV2021 | 醫學影像等小資料集的非自然圖像領域能否用transformer?
ICCV2021 | Vision Transformer中相對位置編碼的反思與改進
ICCV2021 | TransFER:使用Transformer學習關系感覺的面部表情表征
2021-視訊監控中的多目标跟蹤綜述
統一視角了解目标檢測算法:最新進展分析與總結
全面了解目标檢測中的anchor | 姿态估計綜述
目标檢測中回歸損失函數總結 | 小目标檢測常用方法總結
視覺Transformer綜述 | 2021年小目标檢測最新研究綜述
Siamese network綜述 | 小目标檢測的一些問題,思路和方案
視訊了解綜述:動作識别、時序動作定位、視訊Embedding
從CVPR 2021的論文看計算機視覺的現狀
ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識别
ICCV2021 | 重新思考視覺transformers的空間次元
CVPR2021 | TransCenter: transformer用于多目标跟蹤算法
CVPR2021 | 開放世界的目标檢測
CVPR2021 | TimeSformer-視訊了解的時空注意模型
CVPR2021 | 一個高效的金字塔切分注意力子產品PSA
CVPR2021 | 特征金字塔的新方式YOLOF
經典論文系列 | 重新思考在ImageNet上的預訓練
經典論文系列 | Group Normalization & BN的缺陷
經典論文系列 | 目标檢測--CornerNet & anchor boxes的缺陷
經典論文系列 | 縮小Anchor-based和Anchor-free檢測之間差距的方法:自适應訓練樣本選擇
CV方向的高效閱讀英文文獻方法總結
CNN可視化技術總結(一)-特征圖可視化
CNN可視化技術總結(二)--卷積核可視化
CNN可視化技術總結(三)--類可視化
CNN可視化技術總結(四)--可視化工具與項目
池化技術總結 | NMS總結 | 注意力機制總結
特征金字塔總結 | 資料增強方法總結
計算機視覺專業術語總結(一)建構計算機視覺的知識體系
欠拟合與過拟合技術總結 | 損失函數技術總結
CNN可視化技術總結
CNN結構演變總結—經典模型
CNN結構演變總結—輕量化模型
CNN結構演變總結—設計原則
論文創新的常見思路總結
在公衆号《CV技術指南》中回複“技術總結”可擷取以上所有總結系列文章的彙總pdf