批歸一化到底做了什麼?DeepMind研究者進行了拆解

2020-11-25 騰訊網

選自arXiv

作者:Soham De、Samuel L. Smith

機器之心編譯

參與:魔王

批歸一化有很多作用,其最重要的一項功能是大幅提升殘差網絡的最大可訓練深度。DeepMind 這項研究探尋了其中的原因,並進行了大量驗證。

論文連結:https://arxiv.org/abs/2002.10444

批歸一化用處很多。它可以改善損失分布(loss landscape),同時還是效果驚人的正則化項。但是,它最重要的一項功能出現在殘差網絡中——大幅提升網絡的最大可訓練深度

DeepMind 近期一項研究找到了這項功能的原因:在初始化階段,批歸一化使用與網絡深度的平方根成比例的歸一化因子來縮小與跳躍連接相關的殘差分支的大小。這可以確保在訓練初期,深度歸一化殘差網絡計算的函數由具備表現良好的梯度的淺路徑(shallow path)主導。

該研究基於此想法開發了一種簡單的初始化機制,可以在不使用歸一化的情況下訓練非常深的殘差網絡。研究者還發現,儘管批歸一化可以維持模型以較大的學習率進行穩定訓練,但這只在批大小較大的並行化訓練中才有用。這一結果有助於釐清批歸一化在不同架構中的不同功能。

批歸一化到底幹了什麼

跳躍連接和批歸一化結合起來可以大幅提升神經網絡的最大可訓練深度。

DeepMind 研究者將殘差網絡看作多個路徑的集成,這些路徑共享權重,但是深度各有不同(與 Veit 等人 2016 年的研究類似),進而發現批歸一化如何確保非常深的殘差網絡(數萬層)在訓練初期被僅包含幾十個層的淺路徑主導。原因在於,批歸一化使用與網絡深度的平方根成比例的因子縮小與跳躍連接相關的殘差分支的大小。這就為深度歸一化殘差網絡在訓練初期可得到高效優化提供了直觀解釋,它們只是把具備表現良好的梯度的淺層網絡集成起來罷了。

上述觀察表明,要想在不使用歸一化或不進行認真初始化的前提下訓練深度殘差網絡,只需要縮小殘差分支即可。

為了確認這一點,研究者改動了一行代碼,實現不使用歸一化的深度殘差網絡訓練(SkipInit)。結合額外的正則化後,SkipInit 網絡的性能可與經過批歸一化的對應網絡不相上下(該網絡使用常規的批大小設置)。

為什麼深度歸一化殘差網絡是可訓練的?

殘差分支經過歸一化後,假設 f_i 的輸出方差為 1。每個殘差塊的方差增加 1,則第 i 個殘差塊前的激活的預期方差為 i。因此,對於任意遍歷第 i 個殘差分支的路徑,其方差縮小到 1/i,這說明隱藏層激活縮小到 1/√ i。

如圖 3 所示,該縮小因子很強大,可確保具備 10000 個殘差塊的網絡 97% 的方差來自遍歷 15 個或者更少殘差分支的淺路徑。典型殘差塊的深度與殘差塊總數 d 成比例,這表明批歸一化將殘差分支縮小到 1/√ d。

圖 3:此圖模擬了初始化階段不同深度的路徑對 logits 方差的貢獻。

為了驗證這一觀點,研究者評估兩個歸一化殘差網絡的不同通道的方差,以及批統計量(batch statistics),如下圖 4 所示。

圖 4(a) 中,深度線性 ResNet 的跳躍路徑方差幾乎等於當前深度 i,而每個殘差分支末端的方差約為 1。這是因為批歸一化移動方差約等於深度,從而證實歸一化將殘差分支縮小到原本的 1/√ i。

圖 4(b) 中,研究者在 CIFAR-10 數據集上評估使用 ReLU 激活函數的卷積 ResNet。跳躍路徑的方差仍與深度成正比,但係數略低於 1。這些關聯也導致批歸一化移動平均數的平方隨著深度的增加而增大。

圖4。

這就為「深度歸一化殘差網絡是可訓練的」提供了簡潔的解釋。這一觀點可以擴展至其他歸一化方法和模型架構。

SkipInit:歸一化的替代方案

