「實習生通關秘籍」我在谷歌大腦開掛的一年
1新智元編譯
在谷歌大腦實習就像一年博士
過去一年裡,有許多人問我在谷歌大腦的實習實際上是怎樣的,因為這是谷歌大腦實習項目的第一年。我認為最準確的描述就是「相當於一年期的博士生活」,除了地點是在谷歌大腦而不是在大學。如果你是剛接觸機器學習,那麼這就像博士生的第一年;如果你已經有很多機器學習的經驗,做過許多研究,寫過論文,等等,那麼這個實習項目可能更像博士生的高年級。也就是說,假如你在這個實習項目待上四五年,也無法讓人稱你為「博士」。
我認為這是一個恰當的描述,因為在這裡,我的日常生活和責任與我在博士生期間所做的事情相比沒有任何變化。具體來說,我每天早上通常要花一兩個小時閱讀論文,然後花上一整天編代碼和運行實驗。有時我會去參加谷歌大腦的研究員或訪問學者的講座。有不少人擔任我的「導師」,我需要對他們彙報我的研究進展和想法。而且,也像往常一樣,在接近論文deadline期間,我得忙著將我的實驗結果提交給相關會議。
當然,兩者之間也有一些實質性的差異,主要是由於谷歌大腦是一個非常大的研究實驗室(有數百人),而大多數學校里實驗室都要小得多。這意味著如果你對某個具體的研究課題有疑問,那麼大腦里有可能有人在這個課題工作,或者更具體地說,如果你正在閱讀某篇機器學習論文,那麼有可能作者就坐在離你只有幾百英尺遠的地方。此外,在谷歌大腦里有更多的合作機會——或許太多了!在來谷歌大腦之前,我從來沒有需要拒絕/推遲與厲害的人進行研究工作的時候。
另一個顯著的區別是,你將擁有非常瘋狂的計算量任你處置。在幾十甚至幾百個GPU上進行實驗,通常不是什麼大事。這確實會對你所做的工作類型具有具體的影響——有更多的空間嘗試各種不同的想法,超參數配置,等等。這也意味著你可以更加不注意在開始試驗時讓所有內容正確/高度優化,不管是好是壞。我記得我在博士期間,花了相當大量的時間來衡量不同的Theano操作,以便可以利用我的單GPU得到最大的性能。在谷歌,更不注重細粒度效率; 相反,注重的是擴大規模。
我在谷歌大腦做什麼
我的實習目標基本上是:1. 做基礎(而不是特定於某個應用的)ML研究;2. 學習知識;3. 利用我在谷歌大腦這一優勢。我的研究背景主要涉及序列數據的機器學習模型(博士時主要專註於應用於音樂的ML),所以這令我在選擇要研究的問題時,給了我很大的影響。
Subsampling Sequences
我的第一個項目是試圖創建一個能夠自己發現序列的層次結構的模型。許多序列可以自然地分解成層次結構(例如文檔 - >段落 - >句子 - >辭彙 - >字元),所以我們希望有一個可以發現這些層次結構的模型是特彆強大的或至少是更容易解釋的。為了解決這個問題,我決定重點關注一個比較簡單的機制,像這樣:有一個輸入序列,你想通過做一個二進位的「是/否」決定來構造一個較短的輸出序列,以決定在輸出序列中是否包含輸入序列的每個entry。實際上,你只是對輸入序列進行「採樣」以產生一個新的較短的序列。是否將輸入序列的每個entry包含在輸出中的決定可以是自適應的,即基於輸入序列本身。下面的圖可以說明這個想法:
你可以想像,使用RNN處理序列並多次應用這個「二次採樣機制」可能會鼓勵模型學習分層表示,你可以將每個較短的序列中的每個元素視為表示輸入中存在的較粗略的概念序列。幸運的是,可以為輸出中包含給定輸入序列元素的概率導出表達式,因此你可以使用標準反向傳播的機制來訓練模型。不幸的是,除了一個簡單的問題,我還無法通過這種方法在任何任務上獲得良好的效果。例如,我使用這種機制獲得的一個模型,在TIMIT任務中只得到~30%的錯誤率(state-of-the-art 為約17%)。不過,我在ICLR研討會的擴展摘要[1]中寫了這個想法,提出訓練一個理想的二次採樣機制是可能的。
monotonic attention
我認為二次採樣機制在實踐中效果不好的原因之一是,「二次採樣概率」必須在產生任何產出之前立即計算。為了解決這個問題,我將注意力機制和序列到序列模型(seq2seq)聯繫起來,它可以將輸入序列轉換成新的輸出序列。由於輸出中的每個元素都是生成的,所以允許「返回」到輸入中的條目,這有助於它更直接地調節輸出生成過程。雖然注意力機制已被證明是非常有效的,但其一般形式卻有一些缺點:首先,這些模型不能在線使用——也就是說,它們不能在輸入序列生成時產生輸出;第二,它們具有二次時間複雜度,因為對於輸出序列的每個元素,模型必須重新處理整個輸入序列。但是,通過用二次採樣機制替代標準注意事項,我們實際上可以獲得在線和線性時序序列模型。這給了我們一種「單調注意力」(monotonic attention),其中一旦模型參與到輸入中的給定條目,它不能在隨後的輸出時間步長中考慮到它之前的任何東西。與採樣機制一樣,有一個簡單的方法來訓練這種機制,不需使用梯度估計。原理上,monotonic attention 如下所示:
monotonic attention機制的示意圖
這個項目的一個好處是,我能夠利用谷歌內部的現有專業知識和代碼庫來加速實驗。令人驚訝的是,谷歌中有許多團隊和項目都在使用seq2seq模型,並注意到了這種「monotonic attention」。因此,我在四種不同的代碼庫中實現了這種方法;這是我能夠觀察這個模型是否適用於某個任務。這個項目形成了一篇ICML論文[2]。
Hard Alignments with RL
在像谷歌大腦(或像Google / Alphabet這樣的大公司)這樣大的實驗室工作的結果是,可以有多個組的人同時在處理非常相似的想法。 monotonic attention的工作就是這種情況。然而,他們不是用反向傳播來訓練,而是側重於用 hard alignments 來訓練模型。這排除了反向傳播的使用,所以他們使用梯度估計(gradient estimation)技術(REINFORCE [3],NVIL [4],VIMCO [5])。這種方法的好處在於它使訓練和測試時間模型行為相同,即意味著訓練是線性時間的。困難的部分是,梯度估計的差異化使訓練不小心的話難以獲得正確結果。關於這個方法,他們最近在arXiv發了一篇很好的論文[6]。
一開始,我們大多在高級別上分享結果和洞察力,但最終我最終嘗試了我一直在使用的句子總結基準測試。 這主要是看它是否在語音識別之外的一個設置中工作,這是其主要測試台。 不幸的是,它不能擊敗一個簡單的無關序列序列基線,這表明該模型沒有真正利用注意機制。 這可能至少部分是因為讓模型工作在語音識別上需要一些不能很好地推廣到文本數據的正則化。 儘管有不利的結果,這給了我們一些有趣的見解,用於訓練模型的不同方法的重要性。 運行這個實驗後,我主要幫助了一個高層次,他們最近在這個方法上發表了一篇關於arXiv的很好的論文[6]。
Direct Feedback Alignment
Direct Feedback Alignment(DFA)[8]是一個非常奇怪的想法:在正常的反向傳播中,網路的「錯誤」(損失梯度,關於輸出非線性預激活)通過與每個層的權重矩陣相乘來反向傳播到較早的層。在DFA中,我們取網路的錯誤,並將其與固定的隨機矩陣相乘,以計算每個層參數的更新。令人驚訝的是,這似乎效果很好。
Magenta
對於我個人來說,在谷歌大腦工作的一件好事是,雖然我可以學習新的研究領域,並進行基礎研究,但是在大腦裡面有一個關注點在音樂上的小組: Magenta。 我從來沒有在Magenta做過大量的工作,但是他們很好,允許我來參加會議,甚至不時地詢問我對不同研究思想的看法。我也有機會代表Magenta去了Moogfest,在那裡我幫助他們介紹了他們開發的一些工具。
參考文獻:
[1]"Training a Subsampling Mechanism in Expectation"by Colin Raffel and Dieterich Lawson (arXiv:1702.06914).
[2]"Online and Linear-Time Attention by Enforcing Monotonic Alignments"by Colin Raffel, Minh-Thang Luong, Peter J. Liu, Ron J. Weiss, and Douglas Eck (arXiv:1704.00784).
[3]"Simple Statistical Gradient-Following Algorithms for Connectionist Reinforcement Learning" by Ronald J. Williams.
[4]"Neural Variational Inference and Learning in Belief Networks " by Andriy Mnih and Karol Gregor (arXiv:1402.0030).
[5]"Variational inference for Monte Carlo objectives "by Andriy Mnih and Danilo J. Rezende (arXiv:1602.06725).
[6]"Learning Hard Alignments with Variational Inference"by Dieterich Lawson, George Tucker, Chung-Cheng Chiu, Colin Raffel, Kevin Swersky, and Navdeep Jaitly (arXiv:1705.05524).
[7]"Decoupled Neural Interfaces using Synthetic Gradients"by Max Jaderberg, Wojciech Marian Czarnecki, Simon Osindero, Oriol Vinyals, Alex Graves, David Silver and Koray Kavukcuoglu (arXiv:1608.05343).
[8]"Direct Feedback Alignment Provides Learning in Deep Neural Networks" by Arild N?kland (arXiv:1609.01596).
[9]"Explaining the Learning Dynamcis of Direct Feedback Alignment"by Justin Gilmer, Colin Raffel, Samuel S. Schoenholtz, Maithra Raghu and Jascha Sohl-Dickstein.
[10]"Neural Message Passing for Quantum Chemistry"by Justin Gilmer, Samuel S. Schoenholz, Patrick F. Riley, Oriol Vinyals and George E. Dahl (arXiv:1704.01212).
原文:http://colinraffel.com/blog/my-year-at-brain.html
點擊閱讀原文可查看職位詳情,期待你的加入~


