谷歌工程師:聊一聊深度學習的weight initialization

2020-12-12 雷鋒網

雷鋒網按:本文作者夏飛,清華大學計算機軟體學士,卡內基梅隆大學人工智慧碩士。現為谷歌軟體工程師。雷鋒網(公眾號:雷鋒網)首發文章。

TLDR (or the take-away)

Weight Initialization matters!!! 深度學習中的weight initialization對模型收斂速度和模型質量有重要影響!

實驗代碼請參見我的Github。

背景

深度學習模型訓練的過程本質是對weight(即參數 W)進行更新,這需要每個參數有相應的初始值。有人可能會說:「參數初始化有什麼難點?直接將所有weight初始化為0或者初始化為隨機數!」對一些簡單的機器學習模型,或當optimization function是convex function時,這些簡單的方法確實有效。

然而對於深度學習而言,非線性函數被瘋狂疊加,產生如本文題圖所示的non-convex function,如何選擇參數初始值便成為一個值得探討的問題——其本質是初始參數的選擇應使得objective function便於被優化。事實上,在學術界這也是一個被actively研究的領域。

TLDR裡已經涵蓋了本文的核心要點,下面在正文中,我們來深入了解一下前因後果。

初始化為0的可行性?

答案是不可行。 這是一道送分題 哈哈!為什麼將所有W初始化為0是錯誤的呢?是因為如果所有的參數都是0,那麼所有神經元的輸出都將是相同的,那在back propagation的時候同一層內所有神經元的行為也是相同的 --- gradient相同,weight update也相同。這顯然是一個不可接受的結果。

可行的幾種初始化方式

pre-training

pre-training是早期訓練神經網絡的有效初始化方法,一個便於理解的例子是先使用greedy layerwise auto-encoder做unsupervised pre-training,然後再做fine-tuning。具體過程可以參見UFLDL的一個tutorial,因為這不是本文重點,就在這裡簡略的說一下:

隨著數據量的增加以及activation function (參見我的另一篇文章) 的發展,pre-training的概念已經漸漸發生變化。目前,從零開始訓練神經網絡時我們也很少採用auto-encoder進行pre-training,而是直奔主題做模型訓練。不想從零開始訓練神經網絡時,我們往往選擇一個已經訓練好的在任務A上的模型(稱為pre-trained model),將其放在任務B上做模型調整(稱為fine-tuning)。

random initialization

隨機初始化是很多人目前經常使用的方法,然而這是有弊端的,一旦隨機分布選擇不當,就會導致網絡優化陷入困境。下面舉幾個例子。

核心代碼見下方,完整代碼請參見我的Github。

這裡我們創建了一個10層的神經網絡,非線性變換為tanh,每一層的參數都是隨機正態分布,均值為0,標準差為0.01。下圖給出了每一層輸出值分布的直方圖。

隨著層數的增加,我們看到輸出值迅速向0靠攏,在後幾層中,幾乎所有的輸出值 x 都很接近0!回憶優化神經網絡的back propagation算法,根據鏈式法則,gradient等於當前函數的gradient乘以後一層的gradient,這意味著輸出值 x 是計算gradient中的乘法因子,直接導致gradient很小,使得參數難以被更新!

讓我們將初始值調大一些:

均值仍然為0,標準差現在變為1,下圖是每一層輸出值分布的直方圖:

幾乎所有的值集中在-1或1附近,神經元saturated了!注意到tanh在-1和1附近的gradient都接近0,這同樣導致了gradient太小,參數難以被更新。

Xavier initialization

Xavier initialization可以解決上面的問題!其初始化方式也並不複雜。Xavier初始化的基本思想是保持輸入和輸出的方差一致,這樣就避免了所有輸出值都趨向於0。注意,為了問題的簡便,Xavier初始化的推導過程是基於線性函數的,但是它在一些非線性神經元中也很有效。讓我們試一下:

Woohoo!輸出值在很多層之後依然保持著良好的分布,這很有利於我們優化神經網絡!之前談到Xavier initialization是在線性函數上推導得出,這說明它對非線性函數並不具有普適性,所以這個例子僅僅說明它對tanh很有效,那麼對於目前最常用的ReLU神經元呢(關於不同非線性神經元的比較請參考這裡)?繼續做一下實驗:

前面看起來還不錯,後面的趨勢卻是越來越接近0。幸運的是,He initialization可以用來解決ReLU初始化的問題。

He initialization

He initialization的思想是:在ReLU網絡中,假定每一層有一半的神經元被激活,另一半為0,所以,要保持variance不變,只需要在Xavier的基礎上再除以2:

看起來效果非常好,推薦在ReLU網絡中使用!

Batch Normalization Layer

Batch Normalization是一種巧妙而粗暴的方法來削弱bad initialization的影響,其基本思想是:If you want it, just make it!

我們想要的是在非線性activation之前,輸出值應該有比較好的分布(例如高斯分布),以便於back propagation時計算gradient,更新weight。Batch Normalization將輸出值強行做一次Gaussian Normalization和線性變換:

Batch Normalization中所有的操作都是平滑可導,這使得back propagation可以有效運行並學到相應的參數γ,β。需要注意的一點是Batch Normalization在training和testing時行為有所差別。Training時μβ和σβ由當前batch計算得出;在Testing時μβ和σβ應使用Training時保存的均值或類似的經過處理的值,而不是由當前batch計算。

隨機初始化,無Batch Normalization:

隨機初始化,有Batch Normalization:

很容易看到,Batch Normalization的效果非常好,推薦使用!

參考資料

Xavier initialization是由Xavier Glorot et al.在2010年提出,He initialization是由Kaiming He et al.在2015年提出,Batch Normalization是由Sergey Ioffe et al.在2015年提出。

1、Xavier Glorot et al., Understanding the Difficult of Training Deep Feedforward Neural Networks

2、Kaiming He et al., Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classfication

3、Sergey Ioffe et al., Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

4、Standord CS231n

雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 谷歌升級視頻群聊Hangout 首次整合至手機應用
    【搜狐IT消息】北京時間12月15日消息,《移動新發現》今日報導 ,據國外媒體報導,日前,谷歌對Google+中的視頻群聊服務Hangout進行了升級,其中用戶將可以更便捷的方式啟動視頻聊天,手機用戶將可首次使用。
  • AI助手常「尬聊」? 谷歌重磅推出Pair人機協作計劃, 開源全新AI...
    由於現在的AI還不具有理解整句話意思的能力,它們依舊在抓取關鍵詞和用戶「尬聊」。因此,AI有時候會捅出挺大的簍子。:Rao對VentureBeat這麼表示「有些很經典的例子……聊天機器人會說『這太棒了!快點告訴我你親人逝世的更多消息吧。』」在這些案例之下,谷歌下定決心不讓自己的人工智慧語音助手Google Assistant和用戶繼續「尬聊」。
  • 聊一聊翻牆與網賺
    但是,對於翻牆,這的確是一個敏感區域,我個人覺得,只要你不做違法犯罪損害國家利益的事情,你只是通過翻牆,去google查資料,去YouTube學習或者做一個YouTuber,去亞馬遜做正當外貿生意,這些都是可以的。雖然如此,可依然有人擔心,翻牆這個事違法嗎?會被抓嗎?安全嗎?跟網賺有什麼關係?那麼,今天我就一起來聊一聊這個話題。
  • 聊一聊「太重」的前世今生
    作為一名研究工程機械行業的鐵粉,自從和工程機械行業結緣以來,非常喜歡和全國各地各品牌的老總聊工程機械行業的事情。在這個過程中,了解到「太原重型機械學院」(現更名為太原科技大學),對太重進行深入了解後,覺得很有必要對工程機械行業人才的重要搖籃寫一篇文章,藉此向太重及培養出來的行業領袖及專業人才們致敬。
  • 2018年,AI工程師校招薪酬出爐!
    。裡面的僱主從國外的微軟、谷歌到中國的BAT,全都是科技巨頭。年薪最高的崗位是谷歌中國的人工智慧工程師,達到56萬人民幣,一些算法工程師也是30萬起步。3 技術的競爭也是人才的競爭,目前處於大環境中,建議有此轉行AI工程師的同學們抓緊時間踏足AI領域與學習!
  • 硬核體驗:裸考深度學習工程師認證考試,是一種怎樣的感受?
    在工業界,深度學習已經成為近年來最有「錢景」的方向。谷歌微軟百度騰訊等科技大廠都在花重金招兵買馬,深度學習工程師的身價更是以243000美元的基本年薪(來自Glassdoor2018年數據)領銜整個行業。無論學術界還是產業界,都紛紛向深度學習遞出了橄欖枝。But,究竟怎樣才能快速踏進深度學習工程師的門檻?
  • 在水滴閱讀的第91天,聊一聊英語學習
    學習語言,更上一個臺階,需要「自律」。這是我們在工作學習生活中不斷強調也被誇大的太嚴重的一個問題。「自律」被渲染的好難又好苦:大清早天還沒亮就要從被窩爬起來,村上春樹數十年來每天早上堅持跑步、微博上的範志紅老師幾乎不吃甜食油炸食品以及其他零食。想一想,真的太苦了。
  • 來聊一聊大家第一次接觸日語,或者決定學習日語的契機吧
    今天便來聊一聊大家都是怎麼想到要學習日語的吧。我自身本來是理科出身,然而物理數學實在一般,擔心到了大學跟不上課程,也擔心學的太過辛苦,所以便180度大轉彎,學了文科的專業。至於為什麼是日語?其實理由也很啼笑皆非。當時報考的時候,都是點開一堆的大學列表,第一志願第二志願什麼的好長一條。
  • 前OpenAI科學家辭職創立智慧機器人公司,我們和他們的CEO聊了聊
    機器之心在他們的新辦公室裡,和公司CEO Peter Chen 聊了聊從出走 OpenAI 到開始創辦運營一家公司的歷程。看得出 Chen 很忙,採訪的時候也很難無法完全放下手上的活兒,需要時不時地翻看一下筆記本上的代碼和手機上的消息。不過他直言,從伯克利博士生,到 OpenAI 研究員,再到如今公司的 CEO,他並沒有覺得很強烈的角色變換。
  • 面試工程師,該聊些什麼?
    一名好的機械工程師能做出好的產品來,不僅能滿足市場的需求,效率上更可能是普通工程師的2-3倍,而且在效果上有可能是無窮倍! 那麼,在關鍵的工程師面試環節,作為面試官,你應該和應聘者聊些什麼呢?應該從哪些維度去評估眼前的應聘者呢?
  • 聊一聊為什麼要讓孩子學古箏?
    今天我們就來聊一聊!家長們知道學習古箏對孩子有哪些幫助嗎?不知道的話我們一起來了解了解吧!學習古箏對孩子的智力、協調性、個人修養、氣質、身心健康都有很大益處。讓我們一起來看看為什麼吧!據調查研究,從小學習古箏的孩子在智力方面,都明顯高於一般同齡孩子。
  • 聊一聊自學計算機的辛酸史
    問題:如何高效的學習理論?其實,程式語言和計算機基礎都是相通的,只要你學透一門程式語言剩下的就大同小異。當然,計算機基礎畢竟是枯燥無味的,學習畢竟是有方法的。舉個例子:站在程式語言的角度,你用心去總結,你會發現不管什麼程式語言,變來變去都是換了個花樣在談以下內容。
  • 【Bengio vs 谷歌】深度學習兄弟對決,神經網絡泛化本質之爭
    【進入新智元公眾號,在對話框輸入「170219」下載論文】Bengio 實驗室日前發表了一篇論文,這篇論文將作為 ICLR 2017 一場研討會的主題:「深度網絡不通過記憶學習」。為什麼今天要說這篇論文?
  • 英語零基礎如何學習英語,簡單聊一聊
    所以這裡就想和大家聊一下、時間有限我並沒有把全部都說完。如果在聽了之後還有什麼問題的話、可以留言給我我整理第二彈給你們。這裡簡單列一個大綱1首先不要在開始之前就給自己下結論。我年齡大了、我語言天分不好 、我學不好 、我記不住、 我背不下來、 我總忘 、我不敢說、 我沒地方說。
  • 和孩子聊一聊「高考」,讓孩子理解高考並不是「學習的終點」
    這場「大考」,已然成為了整個社會關注的重點,我們需要和孩子聊一聊每逢高考季,各家媒體的報導會從考前的準備工作、各方「愛心送考」、考試中的意外狀況、作文題、考後的心情等等,形成一整個的專題系列報導。這一合力的背後,是一種共同意識——高考是決定人生的重要大事。如此重視高考會為孩子帶來一個問題——忽視了作為一個個體為什麼而高考?高考似乎成為了學習的終點,孩子學習的動力與努力都放在了高考前,高考之後,一下子就失去了人生的方向與可能。
  • 一點學習-聊一聊抗日戰爭中的日軍翻譯官
    從1940年到1941年,季德一都跟著日軍在山西掃蕩,每到一個村鎮,就開始燒草垛,說八路軍就隱藏在草垛裡面。季德一後來擔任了偽軍第24集團軍的中校聯絡官,在這期間季德一在林縣抓住了一個當地農民,懷疑他是八路軍的密探,就對他進行嚴刑拷打,導致其當場死亡。
  • 評測:聊一聊特殊兒童玩具_評測_新品_ - 中外玩具網
    今天借著回答這位讀者的問題,再來和大家聊一聊特殊兒童的玩具。 因為之前寫過與特殊兒童有關的文章,Plantoys的工作人員聯繫毛爸,向毛爸介紹了Mom made toys。 Mom made toys的項目,是由一群特殊兒童的母親,通過參與提案和設計,來和PlanToys的玩具設計師一起,為她們的孩子開發特殊玩具。
  • 對不起,我們之間的區別只是「尬聊」和「更尬聊」
    從前禮節性的生硬社交互動被重新命名為「尬聊」,仿佛在宣告一個新潮流的誕生。「在嗎?」「在。」「吃飯了嗎?」「嗯。」「可以聊聊嗎?」「可以。」……人生中總有一些時刻,讓你主動發起尬聊或者被別人尬聊。以上的對話場景是否親切又熟悉?
  • AI 四巨頭 Google、DeepMind、Microsoft、Uber 深度學習框架大比拼
    GPipe、Horovod、TF Replicator和DeepSpeed分別是這四家公司開發應用的深度學習框架,它們結合了深度學習研究及其基礎設施的前沿技術,以提高深度學習模型的訓練效率。這四個深度學習框架各有什麼特點和優勢呢?本文將對此做一個基本介紹。
  • 聊一聊:高中和大學有哪些區別?
    點擊「寫留言」聊一聊吧