研究者發現,歸一化之所以能夠確保深度殘差網絡的訓練,是因為它在初始化階段按與網絡深度平方根成正比的歸一化因子縮小殘差分支。

為了驗證該觀點,研究者提出了一個簡單的替代方法——SkipInit:在每個殘差分支末端放置一個標量乘數,並將每個乘數初始化為 α。

圖 1:A) 使用批歸一化的殘差塊。B) SkipInit 用一個可學習標量 α 替代了批歸一化。

移除歸一化之後,只需改動一行代碼即可實現 SkipInit。研究者證明,按 (1/ √ d) 或更小的值初始化 α 就可以訓練深度殘差網絡(d 表示殘差塊數量)。

研究者引入了 Fixup,它也可以確保殘差塊在初始化時表示 identity。但是,Fixup 包含多個額外組件。在實踐中,研究者發現 Fixup 的組件 1 或組件 2 就足以在不使用歸一化的前提下訓練深度 ResNet-V2 了。

實證研究

下表 1 展示了 n-2 Wide-ResNet 在 CIFAR-10 數據集上訓練 200 epoch 後的平均性能,模型深度 n 在 16 到 1000 層之間。

表 1:批歸一化使得我們可以訓練深度殘差網絡。然而在殘差分支末端添加標量乘數 α 後,不使用歸一化也能實現同樣的效果。

下表 2 驗證了,當 α = 1 時使用 SkipInit 無法訓練深度殘差網絡,因此必須縮小殘差分支。研究者還確認了,對於未經歸一化的殘差網絡,只確保激活函數不在前向傳播上爆炸還不夠(只需在每次殘差分支和跳過路徑合併時將激活乘以 (1/ √ 2) 即可實現)。

表 2:如果 α = 1,我們無法訓練深度殘差網絡。

批歸一化的主要功能是改善損失分布,增加最大穩定學習率。下圖 5 提供了 16-4 Wide-ResNet 在 CIFAR-10 數據集上訓練 200 epoch 後的平均性能,批大小的範圍很大。

圖 5:使用批歸一化要比不使用獲得的測試準確率更高,研究者還能夠以非常大的批大小執行高效訓練。

為了更好地理解批歸一化網絡能夠以更大批大小進行高效訓練的原因,研究者在下圖 6 中展示了最優學習率,它可以最大化測試準確率、最小化訓練損失。

圖 6:使用和不使用批歸一化情況下的最優學習率。

研究者在 ImageNet 數據集上對 SkipInit、Fixup 初始化和批歸一化進行了實驗對比,證明 SkipInit 可擴展至大型高難度數據分布。

下表 3 展示了最優驗證準確率。研究者發現卷積層包含偏置可使 SkipInit 的驗證準確率出現小幅提升,因此研究者在所有 SkipInit 運行中添加了偏置。SkipInit 的驗證性能與批歸一化相當,與使用標準批大小 256 的 Fixup 相當。但是,當批大小非常大時,SkipInit 和 Fixup 的性能不如批歸一化。

表 3:研究者訓練了 90 個 epoch,並執行網格搜索,以找出最優學習率,從而最大化模型在 ImageNet 數據集上的 top-1 驗證準確率。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

