天天看點

碩士學位還是初創公司:哪一個是建立深度學習職業的切入點?

今天我遇到了兩個大學時期的朋友,他們目前都在印度最成功的科技公司裡擔任軟體工程師,而且已經自學深度學習一段時間了。

因為着迷于深度學習的發展潛力和市場熱度,他們想要尋找到一個進入深度學習領域的專職機會,今天我們就和大家探讨一下,到底什麼才是深度學習正确的切入點?

選擇在初創公司的工作,還是去攻讀一個碩士學位?

幾乎每隔一天就有數不清的人來問我這個問題。遺憾的是,在今天之前,我也一直無法給出一個有條理的答案。下文中給出的答案是與我兩個天才好友盡可能多地廣泛讨論出來的結果。我也很自豪能夠得到這樣一個相對全面的答案。同時我也想邀請所有讀者朋友們,在下面的評論部分表達你的見解,讓我們來一起細化這個答案。

在今天的場景下,深度學習領域有兩大流派。 這在其他科學研究領域也幾乎是一樣的。

流派1:在垂直應用中實作最先進的理論。

流派2:推動理論進步。

這兩個流派都是同樣有價值有意義的,但他們要求兩套不同的技能和本領。我們稱他們為S1和S2(免責聲明:S¹∩S²≠∅)。

接下來,我們對S1和S2進行非窮盡的全面列舉。

我們從S1開始。也就是在垂直應用中實作最先進理論的流派。其目标是用最先進的深度學習算法去解決問題。

舉個例子,現在的問題是要建立一個對話式的人工智能代理來幫助數百萬患有抑郁症和相關心理問題的人。

你通過一個快速的文獻調查和專家咨詢,找到了發表在最新的NIPS上的一個可以開發這樣人工智能的頂尖技術論文,拿着這篇論文,你回想你開發系統的最初構想,比照你的問題陳述來分析這篇論文。

你需提出以下幾個問題:

這篇論文對于你要解決的問題有多大的幫助?

你的系統部署規模是多少?本文提出的解決方案是否足夠可擴充?

系統的最大允許延遲是多少? 如果你正在處理個人的隐私資料,建議不要将任何資料發送到雲端且要在本地裝置中做算法的學習和預測。論文中的解決方案是否适合處理這種情況?如果不适合,你能調整以使其适配嗎?

類似這樣,會得到與應用程式開發和部署相關的N個問題列出。你的工作是專注于實施,優化和調整NIPS算法以最終實作應用程式。

為此,你需要以下的技能(非窮盡),我們統稱為S1

高超的程式設計能力,最好是軟體工程的背景。

對核心算法進行優化的熱情。

了解不同的硬體平台-如CPU(x86 vs ARM),GPU,FPGA,VPU / ASIC等,以及如何為每個硬體平台編寫最優代碼。此外,還可以判斷給定平台是否适配你的應用程式。

高性能計算和大資料處理知識。

全棧的軟體開發經驗。

如果你具有S1的技能,那麼你就屬于類型1。可以稱之為“深度學習工程師”。如果你屬于類型1,你應該考慮在初創公司找一份工作,因為在那裡你将有機會用最好的深度學習解決方案和你所具備的超級明星級的工程技能來解決迫切亟待解決的問題。

但和一個初創公司簽合同之前,請檢查以下内容:

與負責深度學習的部門主管交談。如果他認為給予足夠的具有标簽的資料和計算能力,深度學習可以解決世界上任何問題,那麼最好不要為那家公司工作;)

檢查公司是否有足夠的教育訓練資料和(或)可以提供具有标簽教育訓練資料的機構有緊密合作。如果不是,拒絕。

公司是否與領域專家有已存的合作關系?(在反抑郁症AI的例子中,公司是否邀請了經驗豐富的心理學家來做定期咨詢?)如果沒有,該公司是沒用的。

公司是否與學術界的人工智能專家有合作關系,或者至少期望合作? 如果不是的話,那麼在開發的過程中,你很有可能陷入困境或迷失方向,而且沒有人能幫助你或糾正你的錯誤。

現在讓我們來談談S2

也就是推動理論進步的一系列技能。你從NIPS 2017中挑選最吸引你的論文,決定超越它,達到更高的标準,并在NIPS 2018(或者也許2028,哈哈)中釋出。當然時間是越遠越好。考慮到這個一年(或者十年)計劃,你可以規劃好具體的研究步驟。

