回覆列表
  • 1 # 使用者3523768274962

    你同事說的神經網路輸入值不需要歸一化,權重會自動調整,這個沒什麼大問題。但很多時候還是進行歸一化或相應的預處理,主要是為了加速訓練。至於歸一化到[0,1]還是[-1,1],一般來說傾向於歸一化為[0,1],有答主已經說過了,現在啟用函式多用relu,歸一化到[-1,1]會讓對應特徵為負的引數上來就躺槍,relu後變為0,得不到梯度,需要對應特徵為正的樣本進行最佳化。 但前面也說了,如何歸一化有時候也要看場景,視覺處理中一般把輸入減去均值,使得輸入在0的左右對稱(當然也可以歸一化到[-1,1],但沒必要,因為單個顏色的取值範圍是固定的[0,255]),因為視覺處理就是一個特殊情況。下面說下我的理解: 在視覺相關的資料中,0代表白色(或認為無色),數字越大顏色越深,給我們的視覺刺激越大。在一幅影象中,多數情況下更深的顏色起到更重要的作用。以最簡單的手寫數字識別為例,假設是淺灰色的背景黑色的字,我們把所有的訓練樣本疊加在一起,你會發現有很多地方仍然是灰色,這說明這些位置對於數字識別是不起作用的。如果直接把資料拿來訓練,當然也是可以的,但如果把所有的畫素減去均值(或者簡單的減去128),這些位置就變為了負的,透過relu後為0,而且所有樣本中這些位置都是負的,這些位置對應的梯度永遠為0,就不需要優化了。 上面的例子中之所以用灰底黑字,是因為如果用白底黑字,白色為0,透過relu後為0,這種情況下減不減去均值意義也就不大了,不過減去均值理論上還是更好一些,可以把一些較淺的噪點變為負值,有可能擴大不用最佳化的區域。當然了,設定個閾值(例如50),把小於閾值的點都變成0也可以達到同樣的效果。白底黑字的手寫數字識別的預處理又是一種特殊情況。 上面說過多數情況下深顏色起到更重要的作用,但有時候也不是這樣,例如黑底白字的手寫數字識別。如果你看到有人進行手寫數字識別時有X=255-X之類的操作,多半是用的黑底白字的資料,這樣處理之後就變為白底黑字了。當然黑底白字的資料直接進網路也是可以訓練的,但訓練要慢得多。這又是一種特殊情況。 所以我感覺多數情況可以歸一化到[0,1],特殊情況還要特殊分析。複雜的視覺處理是無法像黑白色數字識別那樣有針對性的做預處理,但總體來說相對深的顏色起到更重要的作用,所以減去畫素均值是個很常用的做法。

  • 中秋節和大豐收的關聯?
  • 21st的完整形式怎麼讀?