https://zhuanlan.zhihu.com/p/58081812git
筆者介紹
楊樂涵,成都實驗外國語學校高二學生,華中科技大學機器學習實習研究生,師從何琨教授,主要研究興趣爲計算機視覺。創新工場DeeCamp2018成員,Kaggle Expert(top 1.21%),兩枚銀牌,目前計算機視覺方向論文一篇。歡迎各位國內外的導師幫助我保送國內本科。github
Team leader Khoi已經在kaggle discussion上發表了部分的工做app
https://www.kaggle.com/c/humpback-whale-identification/discussion/82393機器學習
參賽人員:Khoi Nguyen、Iafoss、Hans Yang、Oceanide
排名:31/2131(top 2% silver medal)學習
致謝
Martin,感謝martin在上一次kaggle whale playground比賽中的第一名代碼和解決方案。測試
Alex Liao @AlexL,感謝Alex在比賽期間回答了咱們不少問題,而且透露了必定的trickui
Lu Yang,感謝西北工業大學的Lu Yang學長在比賽期間與咱們分享他的test方法,是咱們在public LB上能boost 0.02左右的分數blog
何琨,感謝何教授在比賽前期提供了一些關於one-shot的思路資源
interneuron,感謝interneuron在discussion提出的Images with text OCR方法,使咱們在LB上獲得了更優的方法
Guosheng Hu @Guosheng Hu,感謝胡博士在比賽前期給咱們了專業的指導
代碼&解決方案
代碼:https://github.com/suicao/Siamese-Whale-Identification
模型結構:Siamese(cnn部分使用DenseNet12一、DenseNet16九、ResNet50、NasNetMobile)、ResNeXt50、SE-ResNeXt10一、SE-ResNeXt152
1.使用ImageNet預訓練模型,Iafoss的單模型分數最高的是DenseNet121(0.938LB)
2.咱們嘗試在前大約100個epochs使用384384的小尺寸圖像,再使用512512尺寸的圖像訓練50 epochs,受限於計算資源,咱們沒有更大的顯存或使用半精度來訓練更大尺寸的圖像,通過試驗驗證,使用大尺寸圖像來訓練會有更高的LB分數。
3.在使用TTA以後LB有所下降,因此咱們最後沒有使用TTA
4.我也曾經嘗試過在siamese中使用nasnetmobile,不過nasnetmobile的訓練速度實在太慢,以致於沒能跑到100epoch以上
5.SE-ResNeXt101 152在訓練過程當中出現了一些小bug,在10 epoch左右的時候loss再也不降低,嘗試使用Adam和SGD都有一樣的問題,最終由於時間問題並未解決該bug
6.ResNet50 正常分類訓練,測試的時候不輸出類的標籤,直接提取特徵向量(度量歐式距離最近的幾個),new_whale不參與訓練,僅參與測試。
7.最後經過多模型的融合達到了Private LB 0.94417
Additional:使用RGB而非Gray,咱們最高的Gray單模型僅僅達到了0.89x
Happy Kaggle, Happy academic.