天氣情況圖像分類

向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)??????
機(jī)器學(xué)習(xí)AI算法工程?? 公眾號(hào):datayx
該數(shù)據(jù)集包含6個(gè)常見天氣類別的60000張圖像,這些類別包括晴天,多云,下雨,下雪,薄霧和雷雨天氣。
數(shù)據(jù)說明
各類天氣圖片數(shù)量:
晴天:10000張
多云:10000張
雨天:10000張
大雪:10000張
薄霧:10000張
雷雨:10000張
數(shù)據(jù)來源
http://vcc.szu.edu.cn/research/2017/RSCM.html
數(shù)據(jù)清洗與可視化分析



解決方案
代碼?獲取方式:
關(guān)注微信公眾號(hào) datayx ?然后回復(fù)?天氣分類?即可獲取。
針對(duì)本次賽題的任務(wù)特點(diǎn),我們團(tuán)隊(duì)采取了Swsl_resnext101_32x8d 網(wǎng)絡(luò)作為Backbone。同時(shí)創(chuàng)新性的引入了CBAM注意力機(jī)制, Label Smooth(標(biāo)簽平滑),OHEM(在線難例樣本挖掘),Arc-Loss等諸多創(chuàng)新設(shè)計(jì),使得我們的單模就能達(dá)到線上84.3+的F1-score,從比賽一開始就遙遙領(lǐng)先其他隊(duì)伍。兼顧了速度和精度,具有很高的實(shí)際應(yīng)用價(jià)值,同時(shí),通過最終的模型融合,更是達(dá)到了線上84.7+的精度。
主干網(wǎng)絡(luò)(Backbone)選取
?2020年NeurIPS 中的一篇工作:Rethinking the Value of Labels for Improving Class-Imbalanced Learning中針對(duì)數(shù)據(jù)類別不平衡(也泛稱數(shù)據(jù)長尾分布)下的分類問題進(jìn)行研究并指出,如果直接把類別不平衡的樣本丟給模型用于學(xué)習(xí),模型會(huì)在major classes(在本次比賽中即“晴朗”類別)的樣本上的學(xué)習(xí)效果更好,而在minor classes(“多云”)上泛化效果差。同時(shí)該工作指出半監(jiān)督和自監(jiān)督均能顯著提升不平衡數(shù)據(jù)下的學(xué)習(xí)表現(xiàn),因此團(tuán)隊(duì)采用半弱監(jiān)督模型swsl_resnext101_32x8d作為本次比賽的backbone。由于數(shù)據(jù)集中存在大量的干擾背景,真正對(duì)最終分類結(jié)果影響較大的區(qū)域占比較小,因此團(tuán)隊(duì)在原始的swsl_resnext101_32x8d的基礎(chǔ)上添加注意力機(jī)制模塊CBAM,讓模型能夠更有效的學(xué)到關(guān)鍵區(qū)域。
數(shù)據(jù)增廣選擇?
本次比賽中訓(xùn)練集的數(shù)據(jù)量大,訓(xùn)練集和測試集的分布基本一致,訓(xùn)練集的樣本種類豐富。因此團(tuán)隊(duì)僅采用了兩種常見的數(shù)據(jù)增廣方案,只在圖像的尺寸等方便進(jìn)行增廣,力求在不破壞圖像原有特征的基礎(chǔ)上進(jìn)一步提高模型的泛化能力。
上分tricks?
搭建完基本的Backbone并選取合適的增廣策略之后,為進(jìn)一步提高團(tuán)隊(duì)所用模型在數(shù)據(jù)集上的泛化能力,團(tuán)隊(duì)根據(jù)模型在數(shù)據(jù)集上的線下線上表現(xiàn)選擇一些特定的Trick,這些創(chuàng)新方案也是我們團(tuán)隊(duì)能一直遙遙領(lǐng)先其他團(tuán)隊(duì)的關(guān)鍵所在。?
Label Smooth(標(biāo)簽平滑)?
在常見的多分類問題中,網(wǎng)絡(luò)輸出先經(jīng)過softmax處理后進(jìn)行交叉熵計(jì)算Loss,為了使得網(wǎng)絡(luò)對(duì)測試集預(yù)測的概率分布和其真實(shí)分布接近,常用的做法是使用one-hot對(duì)真實(shí)標(biāo)簽進(jìn)行編碼,而這種將標(biāo)簽強(qiáng)制one-hot的方式使網(wǎng)絡(luò)過于自信從而會(huì)導(dǎo)致過擬合發(fā)生,因此團(tuán)隊(duì)選擇用Label Smooth來軟化這種編碼方式。
OHEM (在線難例樣本挖掘)?
經(jīng)過線下實(shí)驗(yàn)發(fā)現(xiàn),團(tuán)隊(duì)采用的模型在訓(xùn)練過程中針對(duì)“cloudy”類別表現(xiàn)較差,如下圖所示。因此為進(jìn)一步提高對(duì)該類別的鑒別能力,團(tuán)隊(duì)采用OHEM來進(jìn)一步提高模型能力。OHEM最初在目標(biāo)檢測任務(wù)中提出,但是該思想在所有任務(wù)中都通用,團(tuán)隊(duì)選取當(dāng)前batch中Top k大的loss的均值作為當(dāng)前batch的loss進(jìn)行梯度的回傳, 提高batch中hard sample對(duì)網(wǎng)絡(luò)更新的作用。并實(shí)驗(yàn)發(fā)現(xiàn)該種方法能夠有效提高對(duì)“cloudy“的鑒別能力。
CBAM注意力機(jī)制?
前面談到過由于數(shù)據(jù)集中存在大量的干擾背景,真正對(duì)最終分類結(jié)果影響較大的區(qū)域占比較小,因此團(tuán)隊(duì)在原始的swsl_resnext101_32x8d的基礎(chǔ)上添加注意力機(jī)制模塊CBAM,讓模型能夠更有效的學(xué)到關(guān)鍵區(qū)域。
訓(xùn)練細(xì)節(jié)和線上精度變化 訓(xùn)練細(xì)節(jié)
優(yōu)化器:采取sgd.
初始學(xué)習(xí)率:5e-4,
學(xué)習(xí)率指數(shù)下降策略。
2-3個(gè)epoch
按照16w/1w劃分本地訓(xùn)練/驗(yàn)證集
部分訓(xùn)練過程采取了apex半精度混合加速訓(xùn)練
通過freeze多層網(wǎng)絡(luò)進(jìn)行多種變化的Fine-tune方式
線上F1分?jǐn)?shù):
單模型線上最高精度: 0.843+
模型融合策略:通過對(duì)模型添加不同的Trick(Cbam注意力機(jī)制, Arc-Loss, OHEM, Label-Smooth)分別訓(xùn)練得到不同的多個(gè)模型,然后采取投票的方式,最終線上f1-score: 0.847+。可見模型融合帶來的收益并不明顯,我們的單模已經(jīng)達(dá)到了很高的精度同時(shí)有著很快的推理速度,速度精度較為平衡,具有實(shí)際應(yīng)用價(jià)值。
機(jī)器學(xué)習(xí)算法AI大數(shù)據(jù)技術(shù)
?搜索公眾號(hào)添加:?datanlp
長按圖片,識(shí)別二維碼
閱讀過本文的人還看了以下文章:
TensorFlow 2.0深度學(xué)習(xí)案例實(shí)戰(zhàn)
基于40萬表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測
《基于深度學(xué)習(xí)的自然語言處理》中/英PDF
Deep Learning 中文版初版-周志華團(tuán)隊(duì)
【全套視頻課】最全的目標(biāo)檢測算法系列講解,通俗易懂!
《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf
《深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼
《深度學(xué)習(xí):基于Keras的Python實(shí)踐》PDF和代碼
python就業(yè)班學(xué)習(xí)視頻,從入門到實(shí)戰(zhàn)項(xiàng)目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書代碼
《深度學(xué)習(xí)之pytorch》pdf+附書源碼
PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼
汽車行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)
李沐大神開源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!
《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼
將機(jī)器學(xué)習(xí)模型部署為REST API
FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享
重要開源!CNN-RNN-CTC 實(shí)現(xiàn)手寫漢字識(shí)別
同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過不了?
前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測
【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類、‘票據(jù)’分類兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類
VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類工程項(xiàng)目
特征工程(二) :文本數(shù)據(jù)的展開、過濾和分塊
如何利用全新的決策樹集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線識(shí)別手寫中文網(wǎng)站
中科院Kaggle全球文本匹配競賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
?搜索公眾號(hào)添加:?datayx??
