
Training heuristics greatly improve various image classification model accuracies [8]. Object detection models, however, have more complex neural network structures and optimization targets. The training strategies and pipelines dramatically vary among different models. In this works, we explore training tweaks that apply to various models including Faster R-CNN and YOLOv3. These tweaks do not change the model architectures, therefore, the inference costs remain the same. Our empirical results demonstrate that, however, these freebies can improve up to 5% absolute precision compared to state-of-the-art baselines.
啟發式訓練方法大大提高了各種圖像分類模型的準确性[8]。 但是,目标檢測模型具有更複雜的神經網絡結構和優化目标。 訓練政策和流程在不同模型之間差異很大。 在本文中,我們探索适用于各種模型(包括Faster R-CNN和YOLOv3)的訓練調優方法。 這些調整不會更改模型架構,是以,推理時間保持不變。 我們的經驗結果表明,與最先進的基準相比,這些freebies可以提高高達5%的絕對精度。
1. Mixup
簡單來講就是将兩張圖檔通過不同的比例進行融合,同時圖檔對應的one-hot編碼也以相同的比例相乘,進而構造出新的資料集。本質上,mixup在成對樣本及其标簽的凸組合(convex combinations)上訓練神經網絡,可以規範神經網絡,增強訓練樣本之間的線性表達。其優點是:
- 改善了網絡模型的泛化能力
- 減少對錯誤标簽的記憶
- 增加對抗樣本的魯棒性
- 穩定訓練過程
本文提出了針對目标檢測的
視覺連貫的mixup方法(Visually Coherent Image Mixup for Object Detection),操作流程如下圖所示:
2. Classfication Head Label Smoothing
Label Smoothing也是上一篇分類中使用到的trick, 在目标檢測問題中也一樣适用。Label Smoothing 原理簡單來說就是:在分類的時候,比如二分類把原先的标簽(0,1) (稱為hard target) 轉成 soft target,具體方法就是
這裡α 是個超參數常量,K就是類别的個數 。
Softmax
分類算法的交叉熵損失函數
假設K=5,α=0.1,那麼原來y=[0,0,1,0,0],現在y’=[0.02,0.02,0.92,0.02,0.02]。這樣在公式2中,當y'處于非真實标簽時仍然有損失值(比如0.02),就使得pi不會非常接近1,這就降低了過拟合風險。
3. 資料預處理
在圖像分類問題中,一般都會使用随機擾亂圖檔的空間特征的方法來進行資料增強,可以提高模型的準确率、避免過拟合。
- 随機幾何變換:随機摳圖、随機膨脹、随機水準翻轉和随機resize。
- 随機顔色抖動:亮度、色調、飽和度、對比度。
4. 訓練政策
使用餘弦學習率+warmup的方法。
圖中(a)是常見的step修改政策和cosine修改政策+warm-up的學習率變化對比圖,可以看到cosine在初始和結束階段的變化都比較緩慢,在中間部分變化相對快一些,整體而言相比step方式變化會更加平穩一些,這種方式有利于訓練過程的穩定,包括warm-up的引入,也是為了訓練的起始階段能夠更加穩定地進行。
5. 跨卡同步Batch Normalization
Synchronized Batch Normalization,因為目标檢測算法的單卡batch size一般不能設定得像分類算法那樣大,但是較小的batch size對于單卡計算BN層參數而言并不是很有利,
6. 多尺度訓練
和YOLOv3中的訓練方式一樣。從{320,352,384,416,448,480,512,544,576,608 }中選擇一個尺度進行訓練。
随機尺度訓練是指在模型訓練階段采用随機大小的資料進行訓練,比如目前批次或epoch采用320×320大小的輸入,但是在下一個批次或epoch則采用416×416。這種做法來自YOLO算法,尺寸一般在固定的幾個數值中随機選擇,比如{320, 352, 284, 416, 448, 480, 512, 544, 576, 608},相鄰數值相差32,表示stride。
總結
資料1. 資料預處理
- 随機幾何變換:随機摳圖、随機膨脹、随機水準翻轉和随機resize。
- 随機顔色抖動:亮度、色調、飽和度、對比度。
2. Mixup
- 改善了網絡模型的泛化能力
- 減少對錯誤标簽的記憶
- 增加對抗樣本的魯棒性
- 穩定訓練過程
- Resnet-50優化
- 可變形卷積
- SE子產品
- Bbox loss (IOU,GIOU,DIOU,CIOU)
- Confidence loss(YOLOv4,YOLOv5,PP-YOLO)
- IOU_Aware_Loss(PP-YOLO)
- Focal loss
1. 多尺度訓練
- 和YOLOv3中的訓練方式一樣。從{320,352,384,416,448,480,512,544,576,608 }中選擇一個尺度進行訓練。
2. Classfication Head Label Smoothing
- y' = y(1-a) + a/K, a為超參數,K為類别數;
3. 學習率政策
- 使用餘弦學習率+warmup的方法
- 大學習率+梯度裁剪,連續n個epochs的val acc不上升或val loss不下降時學習率衰減;
4. 模型訓練加速
- 使用更大的batch size,一般也需要等比例增大學習率;
- 使用低精度(FP16,混合精度)進行訓練。
- Zero r(BN中的r)
- No bias decay
- 跨卡同步Batch Normalization
5. 其他
- Exponential Moving Average
- 知識蒸餾(knowledge distillation)
參考
【CNN調參】目标檢測算法優化技巧 - pprp - 部落格園www.cnblogs.com
https://mp.weixin.qq.com/s?__biz=MzA4MjY4NTk0NQ==&mid=2247485393&idx=1&sn=f2cdb6590e60249cb37f0a6f89c9b52a&chksm=9f80bd47a8f734516aea083717d4dd6ff48a1a816fab49c36169ba4c318e74ba87c43136a77f&scene=178&cur_album_id=1344061636923031553#rdmp.weixin.qq.com BBuf:【CV中的特征金字塔】一,工程價值極大的YOLOv3-ASFFzhuanlan.zhihu.com
陳恺:Guided Anchoring: 物體檢測器也能自己學 Anchorzhuanlan.zhihu.com
目标檢測算法優化技巧_AI之路-CSDN部落格blog.csdn.net