最近在看代碼,發現很多實驗中,在圖片進行訓練前,都要將圖像減去imagenet的均值,為什么要有這一步呢?查閱了很多網上的資料,發現去均值是為了對圖像進行標准化,可以移除圖像的平均亮度值 (intensity)。很多情況下我們對圖像的照度並不感興趣,而更多地關注其內容,比如在對象識別任務中,圖像的整體明亮程度並不會影響圖像中存在的是什么物體。這時對每個數據點移除像素的均值是有意義的[1]。而另一個資料顯示在每個樣本上減去數據的統計平均值可以移除共同的部分,凸顯個體差異。其效果如下所示:
可以看到天空的紋理被移除了,凸顯了汽車和高樓等主要特征。[2]
另外,正如該博客作者所說,我們在計算圖像均值時,應該只需針對於訓練集進行計算,而非使用測試集,驗證集和其他以外的數據集進行計算,否則否則就違背了深度學習的原則:模型訓練過程僅能從訓練模型中獲取信息。所以imagenet的均值我們不應該使用。但是只要對比實驗中使用同樣的方式處理,也是可以的。
后面發現更加官方的解釋來更新,先鍛煉去了。
[1]
【數據預處理】:圖像去均值:image mean 和 pixel mean - Jack_Kuo的博客 - CSDN博客
https://blog.csdn.net/weixin_37251044/article/details/81157344#fn:2
[2]
深度學習理論——數據預處理(逐樣本減去均值)
https://blog.csdn.net/Miss_yuki/article/details/80662017