1. 程式人生 > >資料預處理--輸入歸一化/標準化/放縮

資料預處理--輸入歸一化/標準化/放縮

輸入歸一化/標準化

  Alex 和 Caffe中的初始化引數都是基於均值歸一化的,如果不做歸一化,會因為輸入大了一半,導致訓練失敗。這也是為什麼Caffe強制為樣本計算影象均值的原因。

  這樣,畫素值[0,255]被調整成了近似[-128,128]。儘管影象資料格式規整,但是做一做歸一化還是挺有用處的。

  歸一化本身是一種降低特徵之間差異的手段,不一定就可以增強discriminative ability,應該慎重使用。

一個簡單策略

  訓練樣本均值歸一化。即對訓練集所有樣本計算各個維度的均值(比如32x32影象,就應該有32x32個均值)並且將均值儲存起來。
  訓練網路時,訓練集、驗證集減去存起來的均值。
  測試網路時,測試集減去存起來的均值(一定要全減去訓練集的均值)。

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

  減去均值後,又乘以了0.0167。簡單來說,就是減均值除以標準差。這裡對應輸入為0-255的情形。
  0.0167表示的是方差歸一化,不同資料集用不同的值為的是Normalize Input,減去均值除以std得到均值為0std為1的資料組。

  取0.0167初衷是用它來近似代替除以標準差。在ImageNet上,輸入資料的BGR三通道均值是[104,117,123]左右,而標準差在[57.1,57.4,58.4]左右,相差很小,都近似取58。然後,除以標準差,就是x/58=x*(1/58)≌x*0.017。


輸入的尺寸很重要

  ImageNet通常將224x224x3作為輸入尺寸,即具有3個顏色通道的224×224畫素影象。雖然12GB記憶體對於ImageNet上具有112x112x3維度的類似資料集的最先進的結果至關重要,但我們可能會獲得最新的結果,只有4-6GB的記憶體。另一方面,對於輸入大小為25x75x75x3x的視訊資料集,12GB的記憶體可能與您需要的結果相差很遠。