深度學習中的Internal Convariate Shift (ICS)

  深度學習網絡模型的訓練爲何會很困難?其中一個重要的緣由是,深度神經網絡設計到不少層的疊加,而每一層的參數更新會致使上層的輸入數據分佈發生變化。經過層層疊加,高層的輸入分佈變化會很是劇烈,這就使得高層須要不斷去從新適應底層的參數更新。爲了訓練好模型,咱們須要很是謹慎地設定學習率、初始化權重以及儘量細緻的參數更新策略。網絡

  Google將這一現象總結爲Internal Convariate Shift,簡稱ICS。什麼是ICS呢?dom

  你們都知道在統計機器學習中的一個經典假設是「源空間(source domain)和目標空間(target domain)是一致的」。若是不一致,那麼就出現了新的機器學習問題,如transfer learning/domain adaptation等。而Conariate Shift就是分佈不一致的假設之下的一個分支問題,它是指源空間和目標空間的條件機率是一致的,可是其邊緣機率不一樣,即:對全部的x∈X,有:Ps(Y|X=x)=Pt(Y|X=x)    可是Ps(X)≠Pt(X) 。        你們仔細想一想便會發現,的確,對於神經網絡的各層輸出,因爲它們通過了層內操做做用,其分佈顯然與各層對應的輸入信號分佈不一樣,並且差別會隨着網絡深度增大而增大,但是它們所能「指示」的樣本標記(label)仍然是不變的,這便符合了Convariate Shift的定義。因爲是對層間信號的分析,也便是「internal」的來由。機器學習

  ICS會致使什麼問題?學習

  簡而言之,每一個神經元的輸出數據再也不是「獨立同分布」。設計

  其一,上層的參數須要不斷的適應新的輸入數據分佈,下降學習速度。  get

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

  其三,每層的更新都會影響到其餘層,所以每層的參數更新策略須要儘量的謹慎。io

相關文章
相關標籤/搜索