針對訓練集數量較少(或者極少)的樣本,怎麼樣提高深度學習模型的分類性能?
一般這種情況不是選擇不用深度學習嗎 (逃
如果任務、數據和一些有公開數據集的任務比較一致,可以考慮遷移學習。
比如NLP的BERT大發神威,把不少只有幾十萬數據量的任務SOTA刷新了
- 數據增強,比如圖片分類場景,可通過圖片的翻轉、旋轉、縮放比例、crop、移位、加高斯雜訊等。
- 遷移學習。圖像分類考慮imagenet預訓練模型,nlp領域可考慮BERT。
- 模型融合,當訓練集數量較少時,其實可以選擇一些參數量少點的簡單模型,然後通過多個模型結果的融合來提升性能。
- 如果極少的話,可以考慮few shot,zero shot,one shot learning。
- 比較高級的增加樣本的方法:通過GAN技術去生成更多的訓練樣本。
可以去了解一下few shot learning 和 transfer learning。
zero shot,one shot 關鍵字,paper挺多的
兩個解決方案:
- 加數據。可以通過圖像增強手段擴充現有數據集。常用到有幾何變換,灰度變換等。或者使用圖像生成方法,生成所需的虛擬數據。
- 加先驗。可以使用預訓練的模型上進行fine-tune,可以進行特徵映射映射到共享子空間等等。
這些方法都可以進行嘗試。
遷移學習或域適應學習可以用來提高小樣本條件下深度學習模型的分類性能。
試試這兩種方法:小樣本擴充 和 遷移學習
不適合用是深度學習吧。
推薦閱讀: