谷歌大腦:只要網絡足夠寬,激活函數皆可拋

2021-01-08 機器之心Pro

選自arXiv

作者:Jaehoon Lee 等

機器之心編輯部

深度神經網絡以其強大的非線性能力為傲,藉助它可以擬合圖像和語音等複雜數據。但最近谷歌大腦的研究者表明只要網絡足夠寬,線性化的網絡可以產生和原版網絡相近的預測結果和準確率,即使沒有激活函數也一樣。這有點反直覺,你現在告訴我 Wide ResNet 那樣的強大模型,在 SGD 中用不用激活函數都一樣?

基於深度神經網絡的機器學習模型在很多任務上達到了前所未有的性能。這些模型一般被視為複雜的系統,很難進行理論分析。此外,由於主導最優化過程的通常是高維非凸損失曲面,因此要描述這些模型在訓練中的梯度動態變化非常具有挑戰性。

就像在物理學中常見的那樣,探索此類系統的理想極限有助於解決這些困難問題。對於神經網絡來說,其中一個理想極限就是無限寬度(infinite width),即全連接層中的隱藏單元數,或者卷積層中的通道數無窮大。在這種限制之下,網絡初始化時的輸出來自於高斯過程(GP);此外,在使用平方損失進行精確貝葉斯訓練後,網絡輸出仍然由 GP 控制。除了理論上比較簡單之外,無限寬度的極限也具有實際意義,因為研究者發現更寬的網絡可以更好地泛化。

谷歌大腦的這項研究探索了寬神經網絡在梯度下降時的學習動態,他們發現這一動態過程的權重空間描述可以變得非常簡單:隨著寬度變大,神經網絡在初始化時可以被其參數的一階泰勒展開式(Taylor expansion)有效地代替。這樣我們就可以得到一種線性模型,它的梯度下降過程變得易於分析。雖然線性化只在無限寬度限制下是精確的,但即使在有限寬度的情況下,研究者仍然發現原始網絡的預測與線性化版本的預測非常一致。這種一致性在不同架構、優化方法和損失函數之間持續存在。

對於平方損失,精確的學習動態過程允許存在一個閉式解,它允許我們用 GP 來表徵預測分布的演變。這個結果可以看成是「sample-then-optimize」後驗採樣向深度神經網絡訓練的延伸。實驗模擬證實,對於具有不同隨機初始化的有限寬度模型集合,實驗結果可以準確地建模了其預測的變化。

論文的主要貢獻:

作者表明,這項研究工作最重要的貢獻是展示了參數空間中的動態更新過程等價於模型的訓練動態過程(dynamics),且該模型是網絡所有參數(權重項與偏置項)的仿射變換。無論選擇哪種損失函數,該結果都成立。尤其是在使用平方損失時,動態過程允許使用閉式解作為訓練時間的函數。所以像 Wide ResNet 那樣的強大非線性模型,只要足夠寬,它可以直接通過線性的仿射變換直接模擬,激活函數什麼的都沒啥必要了~

這些理論可能看起來太簡單了,不適用於實踐中的神經網絡。儘管如此,作者仍然通過實驗研究了該理論在有限寬度中的適用性,並發現有限寬度線性網絡能表徵各種條件下的學習動態過程和後驗函數分布,包括表徵實踐中常用的 Wide ResNet。

論文:Wide Neural Networks of Any Depth Evolve as Linear Models Under Gradient Descent

論文連結:https://arxiv.org/pdf/1902.06720.pdf

摘要:深度學習研究的長期目標是準確描述訓練和泛化過程。但是,神經網絡極其複雜的損失函數表面使動態過程的理論分析撲朔迷離。谷歌大腦的這項研究展示了,寬神經網絡的學習動態過程難度得到了極大簡化;而對於寬度有限的神經網絡,它們受到線性模型的支配,該線性模型通過初始參數附近的一階泰勒展開式進行定義。此外,具備平方損失的寬神經網絡基於梯度的訓練反映了寬貝葉斯神經網絡和高斯過程之間的對應,這種寬神經網絡生成的測試集預測來自具備特定組合核(compositional kernel)的高斯過程。儘管這些理論結果僅適用於無限寬度的神經網絡,但研究者找到了一些實驗證據,證明即使是寬度有限的現實網絡,其原始網絡的預測結果和線性版本的預測結果也符合該理論。這一理論在不同架構、優化方法和損失函數上具備穩健性。

