編譯 | AI科技大本營(rgznai100)
參與 | 鴿子、Shawn
導語:昨晚谷歌大腦(Google Brain)在Reddit上舉辦了一年一度的線上答疑活動AMA,Google Brain負責人Jeff Dean,Google首席科學家,Google Brain團隊技術負責人Vincent Vanhoucke和其同事熱情地回答了網友們提出的各種問題。AI科技大本營從中選取了一些代表性的問題,通過這些問答你可以瞭解如何申請谷歌的實習專案、申請注意事項、申請及面試建議、實習生的日常工作,還有谷歌大腦的大牛們對深度學習等領域未來發展的看法。
關於實習、職業選擇:
Q:幾個月前我在你們網站上看到一份關於實習專案的申請說明,裡面有說該專案不要求申請人具有非常好的機器學習背景。我是一名生物統計學流行病研究者,主要工作是健康調研,我很想申請這個專案。我的問題是:最終錄取的申請人中有多少人並非來自機器學習背景,他們的培訓與機器學習研究人員的培訓有什麼不同?
Jeff Dean(Google Brain):在第一期實習專案的27名實習生中,大約1/3的人具有電腦科學背景,1/3有數學、統計學或應用數學背景,1/3在STEM領域(如神經學、計算生物學等)有深厚的背景。今年錄取的35名實習生情況也差不多,事實上其中一名實習生還是一名流行病學博士。幾乎所有實習生都有機器學習方面的經驗,儘管他們從未接受過關於ML的學術培訓。
Q:我有幾個關於谷歌大腦實習專案的問題。第一批實習生來自於多個不同的背景:應屆畢業生、經驗豐富的軟體工程師和博士生等,那麼
-
這是否意味著每種背景都有相應的錄取配額?例如,經驗豐富的軟體工程師不會與博士生一起競爭實習生資格。
-
你們希望在不同背景的申請人身上找到什麼樣的特質?在這些背景中,我對應屆畢業生和經驗豐富的軟體工程師背景特別感興趣。
-
下一批申請會在什麼時候開始?現在已經9月了。
sallyjesm(Google Brain):我們並不是根據背景或經驗水平挑選一定數量的實習生。今年實習生的背景非常多樣,我們沒有制定任何特定的配額。我們看重的是申請人是否具有巨大的研究潛能,是否能在這樣的專案中獲得很大的成長。 我們在申請人身上尋找的是技術能力和研究興趣,而不是特定的資歷。下一批申請將在10月2日開放,於1月初結束。請提交完整的申請材料並提供您之前在GitHub上的連結或者您之前在ML領域的其他作品。
Q:我剛開始讀研究生,並有選修ML方面的課程,我希望參加谷歌大腦實習專案。未來我希望進入ML/AI研究領域(偏重於基礎和理論,應用較少),我之前曾在4家大型公司中擔任實習軟體工程師並進行了ML上的一些應用。我該怎樣做才能增加今後一兩年在谷歌大腦團隊工作的機會?
sallyjesm(Google Brain):恭喜你成為一名研究生!根據我與一些實習生的討論經驗,我認為在研究生階段親自動手完成專案非常重要。因為有了這樣的經歷,面試就會變得非常有趣,不管是對您還是對谷歌大腦面試官來說。
從實踐角度看,你可以完全控制兩個問題:
-
準備完整的申請材料;
-
完成申請。請確保向招聘團隊提供所要求的全部材料(例如,避免無法按時提交所需檔案)。如果頭一年申請不成功,請在獲得更多經驗後考慮再次申請。
Q:在谷歌大腦團隊工作是什麼體驗?您的日常工作是什麼?你決定某人是否適合您團隊的原因是什麼?
sara_brain(Google Brain):我是谷歌大腦的一名實習生。今年共招了35名實習生,我們都在山景城同一區域內工作(但是還有一些實習生在舊金山工作)。每天吃早餐時,我通常會與另一名實習生討論他們的研究專案。接下來,我會閱讀各種與我的研究領域(卷積神經網路的透明度)相關的論文,使用TensorFlow編碼,與我的專案導師和合作夥伴開會。谷歌大腦的研究人員非常注重合作,因此我通常會與研究類似問題的研究員一起吃午餐或晚餐。
谷歌大腦的實習生平常還會做一些其他有趣的事情:訪問學者並進行研究討論(常常會發現以前從未想過的論題,例如將深度學習應用到太空探索中);每兩週實習生們會聚一次(這有助於我們跟進其他實習生的研究);學習TensorFlow最新的進步並直接提供反饋;在數千個GPU上執行試驗。
去年的實習生Colin發表了一篇很好的博文,詳細描述了他的實習體驗:http://colinraffel.com/blog/my-year-at-brain.html
Q:你是怎麼進入AI領域和Google的?
alextp(Google Brain):我在本科期間就對機器學習產生了濃厚的興趣,之後我又獲得了一個博士學位。我在博士階段曾在Google實習,在這裡工作了幾年後轉入了谷歌大腦。有趣的是,我記得我第一次認真四口機器學習是在一堂數字分析課上,當時我們正在討論多項式近似值函式插值和外推法;能夠被表達為數字函式的物件有很多,我們還可以外推其他什麼東西?這個問題一下子迷住了我。那一年晚些時候,我發現了ML這門科學並從此為之著迷。
未來預測
Q:你認為ML領域接下來最大的挑戰是什麼?
Jeff Dean(Google Brain):目前我們傾向於構建只能完成一個或少數幾個特定任務的機器學習系統(有時候這些任務非常困難,例如將一種語言翻譯成另外一種語言)。我認為我們真的需要設計這樣一種簡單的機器學習系統:它能夠解決數千或數百萬個任務,並能從解決這些任務的過程中獲得經驗,用以學習自動解決新的任務;根據具體任務啟用模型上不同的模組。實現這種系統需要解決很多問題。今年早些時候我在史丹佛大學的Scaled ML會議上做了一個演講,我在第80頁之後的幻燈片中提供了一些關於這個想法的材料(第62頁後面有提供一些背景知識)。
Vincent Vanhoucke(Google Brain):使深度網路穩定地適應來自弱監督資料的線上更新仍然是個大問題。解決這個問題,將使真正的終身學習成為可能,並使得許多應用程式開放。另一個巨大的障礙是,像GAN 或Deep RL 這樣領域內最激動人心的發展還沒有到達“批量歸一化”的時刻:這個時刻到來之後,一切都預設就“想要訓練”,不再需要一個超引數一個超引數地調整。
當然,這些進展還不夠成熟,還沒從有趣的研究轉變成我們可以依賴的技術。現在,不進行大量的精確微調,就無法可預測地訓練這些模型,因此很難將它們納入到更精細的系統中。對這些模型進行可預測的訓練,這導致我們很難把它們用到更復雜的系統中。
Vincent Vanhoucke(Google Brain):過去10年間大部分機器人開發都有這樣一個前提:機器人不具有任何感知能力。結果,該領域的很多研究都集中於開發在非常受限的環境中工作的機器人。現在我們掌握了新的計算機視覺“超級能力”,我們可以徹底顛覆該領域,重新構建一種以感知未知環境和豐富反饋為中心的機器人系統。深度強化學習作為一種最有可能的實現方法,它可以將感知作為控制反饋迴圈的中心,但是這種技術離廣泛應用還有很長一段距離。
我們需要搞清如何使它更容易分配獎勵,訓練更可靠,處理樣本的效率更高。我在國際人工智慧協會(AAAI)會議上討論了一些這方面的挑戰。現在我們可以讓系統通過學習第三方視覺來進行模仿,用以解決任務分配問題和樣本處理效率問題,對此我感到十分激動。如果你對該領域感興趣,我們將會直播幾個月內即將召開的首屆機器人學習會議。
具體技術問答
Q:你們是否計劃為ONNX(開放神經網路交換)交換格式提供支援?如果沒有這方面的計劃,請問為什麼?
[1]https://research.fb.com/facebook-and-microsoft-introduce-new-open-ecosystem-for-interchangeable-ai-frameworks/
Jeff Dean(Google Brain):他們幾天前在部落格上發表了這篇文章,我們也是在那時候瞭解到這個訊息。如果這種格式有很大用處,我懷疑TensorFlow社群是否會為它提供支援。2015年11月,我們發表了開源宣告,自那時起TensorFlow原始碼庫中就有提供我們保持和恢復模型資料和引數所用的格式。
Q:兩個問題
-
大家都在談論ML/Al/DL領域取得的成功。您能談談您在嘗試使用DL解決(研究或實際)問題時遇到的一些挫敗或挑戰嗎?最好是在解決大型監督學習任務時遇到的挫敗和挑戰,在此類任務中DL方法通常都可行。
-
谷歌大腦團隊怎麼看待目前的無監督學習方法?你認為接下來幾年會出現較大的概念進步嗎?
Vincent Vanhoucke(Google Brain):挫敗:我們團隊中的幾個同事曾嘗試與Bob Mankoff合作用《紐約客》(New Yorker)雜誌上的漫畫訓練一個神經網路標題生成器,Bob是該雜誌的漫畫編輯(我剛看到他今年有發表一篇論文)。結果效果不是很好。這個生成器生成的標題一點也不好笑。雖然根據DL標準我們擁有的資料並不充分,但是我們可以用其他型別的漫畫來預訓練視覺表達。我仍然希望我們在這方面可以取得成功,但是也許還是要用舊方法。
無監督學習:我認為人們終於意識到自動編碼是個糟糕的想法,無監督學習可行,而監督學習不可行,這兩者之間的差異主要在於預測的是具有因果關係的未來(下一個單詞或下一幀)而不是現在(自動編碼)。看到這麼多人開始用我們去年開源的推送資料集對他們的“未來預測”進行基準測試,我感到非常高興,這確實出乎意料。
Q:你們有沒有試著為Tensorflow和機器學習創造一種標準的編碼方式和/或方法?人們似乎使用多種不同的方法來編碼模型,有些方法很難解釋。這個問題與第一個問題沒多大關係,Keras將會加入Tensorflow,Learn是否會被淘汰?同一庫有兩種不同的高階API似乎有點奇怪。
wickesbrain(Google Brain):我的建議是最好堅持使用最高階的API來解決問題。這樣的話,你就會自動利用我們在系統內部作出的改進,你的程式碼最不可能在未來過時。
現在我們有了完整的tf.keras(真正意義上的),我們正在努力統一Keras應用和先前的TF概念。這項工作馬上就快完成了。我們的目標是:tf.keras可以輕易地從一處收集構建一個完整的Keras API spec所需的所有表徵(symbols)。注意,Keras並不適用於所有使用例項,尤其是分散式訓練和較為複雜的模型,這就是為什麼我們使用tf.estimator.Estimator的原因。我們會繼續改進Keras與這些工具的結合。
我們不久之後會開始淘汰部分contrib,包括所有contrib/learn。許多人還在使用這種工具,淘汰它會需要相當的時日,我們並不想不必要地突然終止人們對它的使用。
關於學習資源
Q:你們是怎麼跟進行業最新進展的?具體說的話,你們推薦哪些可以體現前沿技術進展的雜誌/會議/部落格/公司?
Jeff Dean(Google Brain):頂級ML會議上發表的論文;Arix Sanity;谷歌學術(Google Scholar)上的 “My Updates”功能;研究人員指出和討論的有趣論文;Hacker News 或者本subreddit中討論的有趣文章。