深度學習cnn圖片預處理方式,為什麼乘以0.0167?
01-07
深度學習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 |