你需要以下的技能和本領:

享受學習數學的樂趣

能夠在短時間内閱讀和總結大量的文獻資料。對手頭的問題有全面的了解,并且能夠找到閱讀過的論文中提出的對該問題的解決方案的确切位置。

熟練使用自己喜歡的深度學習庫(例如TensorFlow,PyTorch,Caffe等)将算法用代碼實作。

出色的口頭表達和協作能力。你需要能夠簡潔地向專家和合作者提出你的想法,并與他們進行有效的讨論。

優秀的寫作技巧。即使是最好的想法也會因為報告展示的不夠優秀而被拒絕。你應該能夠寫出非常好的英語。

毅力。準備好應對一系列拒絕,心碎,嚴重錯誤,執行失敗和一些假性的研究工作。

如果你具備這些特征,你可能屬于類型2。這種類型稱為“深度學習科學家”。你應該去獲得一個碩士學位(或博士學位)。在畢業前,你将被評估依據你在NIPS、ICLR以及ICML等會議論文發表的情況。是以選擇适合你的研究實驗室。

這裡有一些你需要注意的事項:

謹慎地選擇你的研究領域。記住,你的目标是完成碩士/博士學位,并在3-5年内完全适應市場。是以,確定你選擇的主題在3-5年後仍然很火。而不是一些目前很流行的東西,因為這些很可能在你完成學業時失去熱度。

謹慎選擇你的導師——他/她是否鼓勵前沿科技研究,與外界開展學術和産業的合作,提供實習機會并能和團隊中其他研究人員開展自由互動?如果不是,則尋找其他導師。

你是否擁有必要的硬體裝置,如GPUs、Xeon Phi/Xeon-scalable處理器、TPU(谷歌雲)等。

你是否有一個好的工作環境?記住,你每天将在實驗室裡度過20小時。

你的團隊是否有雄心?是否有追求在頂級會議和期刊定期發表論文的文化?你的團隊是否在解決問題後有完善的記錄?

是出國,還是留在自己的國家

在我看來,目前一個成功的研究者在海外的确能有很大的發展空間。但國内幾所大學都擁有用于深度學習的最先進的硬體基礎設施(其中大部分正在建設中,但都會在1-2年内完成)。這些研究機構擁有一些非常有才華的教授和剛起步但很有前途的深度學習研究小組。

但是,如果你傾向于出國,確定你前往的是一所頂級機構。在一所二等大學/研究所開展AI工作并不值得花費那麼多開銷,而留在國内,在你就讀的大學工作顯然是一個更好的選擇。是以,如果你即将前往美國,盡可能靠近矽谷,那也不用問我了… :)

以上就是我們總結的結果!請確定你用上述特征恰當地描述了自己,并且要好好想想你是屬于第一類還是第二類。然後選擇就簡單明了了。

如果你屬于類型一,選擇一個初創公司的工作

如果你屬于類型二,去獲得碩士/博士學位吧!

我上問說到的這種分析可能膚淺,是以我需要更多細節和進一步深度的思考。之後我收到了一些讨論,又有了一些補充想法來完善本文,如下。

補充聲明:

Edit #1 on 06 Nov 2017

許多人(尤其是Arijit Patra)指出目前大量非計算機科學期刊/會議裡的出版物都包含了使用深度學習的方法來解決各自領域的相關問題。盡管這些項目根據上文提出的分類屬于流派1,但S1中列舉的技都無關緊要。而S2中列舉的技能變得更加重要。這也是我為什麼強調S¹ ∩ S² ≠ ∅且交集中列舉的技能都非窮盡。

人類不太可能同時掌握S1或S2列舉的所有特點或技能。Arijit Patra認為我應該為這種項目給出第三種流派,他們被統稱為“應用科學家”。但是我還是希望有所不同并維持我原始的分類。我建議那些對這一行感興趣的人先去初創公司工作而不僅僅是去獲得一個碩士學位。因為參與開發一個真正的産品會給予你重要的人生經驗,也有助于找到你在項目中最适合扮演的角色(例如讀者、作家、程式員、戰略家)。你可能早已注意到發表一篇單個作者的論文在深度學習社群已經不流行了。即使你已經擁有碩士或博士學位,你也需要和一個團隊共同工作。在深度學習項目的建立中,找到使你更具有生産力的角色是非常重要的。

原文釋出時間為:2017-11-30

本文作者:Anirban Santara

繼續閱讀