這裡假定圖片和標註、任務型別(比如分類、語意分割還是目標檢測)已經確定,訓練集和驗證集已劃分。

1、資料

資料很重要,模型是對資料分佈的抽象,如果對資料分佈不夠了解,我們不可能設計出效果好的模型,就像讓一個畫家畫一個他從來沒見過的東西一樣。

1。1、感性認識

檢視圖片、標註

感受標註質量

漏標是否嚴重

錯標是否嚴重

框是否緊湊

等等

看看訓練集和驗證集資料分佈差異

1。2、理性認識

對圖片資訊進行統計

尺寸

長寬比

等等

對標註資訊進行統計

目標檢測

框的尺寸

框得長寬比

等等

分類

各個類別佔比

等等

等等

1。3、總結任務的挑戰

根據“1。1、感性認識”和”1。2、理性認識”,我們對資料分佈有了整體的認知,據此我們需要總結出該任務的挑戰,並構想可能存在的解決方案(比如資料增強、使用多大得網路輸入尺寸、最佳化網路結構等等)

分類

類別不均衡

等等

目標檢測

框的尺寸分佈很廣

框的尺寸分佈很廣

存在很小的目標

存在很大的目標

目標很密集

一張圖裡目標很多

目標occlusion情況嚴重

等等

2、模型

2。1、模型選型

根據“1。3、總結任務的挑戰”,我們心裡大概有了候選模型,使用該模型作為baseline

2。2、評價指標選擇

根據任務的關注重點來選擇評價指標,甚至可以選擇多種評價指標,因為每個評價指標只能體現模型的一方面特性

2。3、訓練集過擬合

結合訓練集上的loss和評價指標來確認能否過擬合

小batch過擬合

不加任何data augmentation

加上data augmentation

全量訓練集過擬合

不加任何data augmentation

加上data augmentation

如果過擬合情況不好,可以看看下面這些地方是否存在問題

網路輸入尺寸

batch norm

base lr

optimizatimizer

lr scheduler

max epochs

等等

使用上述方法,過擬合情況依然不好

可以使用“2。4、驗證集指標最佳化”的流程進行最佳化

2。4、驗證集指標最佳化

2。4。1、發現問題

2.4.1.1、看指標,比如PR曲線、mAP等等

總結可能存在的問題,比如false positive很多

2.4.1.2、檢視bad case

根據bad case,總結出三四種常見的問題,並依據這些問題對最終指標的影響從大到小進行排序

2。4。2、分析問題

針對每個問題,做一些猜想

2。4。3、定位問題

設計實驗確認到底哪個猜想才是問題的真實原因

2。4。4、解決問題

確認猜想後,針對該猜想設計一些解決方案,並設計實驗確認哪個解決方案才能解決問題

2。4。5、迴圈

如果過一遍上述四步之後,效果仍然不達目標指標,再迴圈一次