【数据竞赛】图像赛排行榜拉开100名差距的技巧
作者:??塵沙風(fēng)塵
Kaggle圖像賽上分技巧之TTA: Test Time Aug
1??TTA(Test Time Aug)
1.1??簡介
1.2??案例(keras)
1.2.1??導(dǎo)入適合當(dāng)前問題的預(yù)測器(ClassPredictor用于分類,SegPredictor用于分割)
1.2.2??用配置和所需的任何參數(shù)實(shí)例化類
1.2.3??對圖片進(jìn)行預(yù)測
1.2.4??實(shí)驗(yàn)結(jié)果
1.3??小結(jié)
2??參考文獻(xiàn)
簡介
我們都知道對我們的訓(xùn)練數(shù)據(jù)進(jìn)行翻轉(zhuǎn),平移,縮放等擴(kuò)充的操作往往可以獲得一個(gè)訓(xùn)練更好的網(wǎng)絡(luò)模型,這些擴(kuò)充操作往往可以幫助我們的模型更好的挖掘到那些對于位置,光照等信息不敏感的信息,從而具有更好的泛化性,得到更好的預(yù)測結(jié)果。那既然訓(xùn)練集的數(shù)據(jù)可以擴(kuò)充,測試集呢?
Bingo!沒錯(cuò),測試集也是可以采取類似的操作。而這種操作我們稱之為TTA(Test Time Augmentation),顧名思義就是在測試的階段對數(shù)據(jù)進(jìn)行擴(kuò)充。
TTA是一個(gè)非常通用的Trick,目前幾乎絕大多數(shù)圖像相關(guān)的競賽都會(huì)使用到,而且基本是99%都能帶來線上排行榜的提升。那么究竟是怎么做的呢?其實(shí)很簡單:
就是在模型測試時(shí),對原始的測試圖像進(jìn)行各種策略的擴(kuò)充,例如:
圖像裁剪;
圖像縮放;
圖像旋轉(zhuǎn);
圖像平移;
...
然后我們將預(yù)測的結(jié)果進(jìn)行某種程度的融合,最常見的就是取平均值,然后將該分?jǐn)?shù)作為最終的預(yù)測分?jǐn)?shù)。
TTA操作較早出現(xiàn)在2015年ICLR的論文"Very Deep Convolutional Networks for Large-Scale Image Recognition"
We also augment the test set by horizontal flipping of the images; the soft-max class posteriors of the original and flipped images are averaged to obtain the final scores for the image.
案例(基于Keras)
以kaggle Dogs VS Cats為例,?edafa (TTA package)
1. 導(dǎo)入適合當(dāng)前問題的預(yù)測器(ClassPredictor用于分類,SegPredictor用于分割)
from?edafa?import?ClassPredictor?2.繼承預(yù)測器類并實(shí)現(xiàn)主函數(shù):predict_patches(self,patches)
class?myPredictor(ClassPredictor):def?__init__(self,model,*args,**kwargs):super().__init__(*args,**kwargs)self.model?=?modeldef?predict_patches(self,patches):return?self.model.predict(patches)3. 用配置和所需的任何參數(shù)實(shí)例化類
conf?=?'{"augs":["NO",\"FLIP_LR"],\"mean":"ARITH"}'4. 對圖片進(jìn)行預(yù)測
p?=?myPredictor(model,conf) y_pred_aug?=?p.predict_images(X_val) y_pred_aug?=?[(y[0]>=0.5).astype(np.uint8)?for?y?in?y_pred_aug?] print('Accuracy?with?TTA:',np.mean((y_val==y_pred_aug)))5. 實(shí)驗(yàn)結(jié)果
使用TTA:Accuracy with TTA: 0.7892
不適用TTA:Accuracy without TTA: 0.7852571428571429
小結(jié)
TTA技術(shù)目前是各大圖像相關(guān)的數(shù)據(jù)競賽的必備技能之一,它能為最終的成績帶來非常大的幫助,也是目前圖像賽的必備技能之一,趕緊收藏吧!
參考文獻(xiàn)
Kaggle小技巧:TTA(test time augmentation)測試時(shí)加強(qiáng):https://www.shangmayuan.com/a/0e4942dc496047bb95c5806c.html
https://github.com/qubvel/ttach
https://www.kaggle.com/andrewkh/test-time-augmentation-tta-worth-it
總結(jié)
以上是生活随笔為你收集整理的【数据竞赛】图像赛排行榜拉开100名差距的技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】使用MLflow管理机器学习
- 下一篇: 腾讯视频如何设置缓存画质和个数