Using Open-Source Implementations
Transfer Learning
- 一個加速 fine-tune 的技巧是:將前面幾層固定的 layer,預先計算好每張圖片所對應的 output 然後存起來 (在硬碟上)。
- dataset 比較小的時候,只訓練 softmax 層;dataset 比較大的時候,可以訓練比較多層;dataset 超大的時候,可以 fine-tune 整個 model。
- 只有在 dataset 超大而且計算資源充足才考慮自己 train model。
Data Augmentation
常見
- 對垂直軸做鏡射 mirror
- 隨機裁切 random cropping
- 旋轉 rotation
- 剪切(???) shearing
局部扭曲 local warping
色彩偏移 color shifting
- 例如 R+20、G-20、B+20
- PCA color augmentation (from AlexNet 論文)
Implementing distortions during training
- distortion (data augmentation) 和 training 可以平行處理
State of Computer Vision
在不同的領域之間,假設我們有更多資料,就更傾向於使用演單的演算法,而較少使用手工工程
- 比較不需要小心設計特徵
- 只要用比較大的 NN 就可以解
- 可4印象中李宏毅說語音辨識好像滿難做到 end-to-end 的?
我們擁有的資料越少,越傾向於設計手工工程
- 在 computer vision 當中,雖然現在 data 越來越多,但總是不夠,也因此 computer vision 的領域總會設計一些相當複雜的 NN 架構。
- object detection 的 labeled data 更少,也因此使用了更複雜的 NN 架構。
- 資料少的時候,transfer learning 很有幫助
Tips for doing well on benchmarks/winning competitions
不太會實際應用在給客戶的產品上
- Ensembling
- 需要存著很多 model,占用許多記憶體
可能可以考慮應用在產品上?
- Multi-crop at test time
- 10-crop: (中間+左上+右上+左下+右下)(原本+左右鏡射)
- 計算資源足夠時可以使用
- 只需要一個 model,但也會拖慢執行時間