43 樹葉分類競賽技術(shù)總結(jié)【動手學深度學習v2】

圖片分類競賽(樹葉分類)
數(shù)據(jù)集
- 176 類,18353 訓練樣本

已公開的代碼合集
- https://www.kaggle.com/c/classify-leaves/code
技術(shù)分析
1、數(shù)據(jù)增強:
- 在測試的時候多次使用較弱的增強然后取平均(在測試的時候是在中心點 crop 出一張圖片做預測,很多時候也有在四個角上 crop 一次,然后將五次所得的結(jié)果取平均)
2、使用多個模型預測,最后結(jié)果加權(quán)平均
- 有使用多個模型加權(quán)取平均的,也有使用單一模型多次訓練然后取平均的
- 模型多為 ResNet 變種(對模型進行了更多的細節(jié)上的調(diào)整):DenseNet,ResNeXt,ResNeSt,EfficientNet
3、訓練算法和學習率
- 訓練算法一般使用的是 SGD 或者 Adam(多為 Adam 或者其變種,SGD 通過仔細調(diào)參(如 momentum 等)通常能夠獲得比 Adam 更好的結(jié)果,但是 Adam 對學習率不太敏感,換句話說,Adam 在不需要過多調(diào)參的情況下也能夠獲得不錯的加過,Adam 的結(jié)果更加平滑(可以理解為:如果兩種算法的解集看成是同一坐標系中的兩條二次函數(shù)曲線的話,SGD 所得的解集波峰比 Adam 更高,但是 SGD 對調(diào)參的要求也更高,Adam 的曲線更加平滑,雖然波峰比不上 SGD 但是相對來講整體更加穩(wěn)定,受參數(shù)的影響較?。?,所以在不那么關(guān)注優(yōu)化算法而是對模型和數(shù)據(jù)進行改進的情況下,可以使用 Adam 來弱化調(diào)參隊最終結(jié)果的影響)
- 學習率基本上是固定不變的,也有可能經(jīng)過一段時間之后下降一次:一般是基于 Cosine (好處是不用調(diào)參)或者是訓練不動的時候往下調(diào)(每隔一定的 epoch 之后學習率下降一次)
4、清理數(shù)據(jù)
- 真實數(shù)據(jù)中可能存在大量的噪音:可能是真實的數(shù)據(jù)本身存在噪音;也有可能是后期人為處理的時候可能會存在疏忽
- 有重復的圖片可以手動去除
- 數(shù)據(jù)集中圖片背景較多:真實的物體占整個圖片的區(qū)域比較小,可以進行裁剪,去除多余的背景
- 樹葉沒有方向性:可以進行隨機旋轉(zhuǎn)
- 跨圖片增強:Mixup(隨機取兩張圖片,然后取一個隨機權(quán)重,再將兩張圖片進行疊加(標號也進行疊加)得到一個新的訓練圖片參加訓練);CutMix(在不同的圖片中隨機采樣一些塊,然后取一個隨機的權(quán)重將這些塊進行隨機的組合,最終所得的圖片的標號也取決于隨機組合的權(quán)重,這樣做的好處是能夠盡可能地關(guān)注數(shù)據(jù)中的局部信息)
AutoGluon
https://www.kaggle.com/code/zhreshold/autogluon-vision-0-96-with-15-lines/notebook
- 15 行代碼,安裝架訓練總共耗時 100 分鐘
總結(jié)
1、提升精度思路
- 根據(jù)數(shù)據(jù)挑選增強
- 使用新模型
- 使用新優(yōu)化算法:使用新的優(yōu)化算法能夠弱化調(diào)參對結(jié)果的影響,將注意力主要集中在使用新模型和數(shù)據(jù)增強上
- 多個模型融合
- 測試時使用增強
2、數(shù)據(jù)相對簡單,排名有相對隨機性
3、在工業(yè)界應用中
- 使用模型融合和測試時增強比較少,計算代價過高
- 通常固定模型超參數(shù),而將精力主要花在提升數(shù)據(jù)質(zhì)量(當一個模型投入使用之后,隨著用戶的增加,數(shù)據(jù)量也會越來越多,用戶的實際行為也會隨之改變,需要對新的數(shù)據(jù)進行標注和對舊數(shù)據(jù)的清理,這樣的話數(shù)據(jù)的質(zhì)量會越來越高)
- 在工業(yè)應用中更關(guān)心數(shù)據(jù),在模型固定的情況下,對數(shù)據(jù)進行調(diào)整和更新,提高數(shù)據(jù)的質(zhì)量;在競賽中更關(guān)心模型,在數(shù)據(jù)固定的情況下,對模型進行改進從而提升精度
----end----
其他參考
1、《動手學深度學習》,課程安排,https://courses.d2l.ai/zh-v2/assets/pdfs/part-2_9.pdf
標簽: