Kaggle 漁業監控競賽首獎訪談

Rick Liu
3 min readAug 4, 2017

--

原文連結 / 競賽連結
想先瞭解一下這個競賽的可以看一下這篇

前三分之一在聊背景,有興趣就自己看吧。下面整理一下技術面的摘要:

  1. 模型:Faster R-CNN with VGG-16 & R-FCN with ResNet-101
  2. 訓練階段使用的數據擴增方法都是比較普遍的,隨機旋轉、水平翻轉、模糊、縮放,這些都有被使用,驗證時成績也有提升。
  3. 夜視圖真的比較容易辨別,而夜視圖的紅藍綠分佈跟正常圖片的紅藍綠分佈明顯不同。成績最好的模型,在訓練時,隨機分配了一些圖片,更改紅藍綠的分佈,使圖片變得類似夜視圖。
  4. 對紅藍綠分別做對比度的調整,造成魚或魚的周圍顏色改變。這樣做的效果也很好,因為光源的關係,圖片的顏色並不是很穩定。
  5. 對於該資料集的總結:(A)應該要有船的圖形的驗證資料集,這樣才能針對不同種類的船分別訓練。(B)魚的大小差異很大,在這點上做處理非常有幫助。(C)不同顏色分佈的夜視圖分開處理也使我們的成績進步。(D)論壇上面分享的額外訓練集裡面的魚,有些看起來差異太大,濾掉這些也是很重要的。(E)對於原始訓練資料集做了多邊形標記,有助於旋轉圖片,以及找到去除多餘背景的邊界框。
  6. 使用的工具 https://github.com/YuwenXiong/py-R-FCN 包含 Faster R-CNN
  7. 花了點時間標記資料、在論壇上找有用的額外資料集、找到對的資料框增方法、看看驗證階段產生的圖片預測來檢查有沒有訓練出錯誤的規律規則。(譯編:訓練模型時如果訓練資料集的資料處理得不夠精確,或是訓練模型出現 over-fitting 現象時,模型會學習到一些不正確的規律規則)
  8. 硬體資源:NVIDIA GTX 1080 * 2 & NVIDIA TITAN X * 1。非常粗淺地估計最後的模型大概需要 GTX 1080 花 50 小時訓練,7~10 秒來預測一張圖。最好的一個單一模型,其實比我們整體的 ensemble 還好,需要 4 小時訓練,預測需要 0.5 秒。(看起來好像這個單一模型沒有被選為最終的結果?)

最後給了入門人士一些非常一般化的建議,以及關於團隊合作,其實他們是同事,而且大家都有處理這類問題的經驗,所以團隊合作上沒有太大問題。

這場競賽四個月前結束的,當時沒關注到,看似分為 stage1 以及 stage2,stage1 結束之前,要上傳 model,以免參賽者對 stage2 的資料做調整。而前陣子拿到數海獅競賽首獎的 outrunner 在這場比賽排名 21 也是不錯的成績。(有興趣的人可以看 outrunner 的簡報

#Kaggle
#MachineLearning
#DataScience
#the_nature_conservancy_fisheries_monitoring

--

--