深度學習cnn圖片預處理方式,為什麼乘以0.0167?

深度學習cnn中圖片預處理方式:減去均值後,又乘以了0.0167.

百思不得其解,這個是trick,還是有理論依據呢?


路過……

感覺這個坑也許是我挖的,不過我默認設置的是0.017,初衷是用它來近似代替除以標準差。在ImageNet上,輸入數據的BGR三通道均值是[104,117,123]左右,而標準差在[57.1,57.4,58.4]左右,相差很小,都近似取58。然後,除以標準差,就是x/58=x*(1/58)≌x*0.017。

當然,這是我一家之言,不保證別人設置0.0167跟我是一樣的想法。


請參考 zscore normalization: https://en.wikipedia.org/wiki/Standard_score


簡單來說,就是減均值除以標準差。這裡對應輸入為0-255的情形。

來看一個輸入範圍0-1的例子

1/255/0.229 = 0.01712

來源 facebook/fb.resnet.torch, pytorch/vision


推薦閱讀:

神經網路的訓練可以採用二階優化方法嗎(如Newton, Quasi Newton)?
Hinton提出逐層貪婪訓練的方式來解決梯度彌散和局部極值的問題,caffe是如何做到的?
如何評價 Squeeze-and-Excitation Networks ?
Weight Normalization 相比batch Normalization 有什麼優點呢?
有沒有好理解的關於神經網路的書推薦?

TAG:神經網路 | 深度學習DeepLearning | 卷積神經網路CNN | CVPR |