Deep-Learning

為什麼我們需要在將圖像放入 CNN 之前對其進行歸一化?

  • December 9, 2015

我不清楚我們通過 (image - mean_image) 對 CNN 的圖像進行歸一化的原因?謝謝!

首先註意:您確實也應該除以每個特徵(像素)值的標準偏差。減去均值使輸入居中為 0,然後除以標準差,使任何縮放的特徵值成為遠離均值的標準差數。

回答您的問題:考慮神經網絡如何學習其權重。C(NN)s 通過不斷地將反向傳播計算的梯度誤差向量(乘以學習率)添加到整個網絡中的各種權重矩陣來學習,因為訓練示例通過。

這裡要注意的是“乘以學習率”。

如果我們不縮放輸入訓練向量,我們的特徵值分佈範圍可能會因每個特徵而不同,因此學習率會導致每個維度的校正(按比例而言)彼此不同。我們可能會過度補償一個重量維度的校正,而在另一個重量維度上補償不足。

這是不理想的,因為我們可能會發現自己處於振盪(無法集中在成本(權重)空間中更好的最大值)狀態或緩慢移動(行駛太慢而無法達到更好的最大值)狀態。

當然可以有一個按權重的學習率,但是要引入一個已經很複雜的網絡,我們還必須優化才能找到更多的超參數。通常學習率是標量。

因此,我們嘗試在將圖像用作 NN(或任何基於梯度的)算法的輸入之前對其進行歸一化。

引用自:https://stats.stackexchange.com/questions/185853

comments powered by Disqus