相關焦點

  • DeepMind開源AlphaFold,蛋白質預測模型登上《Nature》
    代碼:https://github.com/deepmind/deepmind-research/tree/master/alphafold_casp13模型:https://www.biorxiv.org/content/10.1101/846279v1.full.pdf根據DeepMind的介紹,在預測蛋白質結構的物理性質方面使用了兩種不同的方法來構建預測模型
  • 透徹分析批歸一化Batch Normalization強大作用
    批量歸一化(BN)是神經網絡的標準化方法/層 通常BN神經網絡輸入被歸一化[0,1]或[-1,1]範圍,或者意味著均值為0和方差等於1。 BN對網絡的中間層執行白化本文只關注BN為什麼工作的這麼好,如果要詳細理解BN詳細算法,請閱讀另一篇文章《批歸一化Batch Normalization的原理及算法》,本文從以下六個方面來闡述批歸一化為什麼有如此好的效力:(1)激活函數
  • 深度學習之Google Deepmind的Alphago人工智慧算法技術演變歷程
    最近大家比較關心的圍棋人機大戰(Alphago vs 李世石)中,deep mind基於Nature2016文章的Alphago在5局制的比賽中已經取得了4-1的獲勝。這兩篇文章都是蒙特卡洛搜索樹+DCNN,效果Google的Alphago優於facebook的方法,剛好藉此機會將之前看到的deep mind該領域的文章捋了一下。
  • DeepMind重大突破:DNN具有人類行為,認知心理學破解黑箱
    編者按:本文由微信公眾號編譯,來源:deepmind.com 等,作者:DeepMind、Brian Mingus,編譯:熊笑;36氪經授權發布。雖然大多數現代深度學習研究者對模型闡釋的研究沒有從認知心理學中借鑑,但如果說「從沒有人做過」,則也是不對的。
  • 從AlphaGo到蛋白質摺疊,Deepmind在不斷捅破AI領域的天花板!
    比起這個成果,相信大家跟我一樣更感興趣的是,這個DeepMind究竟是個什麼神奇公司,可以破解50年來無人能破的世界級計算難題?為創建超人類AI而生,讓馬斯克極度關注DeepMind跟傳奇的谷歌X實驗室不同,它並非谷歌親身,而是最初於2010年在英國成立的一家AGI(通用人工智慧)公司。
  • DeepMind新GNN模型,將谷歌地圖預估到達準確率提升50%!
    計劃著和女友約會,按照地圖預計的實時路況做準備,可是卻往往不太準時……眼看著上班就要遲到,明明顯示會在10分鐘後到達的公交車,並沒有如期而至……如果您是拼車服務的司機,地圖還會獲取接送時間信息,並依據此來估計價格。全世界都有類似的煩惱。
  • 超越何愷明等組歸一化 Group Normalization,港中文團隊提出自適配...
    *BN(批歸一化)是由 Google 在 2015 年提出的一種歸一化方法。至今已經被引用了 5000 餘次,在學術界與工業界廣泛使用。幾乎所有主流神經網絡結構都使用了BN,例如微軟亞洲研究院提出的殘差神經網絡(ResNet,CVPR 2016 best paper)和由康奈爾大學提出的 DenseNet(CVPR 2017 best paper)。*SN 是港中文團隊最新提出的歸一化方法。
  • BN,LN,IN,GN都是什麼?不同歸一化方法的比較
    批處理歸一化(BN)已經成為許多先進深度學習模型的重要組成部分,特別是在計算機視覺領域。它通過批處理中計算的平均值和方差來規範化層輸入,因此得名。要使BN工作,批大小必須足夠大,通常至少為32。組歸一化(GN)是一種最新的規範化方法,可以避免利用批處理維,因此與批處理大小無關。不同的歸一化方法為了促進GN的表述,我們將首先看一下以前的一些標準化方法。x ← (x - ) / √( + )對於每個係數x輸入特性。和的均值和方差計算的集合S係數,和是一個小的常數數值穩定,避免除零。唯一的區別是集S是如何選擇的。
  • 谷歌DeepMind 的可微分神經計算機 DNC 怎麼樣?看 Facebook AI...
    近日,谷歌的 AI 部門 DeepMind 開發了一種叫做可微分神經計算機(DNC)的神經網絡模型,相關論文發表於 10 月 12 日在線出版的《自然》雜誌上,題為《 利用神經網絡與外部動態存儲器進行混合計算》。這種新模型將神經網絡與可讀寫的外部存儲器結合,既能像神經網絡那樣通過試錯和樣本訓練進行深度學習,又能像傳統計算機一樣處理數據。
  • 批歸一化Batch Normalization的原理及算法
    所以,BN的優點自然也就是允許網絡使用較大的學習速率進行訓練,加快網絡的訓練速度(減少epoch次數),提升效果。省去參數選擇的問題。歸一化也是網絡的一層。在網絡的每一層輸入的時候,又插入了一個歸一化層,也就是先做一個歸一化處理,然後再進入網絡的下一層。
  • DeepMind宣布解決蛋白質摺疊問題,獲92.4準確性得分
    如此重大的突破,究竟帶來了什麼呢?讓我們來快速且全面地了解一下。之後,建立了一個基於注意力機制的神經網絡系統,端到端進行了訓練。建立的這個系統會試圖解釋這個圖的結構,同時對它正在構建的隱式圖進行推理。參考連結:https://deepmind.com
  • 不只是AlphaGo,谷歌DeepMind到底是何方神聖?
    深度學習從非結構化數據中進行學習,以編譯分析報告或執行無人監督的任務。所有這些發展都為不同的公司提供了發揮作用和證明其價值的舞臺。正是這樣,像DeepMind這樣的公司才得以大展身手。沒錯,就是那個開發出戰勝柯潔李世石的AlphaGo的公司,比起下棋,它值得我們了解的還有很多。
  • DeepMind推出蛋白質結構預測算法,大勝人類傳統模型!
    這一系統在周日進行的國際蛋白質結構預測競賽(CASP)上擊敗了其餘的參會選手。 我們都知道,蛋白質是維持我們生命所必需的龐大而複雜的物質。我們身體的幾乎所有功能,例如收縮肌肉、感知光線或將食物轉化成能量等,都需要一種或多種蛋白質來完成。而蛋白質具體能做什麼就要取決於它獨特的3D結構了。
  • 用神經網絡求解薛丁格方程,DeepMind開啟量子化學新道路
    現在,量子化學也在逐漸使用神經網絡進行相關的工作了。近日,DeepMind 的科學家開發了一種新的神經網絡架構,可以用於近似計算薛丁格方程。這為深度學習在量子化學領域的發展奠定了基礎。DeepMind 的研究者引入了一種全新的深度學習架構——費米子神經網絡(費米子神經網絡),這是一種用於多電子系統的強大的波函數擬設器。在多種不同的原子和小分子上,這種費米子神經網絡的準確度能超過其它變分式蒙特卡洛擬設器。
  • DeepMind 推出 AlphaGo 圍棋教學工具,圍棋學習新紀元來啦?
    同時,樊麾也從 AlphaGo 的教學中舉了幾個有意思的例子,並進行了幽默地解說。「下邊的幾個圖是我從萬千變化圖中發現比較有衝擊力的幾個,類似的變化圖有很多很多,大家可以自己找找。」原來二路虎不見得好!對付迷你中國流的新辦法!小林流也不是只有大飛掛!
  • 普林,DeepMind新研究:結合深度學習符號回歸,深度模型中看見宇宙
    這種方法無法針對輸入特徵的數量進行很好地縮放。但深度神經網絡可以高效學習高維空間中的模式。那麼,問題來了,我們可以兼二者之所長嗎?來自普林斯頓大學和 DeepMind 等機構的研究者提出了一種通用方法,通過引入強歸納偏置來提取深度模型的符號表示。
  • AlphaFold抗疫,DeepMind公布六種新冠病毒蛋白質結構預測結果
    DeepMind 開放的新冠病毒蛋白質結構預測結果下載連結:https://storage.googleapis.com/deepmind-com-v3-datasets/alphafold-covid19/structures_4_3_2020.zip為什麼要用深度學習預測新冠病毒蛋白結構?
  • 普林、DeepMind新研究:結合深度學習和符號回歸,從深度模型中看見...
    這種方法無法針對輸入特徵的數量進行很好地縮放。但深度神經網絡可以高效學習高維空間中的模式。那麼,問題來了,我們可以兼二者之所長嗎?來自普林斯頓大學和 DeepMind 等機構的研究者提出了一種通用方法,通過引入強歸納偏置來提取深度模型的符號表示。
  • AI巨頭實力排名新鮮出爐:DeepMind第一,IBM墊底
    在 PR 和吸引公眾目光方面,Deepmind 也是首屈一指的,例如 DQN-Atari 和創造歷史的 AlphaGo 時的 PR。每當 Deepmind 發一篇論文,很快就會出現在 Reddit 機器學習板塊和 Hacker News 的頂部,表明他們在技術社區多麼受到推崇。梯隊2.
  • Deepmind新一代AlphaGo Zero自學3天打敗AlphaGo
    AlphaGo Zero在自我對弈中,在每一個落點s,神經網絡fθ都會進行蒙特卡洛樹(MCTS)搜索,得出每一步落子的概率π,再根據遊戲規則計算出最終的獲勝者z,這一過程可被視為一個強有力的評估策略操作