※「MIT研究」AI自動生成維基百科,智能組合互聯網信息
※「視頻行為理解新邊界」上交團隊ActivityNet競賽兩項冠軍,技術分享
※IJCAI趨勢:周志華當選首位華人程序主席,LAMDA俞揚專訪
※解決3D重建難題,伯克利大學根據單張平面彩圖重建高精度3D結構
※AI編曲震撼人心,RNN生成流行音樂
TAG:新智元 |
※沒有三年實戰經驗,我是如何在谷歌雲專業數據工程師認證中通關的
※還沒通關「猜畫小歌」?擊敗谷歌AI的秘籍在此
※超好玩:谷歌大腦研究員用神經網路造了這些腦洞大開的「漢字」
※揭秘谷歌開發的奧秘
※谷歌將在遊戲開發者大會上舉行演講 聚焦遊戲相關業務
※這是李飛飛在谷歌雲大會上新聲音,AI四大進展與虛擬助理全面解讀
※谷歌都造人了,我們還在生二胎
※谷歌開發者大會背後的六件「密事」
※谷歌在世界移動通信大會上宣布,三款更具前景的安卓功能將會在今年更新
※谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼
※我們對谷歌I/O開發者大會有哪些期待 從新系統到新硬體
※谷歌衛星拍到的大海下面的神秘生物,真的會存在嗎?
※谷歌將於今年在迦納開設其在非洲的首家人工智慧研究中心
※谷歌、三星、一加和華為將在一場安卓大戰中展開對決
※谷歌開發者大會幾大亮點,安卓Q正式開測
※我們對谷歌I/O開發者大會有哪些期待?從新系統到新硬體都有
※谷歌IO開發者大會上的4大亮點!
※谷歌推出「大爆炸AR」,帶你見證首批恆星的誕生
※微軟和谷歌開發者大會撞車 AI之戰已經打響
※谷歌在中國市場的發展