深度學(xué)習(xí)刷SOTA有哪些trick?
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
導(dǎo)讀
本次Tricks主要面向于深度學(xué)習(xí)中計算機(jī)視覺方向的研究,分為數(shù)據(jù)增廣方法、訓(xùn)練技巧,參數(shù)調(diào)節(jié)這三個方面進(jìn)行深入的分析。內(nèi)容有一部分是基于openmmlab的mmdet和mmseg兩個框架上的成熟應(yīng)用案例進(jìn)行詳細(xì)闡述。
首先是數(shù)據(jù)增廣的tricks:
0、Flip、RandomFlip(隨機(jī)翻轉(zhuǎn))
翻轉(zhuǎn),是最實(shí)在的,最基礎(chǔ)的數(shù)據(jù)增廣方法,簡單,但是最有效。
1、cutout(裁剪)
隨機(jī)刪除圖像中的一個矩形區(qū)域,可以得到較好的訓(xùn)練結(jié)果,其實(shí)類似于dropout的操作
2、mixup (混合提升)
mixup的作用是使得對數(shù)據(jù)的理解更具有線性化,破除由于數(shù)據(jù)分布不均勻,帶來的誤差。
3、mosaic(隨機(jī)馬賽克增強(qiáng))
極大豐富了檢測物體的背景,一張頂幾張!
還有類似于cutmix,還有很多tricks,還有代碼這些就不細(xì)致的展開了,大家可以參考一下,以上方法有的是可以組合使用


這里是mmdet武器庫中的一些數(shù)據(jù)增強(qiáng)方法


這里是mmseg武器庫的一些數(shù)據(jù)增強(qiáng)方法
傳送門,如果大家覺得好用,別忘了給個star
然后是使用在模型訓(xùn)練的技巧!
4、Backbone 和 Heads 的不同學(xué)習(xí)率 (LR)
因?yàn)锽ackbone和Heads在結(jié)構(gòu)上的差異,使用不同的學(xué)習(xí)率是可以有效的使得網(wǎng)絡(luò)整理達(dá)到更好,更穩(wěn)定的收斂效果。
5、多l(xiāng)oss加權(quán)混合
一般會用在分割比較多,常見的有focal loss+Dice loss這類的,主要解決的問題也是類內(nèi)不平衡疊加上樣本數(shù)量不平衡等一系列問題。但是要注意的是,loss函數(shù)的組合的權(quán)重是需要自己去摸索的,目前我還不能找到一種普遍適用的自動化尋參方法,所以我建議大家仔細(xì)分析,保證組合后的損失函數(shù)下降不平衡導(dǎo)致的損失函數(shù)的傾斜化。
6、帶權(quán)重CEloss,類平衡損失(多類別問題)
對于不同數(shù)量的類別,我們會選擇對損失函數(shù)加權(quán)的方法進(jìn)行處理,讓樣本數(shù)量少的類別也能得到足夠的重視。
傳送門,如果大家覺得好用,別忘了給個star:https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/tutorials/training_tricks.md
7、余弦退火算法
經(jīng)典,有實(shí)驗(yàn)結(jié)果表明,效果挺好的。
8、SWA
SWA是一種通過隨機(jī)梯度下降改善深度學(xué)習(xí)模型泛化能力的方法,而且這種方法不會為訓(xùn)練增加額外的消耗,這種方法可以嵌入到Pytorch中的任何優(yōu)化器類中。主要還是用于穩(wěn)定模型的訓(xùn)練。
9、seed(42)
隨機(jī)種子數(shù)42,為啥是42,如同為啥一個星期有7天,而我要上7天班一樣,沒啥道理,但是就是要這樣干。
測試常用技能
10、推理過程中的TTA增強(qiáng)
TTA主要在測試時,對于測試數(shù)據(jù)集進(jìn)行不同方向的預(yù)測后將預(yù)測的模型進(jìn)行組合,在不改變模型內(nèi)部參數(shù)的情況下,對效果進(jìn)行提升,有點(diǎn)費(fèi)推理時間,但是好用。
總結(jié)
我記得在kaggle上有種方法是叫call back,也就是自己給自己的測試集打個label放進(jìn)訓(xùn)練,非常不講武德。我還記得有一次有人用這種方法在一個分類比賽中,別人ACC:94,他們直接干上了98,非常離譜。其實(shí)還有個比較常用的一個技巧是多模融合,通常會跑幾個模型,然后加在一起融合,在不計算和要求推理時間的條件下。他要模型多大,就做大概多少個模型,你就會發(fā)現(xiàn),你們在單模,我多模,完全就是三個臭皮匠頂一個諸葛亮。大家對于tricks其實(shí)可以用,但是論文里面,如果是用tricks,work的話,是不能發(fā)的,所以大家多回到模型研究,tricks只是點(diǎn)綴的一些技巧罷了。
好消息!
小白學(xué)視覺知識星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺」公眾號后臺回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺」公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個基于OpenCV實(shí)現(xiàn)20個實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

