『電腦視覺』Normalization層(待續)

來源:互聯網
上載者:User

標籤:訓練   分享圖片   googl   接收   計算   轉換   能力   block   動態   

原文來自知乎

一、兩個概念獨立同分布 (independent and identically distributed)

獨立同分布的資料可以簡化常規機器學習模型的訓練、提升機器學習模型的預測能力

白化 (whitening)

去除特徵之間的相關性 —> 獨立;

使得所有特徵具有相同的均值和方差 —> 同分布。

二、問題1、抽象程度高的層難以訓練

深度神經網路涉及到很多層的疊加,而每一層的參數更新會導致上層的輸入資料分布發生變化,通過層層疊加,高層(抽象程度高)的輸入分布變化會非常劇烈,這就使得高層需要不斷去重新適應底層的資料更新

Google 將這一現象總結為 Internal Covariate Shif:

統計機器學習中的一個經典假設是“源空間(source domain)和目標空間(target domain)的資料分布(distribution)是一致的”。如果不一致,那麼就出現了新的機器學習問題,如 transfer learning / domain adaptation 等。

而 covariate shift 就是分布不一致假設之下的一個分支問題,它是指源空間和目標空間的條件機率是一致的,但是其邊緣機率不同,即:對所有,

但是

大家細想便會發現,的確,對於神經網路的各層輸出,由於它們經過了層內操作作用,各層的輸入訊號的分布顯然不同,而且差異會隨著網路深度增大而增大,可是它們所能“指示”的樣本標記(label)仍然是不變的,這便符合了covariate shift的定義。由於是對層間訊號的分析,也即是“internal”的來由。

問題描述簡而言之,每個神經元的輸入資料不再是“獨立同分布”。

  其一,上層參數需要不斷適應新的輸入資料分布,降低學習速度。

  其二,下層輸入的變化可能趨向於變大或者變小,導致上層落入飽和區,使得學習過早停止。

  其三,每層的更新都會影響到其它層,因此每層的參數更新策略需要儘可能的謹慎。

2、問題挑戰

我們以神經網路中的一個普通神經元為例。神經元接收一組輸入向量

通過某種運算後,輸出一個標量值:

由於 ICS 問題的存在, 對於某一特定層,不同批次的輸入 的分布可能相差很大。

要解決獨立同分布的問題,“理論正確”的方法就是對每一層的資料都進行白化操作。然而標準的白化操作代價高昂,特別是我們還希望白化操作是可微的,保證白化操作可以通過反向傳播來更新梯度

三、解決思路1、通用架構

在將 送給神經元之前,先對其做平移和伸縮變換, 將 的分布正常化成在固定區間範圍的標準分布。

通用變換架構就如下所示:

(1) 是平移參數(shift parameter), 是縮放參數(scale parameter)。通過這兩個參數進行 shift 和 scale 變換:

得到的資料符合均值為 0、方差為 1 的標準分布。

(2) 是再平移參數(re-shift parameter), 是再縮放參數(re-scale parameter)。將 上一步得到的 進一步變換為:

最終得到的資料符合均值為 、方差為 的分布。

2、第二次變換的目的目的一

第一次變換得到均值為 0、方差為 1 的標準分布,表達能力有限,下層神經元可能很努力地在學習,但不論其如何變化,其輸出的結果在交給上層神經元進行處理之前,將被粗暴地重新調整到這一固定範圍。為了更好的應用底層神經網路的學習結果,我們將正常化後的資料進行再平移和再縮放,使得每個神經元對應的輸入範圍是針對該神經元量身定製的一個確定範圍(均值為 、方差為 )。rescale 和 reshift 的參數都是可學習的,這就使得 Normalization 層可以學習如何去適應底層的學習結果。

目的二

除了充分利用底層學習的能力,另一方面的重要意義在於保證獲得非線性表達能力。

Sigmoid 等啟用函數在神經網路中有著重要作用,通過區分飽和區和非飽和區,使得神經網路的資料變換具有了非線性計算能力。而第一步的正常化會將幾乎所有資料對應到啟用函數的非飽和區(線性區),僅利用到了線性變化能力,從而降低了神經網路的表達能力。而進行再變換,則可以將資料從線性區變換到非線性區,恢複模型的表達能力。

優勢

不添加正則化, 的均值取決於下層神經網路的複雜關聯;添加本層後,取值 僅由 來確定,去除了與下層計算的密切耦合。新參數很容易通過梯度下降來學習,簡化了神經網路的訓練。

問題

標準白化操作的目的是“獨立同分布”。獨立就不說了,暫不考慮。變換為均值為 、方差為 的分布,也並不是嚴格的同分布,只是映射到了一個確定的區間範圍而已(所以,這個問題仍然有研究空間)。

四、主流 Normalization 方法梳理Batch Normalization

於2015年由 Google 提出。具體過程見『教程』Batch Normalization 層介紹。

BN 獨立地正常化每一個層不同批次的 ,但正常化的參數是一個 mini-batch 的一階統計量和二階統計量。這就要求 每一個 mini-batch 的統計量是整體統計量的近似估計,或者說每一個 mini-batch 彼此之間,以及和整體資料,都應該是近似同分布的。分布差距較小的 mini-batch 可以看做是為正常化操作和模型訓練引入了雜訊,可以增加模型的魯棒性;但如果每個 mini-batch的原始分布差別很大,那麼不同 mini-batch 的資料將會進行不一樣的資料變換,這就增加了模型訓練的難度。

BN 比較適用的情境是:每個 mini-batch 比較大,資料分布比較接近。在進行訓練之前,要做好充分的 shuffle,否則效果會差很多。

另外,由於 BN 需要在運行過程中統計每個 mini-batch 的一階統計量和二階統計量,因此不適用於 動態網路結構 和 RNN 網路。不過,也有研究者專門提出了適用於 RNN 的 BN 使用方法,這裡先不展開了。

Batch Normalization

與 BN 不同,LN 是一種橫向的正常化。它綜合考慮一層所有批次的輸入,計算該層的平均輸入值和輸入方差,然後用同一個正常化操作來轉換各個維度輸入。

 

『電腦視覺』Normalization層(待續)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.