理論結果

線性化網絡

在實驗部分,本論文展示了線性化網絡(linearized network)能獲得和原始深度非線性網絡相同的輸出結果和準確率等。這一部分簡單介紹了什麼是線性化的網絡,更多理論分析可以查看原論文的第二章節。對於線性化網絡的訓練動態過程,首先我們需要將神經網絡的輸出替換為一階泰勒展開式:

其中 ω_t ≡ θ_t θ_0 表示模型參數從初始值到終值的變化。表達式 (6) 左邊的 f_t 為兩項之和:第一項為網絡的初始化輸出,根據泰勒公式,它在訓練過程中是不改變的;第二項則會捕捉初始值在訓練過程中的變化。如果我們使用線性函數,那麼梯度流的動態過程可以表示為:

因為 f_0 對θ的梯度 f_0 在整個訓練中都為常數,這些動態過程會顯得比較簡單。在使用 MSE 損失函數時,常微分方程有閉式解:

因此,儘管沒有訓練該網絡,我們同樣能獲得線性化神經網絡沿時間的演化過程。我們只需要計算正切核函數 Θ_0 hat 和初始狀態的輸出 f_0,並根據方程 11、12 和 9 計算模型輸出和權重的動態變化過程。重要的是,這樣計算出來的值竟然和對應非線性深度網絡迭代學習出來的值非常相似。

實驗

本研究進行了實驗,以證明寬神經網絡的訓練動態能夠被線性模型很好地捕捉。實驗包括使用全批量和小批量梯度下降的全連接、卷積和 wide ResNet 架構(梯度下降的學習率非常小),以使連續時間逼近(continuous time approximation)能夠發揮作用。實驗考慮在 CIFAR10 數據集上進行二分類(馬和飛機)、在 MNIST 和 CIFAR-10 數據集上進行十個類別的分類。在使用 MSE 損失時,研究者將二分類任務作為回歸任務來看待,一個類別的回歸值是+1,另一個類別的回歸值是-1。

原始網絡與線性網絡之間的訓練動態過程對比

圖 5、6、7 對比了線性網絡和實際網絡的訓練動態過程。所有示例中二者都達到了很好的一致。

圖 4 展示了線性模型可以很好地描述在 CIFAR-10 數據集上使用交叉熵損失執行分類任務時的學習動態。圖 6 使用交叉熵損失測試 MNIST 分類任務,且使用動量法優化器進行訓練。圖 5 和圖 7 對比了對線性網絡和原始網絡直接進行訓練時二者的訓練動態過程。

圖 4:在模型上執行全批量梯度下降與線性版本上的分析動態過程(analytic dynamics)類似,不管是網絡輸出,還是單個權重。

圖 5:使用具備帶有動量的最優化器進行全批量梯度下降時,卷積網絡和其線性版本的表現類似。

圖 6:神經網絡及其線性版本在 MNIST 數據集上通過具備動量的 SGD 和交叉熵損失進行訓練時,表現類似。

圖 7 對比了使用 MSE 損失和具備動量的 SGD 訓練的 Wide ResNet 的線性動態過程和真實動態過程。研究者稍微修改了圖 7 中的殘差模塊結構,使每一層的通道數保持固定(該示例中通道數為 1024),其他與原始實現一致。

圖 7:Wide ResNet 及其線性化版本表現類似,二者都是通過帶有動量的 SGD 和 MSE 損失在 CIFAR-10 數據集上訓練的。

圖 8 為一系列模型繪製了平臺均方根誤差(plateau RMSE),它是寬度和數據集大小的函數。總體來看,誤差隨寬度的增加而降低。全連接網絡的誤差降幅約為 1/N,卷積和 WRN 架構的誤差降幅更加模糊。

圖 8:誤差取決於深度和數據集大小。

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

