一晃過去一週多了,白駒過隙裏的8月,尾巴里的日子,既盼着早些過去,又心裏暗許着每一秒的珍貴。
我熱愛一切的需要等待和沉澱:琥珀裏的時間,微暗的燈火,那忽明忽暗的未來,那在路上向彼此靠近的我們。
最近一直在整理對稱網絡,包括Unet、Unet升級版、hourglassNet,stacked-hourglassNet,嘗試瞭如下方向:
- 增減卷積層、pooling—unpooling/deconvolution層
- 改變loss
- 調超參
- 數據集的預處理
- 預訓練和finetune
- ……
半個月下來,目標任務的效果依然乏善可陳,有點陷入“鞍點”而舉步維艱的感覺。不過,有新鮮且有啓發的paper可讀,還是一件值得開心的事。接下來就進入正題。
<FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks>
想寫這篇paper更多的是因爲它裏邊很多的想法都具有很好的普適性,很多實驗策略都很有啓發。主要體現在以下幾點:
數據集的訓練策略:
- 網絡的初始化更好的策略是通過數據集的預訓練來完成對其初始化;
- 數據集的運用順序也很重要。比如由易到難、由粗到細、由大到小;
- 針對深度網絡依然無法解決的“頑疾”,可以手動挑選或者人工製作小數據集,對網絡進行精細微調。 -
“網絡塊”的堆疊:
- 可複用網絡塊的堆疊可以實現對特徵的提取的優化
- 塊間可以引入監督信息,即loss的前置,可以改進單個塊的特徵提取能力,同時避免更早的發現錯誤;
- 塊的輸入也可以多變,從而融合不同層之間不同level的特徵,相當於引入先驗;
- 本文中不僅有原始圖片的輸入,還會有本層的誤差作爲下層的輸入;
多網融合:
- 第一種是網絡並行訓練,前幾層權值共享,後幾層單獨訓練,再做特徵融合,或者完全分開訓練;
- 第二種是大小網絡分開訓練的特徵融合;
- 第三種就是兩個網絡完全獨立訓練,然後組合串行,分階段完成各自任務;
本文中還有一個可以借鑑的trick是,將原圖和label(適用於也是圖片的)先進行一個embeding操作,然後在特徵層面上求loss。這個就相當於將原圖和label先映射到同一空間,然後再計算各自特徵之間的差異,感覺更合理。。。