相關焦點

  • 谷歌大腦發現神經網絡「牛頓法」:網絡足夠寬就能簡化成線性模型
    曉查 發自 凹非寺 量子位 報導 | 公眾號 QbitAI來自谷歌大腦的研究者發現,對於寬神經網絡,深度學習動態可以大大簡化,並且在無限寬度限制條件下,它們由網絡初始參數的一階泰勒展開的線性模型所決定。所謂的無限寬度(infinite width),指的是完全連接層中的隱藏單元數,或卷積層中的通道數量有無窮多。
  • 谷歌大腦提出概念激活向量,助力神經網絡可解釋性研究
    選自 KDnuggets作者:Jesus Rodriguez機器之心編譯參與:李詩萌、路最近,谷歌大腦團隊發表了一篇論文,文中提出了一種叫做概念激活向量(Concept Activation vectors,CAV)的新方法,這種方法為深度學習模型的可解釋性提供了一個全新的視角。
  • 神經網絡為何非激活函數不可?
    本文作者 Vandit Jain 對激活函數的相關知識進行了一個較為全面的總結,重點聚焦於以下幾個方面:一、激活函數是什麼?簡單地說,激活函數就是加入到人工神經網絡中的一個函數,目的在於幫助神經網絡從數據中學習複雜模式。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • 人工神經網絡的驅動者:激活函數是什麼?
    從技術上來講,某個節點的激活函數將其在神經網絡中前一個節點的數據輸入,並輸出一個確定值,這個值繼而指導後續節點如何發動來響應特定輸入信號。本文剖析由激活函數組成的神經網絡,以及神經網絡的生物類似物,並簡要介紹幾種常用的激活函數。神經網絡的結構作為一名數據科學愛好者,你一定見過上面的這張圖片或者與之相似的圖片。這張圖片是對雙層神經網絡工作流程的經典描述。
  • Pytorch_第九篇_神經網絡中常用的激活函數
    神經網絡中常用的激活函數Introduce理論上神經網絡能夠擬合任意線性函數,其中主要的一個因素是使用了非線性激活函數(因為如果每一層都是線性變換,那有啥用啊,始終能夠擬合的都是線性函數啊)。本文主要介紹神經網絡中各種常用的激活函數。以下均為個人學習筆記,若有錯誤望指出。
  • 從ReLU到GELU,一文概覽神經網絡的激活函數
    根據每一層前面的激活、權重和偏置,我們要為下一層的每個激活計算一個值。但在將該值發送給下一層之前,我們要使用一個激活函數對這個輸出進行縮放。本文將介紹不同的激活函數。在閱讀本文之前,你可以閱讀我前一篇介紹神經網絡中前向傳播和反向傳播的文章,其中已經簡單地提及過激活函數,但還未介紹其實際所做的事情。
  • 通過函數圖像,了解26種神經網絡激活函數都長啥樣.
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。因此,神經網絡傾向於部署若干個特定的激活函數(identity、sigmoid、ReLU 及其變體)。
  • 如何選擇神經網絡激活函數:有效的改善模型學習模式的能力
    但是,由於輸出本質上是線性的,因此需要非線性激活函數才能將這些線性輸入轉換為非線性輸出。 這些激活函數是傳遞函數,可應用於線性模型的輸出以生成轉換後的非線性輸出,以備進一步處理。 應用AF後的非線性輸出如下:那麼激活函數有什麼需求?對這些激活函數的需求包括將線性輸入轉換為非線性輸出,這有助於更深層網絡學習高階多項式。
  • ReLU到Sinc的26種神經網絡激活函數可視化大盤點
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。
  • 谷歌大腦重磅研究:快速可微分排序算法,速度快出一個數量級
    那麼問題來了,排序算法在函數角度上是分段線性的,也就是說,在幾個分段的「節點」處是不可微的。這樣,就給反向傳播造成了困難。現在,谷歌大腦針對這一問題,提出了一種快速可微分排序算法,並且,時間複雜度達到了O(nlogn),空間複雜度達為O(n)。
  • 谷歌推出函數計算器 可繪製數學函數圖
    網易科技訊 12月6日消息,國外媒體報導,谷歌工程師Adi Avidor今日在博客中寫道,谷歌已在其搜索結果頁面中增加了函數計算器功能,用戶只要在谷歌搜索框中輸入需要計算的數學函數,搜索結果頁面頂部就會反饋相應的圖形表達式。
  • 深入理解深度學習中的激活函數
    但我們也知道感知機有個局限性,即無法單層表示非線性變化,而神經網絡往往通過激活函數用來表示非線性變化。即激活函數的作用就是引入非線性。神經元輸出神經元的輸出信號是由激活函數o = f(∑)得處理後,得到得輸出,如圖所示性質激活函數是一個幾乎可微得函數,滿足非線性,連續性常見激活函數sigmoid;tanh;ReLU;LReLU, PReLU, RReLU;ELU(Exponential Linear Units);softplus;softsign,softmax
  • 深度學習基礎篇:如何選擇正確的激活函數?
    大腦在得到大量信息時,會努力理解和分類有用信息和不那麼有用的信息。而在深度學習中,我們也需要一種類似的機制來分類傳入的信息。不是所有信息都是有用的,一些只是噪音。激活函數可以幫助神經網絡做這種隔離。它激活有用的信息,並抑制無關的數據點。激活函數如此重要,那麼都有哪些比較熱門呢?它們是如何工作的?又適合解決什麼問題?本文將為你一一解答。以下是本文目錄。
  • 用概念激活向量 (CAVs) 理解深度網絡
    最近,來自谷歌大腦研究小組的研究人員發表了一篇論文,提出了一種新的方法,稱為概念激活載體(CAVs),這為深度學習模型的可解釋性提供了一個新的視角。詳見論文:https://arxiv.org/pdf/1711.11279.pdf可解釋性vs準確性為了理解CAV技術,了解深度學習模型中可解釋性的本質是非常重要的。
  • 谷歌大腦負責人Jeff Dean:深度學習技術及趨勢報告 | 網際網路數據...
    實際案例:運用神經網絡解決真實世界問題TensorFlow 全面解析應用舉例「谷歌大腦」項目始於2011年,專注於發展最先進的神經網絡。>深度學習在產業界和學術界的應用語音識別目標識別和檢測機器翻譯語言建模語法分析神經網絡是一些從數據提煉的複雜函數
  • 告別調參煉丹,谷歌「權重無關」神經網絡開源了!
    新智元報導 來源:Google AI 作者:Adam Gaier&David Ha 編輯:小芹 【新智元導讀】谷歌大腦備受關注的
  • 性能超越谷歌!依圖團隊提出新一代移動端網絡架構MobileNeXt
    此外,新提出的沙漏模塊可用於改良神經網絡自動化搜索的搜索空間,在使用相同搜索算法的情況下,加入沙漏模塊的搜索空間可以在CIFAR10的數據集上取得更高效的模型架構,大大優於谷歌的MobileNet、何愷明團隊提出的ResNet等使用倒殘差結構的模型。
  • 機器學習中的激活函數綜合指南
    自2012年以來,神經網絡研究的進展主導了大多數人工智慧(AI)文獻。激活函數對神經網絡的效率和穩定性起著至關重要的作用。在這篇文章中,將儘可能簡要地概述激活函數的最新發展,並關注為什麼需要它們以及何時應用它們。為什麼需要激活函數?
  • AI瘋狂進階——激活函數篇
    本文作者專注於AI進階算法,正在推出AI瘋狂進階之基礎理論進階篇,如有興趣可持續關注我。核心導讀:1. 神經網絡激活函數的作用是什麼?2. 如何評價激活函數的好壞?3. ReLU存在哪些問題?4.存在替換萬年ReLU的激活函數嗎?激活函數對於人工神經網絡模型學習、理解非常複雜的數據來說具有十分重要的作用。激活函數給神經元引入了非線性因素,使得神經網絡可以逼近任何非線性函數,這樣神經網絡就可以應用到眾多的非線性模型中。目前最常見的激活函數當屬ReLU以及在其基礎上改進的如PReLU,RReLU,LeakyReLU等。