原文地址:How to get a job in deep learning
原文翻譯與校對:@戴丹 && @胡楊 && 寒小陽
時間:2016年10月。
出處:http://blog.csdn.net/han_xiaoyang/article/details/52777661
聲明:版權所有,轉載請聯繫作者並註明出
如果你是一個軟件工程師(或者你現在正在學習這一方面),你肯定有機會聽說過深度學習(有時候深度學習縮寫爲”DL”)。它現在是一個熱門、且快速發展的研究領域,解決工業界的一系列問題,從圖像識別、手寫識別到機器翻譯,更甚於AlphaGo4比1擊敗了世界圍棋冠軍。
大部分人認爲找與深度學習相關的工作應該具有博士學位或者大量的相關經驗,但是如果你已經是一名很好的工程師,那你就可以很快、很好的學習這些必要的技能和技巧。至少,這是我們的觀點。(即使你是深度學習的初學者,非常歡迎您加入我們的職位申請)
重點: 你對這一行業有着激情與興趣,且具有很好的編程和解決問題的能力就足夠了。
在Deepgram中,我們主要應用深度學習來解決語音搜索的問題。主要是我們教會機器去聽、記錄電話、在線視頻、播客和其他音頻等的談話內容。但聽僅僅是其任務的一半。正如我們的大腦是通過你回想起的那些關鍵詞和短語的聲音來尋找記憶中的談話一樣,我們也教會機器回想起那些記錄中的關鍵詞和短語。(如果你還沒有玩弄Deepgram,我們有一個小演示來展示它的一些功能。)
乍看起來,感覺深度學習有點嚇人,但好消息是,現在有比以往任何時候都要多的學習資源。(還有大量被禁錮需求的工程師知道如何實現深度學習的軟件)。所以,如果你想要找到一份深度學習工作,首先你需要調整你自己的學習速度,那就讓這篇成爲你深度學習的指導吧!(如果你已經非常瞭解深度學習,且只是尋找工作信息,那就跳到底部。)
什麼是深度學習?
總的來說,深度學習包括建立和訓練一個大型的人工神經網絡,該神經網絡在輸入和輸出之間具有許多隱藏層。正是因爲這些隱藏層,我們才稱呼這些神經網絡爲”深度”。至少具有三層隱藏層才能叫深度神經網絡,但現有的一些神經網絡已具有上百層。
神經網絡是一個複雜的統計模型,它通過計算機來對信息進行一個非常準確的抽象表示。你可能會問,什麼樣的信息?就像我們以前提及的,Deepgram的深度神經網絡是專門訓練來“理解”並在語音數據上進行操作,但深度神經網絡已經應用於大量的其他方面,從醫學掃描檢測癌症到預測能源價格和氣象建模。
在深度學習方向有很多著名的成員。在學術方面,多倫多大學的傑弗裏-辛頓的實驗室、紐約大學的雅安·勒存小組和斯坦福大學人工智能實驗室是深度學習研究領域的引領者。在工業界,谷歌已經率先應用深度學習於搜索和計算機視覺,百度首席科學家AndrewNg,其作爲Coursera的主要創始人,在上面貢獻了大量深度學習有關的科學文獻和教程。
今天學習深度學習爲什麼如此容易,即便是新手?主要有兩個原因:首先,計算硬件設施的快速發展和便宜足以讓深度學習技術能在幾乎任何一個像樣的顯卡上運行。(通過我們的測試,發現對於一個正在使用的算法,基於GPU服務器的速度是CPU核的400倍) 其次,大量的深度學習資源開放平臺,如TensorFlow、Theano和 Caffe,使實現自己的深度神經網絡相當容易,尤其是自己不必從頭開始構建一個神經網絡。
當然,還有很多深度學習相關的知識需要去學習,但這就是本篇指南的目的!
深度學習前的必備知識
說到數學,你肯定對微積分、概率論和線性代數很熟悉。這些知識將幫助你去理解深度學習的理論和規則。
當然了,這也需要一些編程知識。正如你所看到的這個深度學習庫列表,大部分流行的深度學習庫是用Python和R語言編寫的,所以,瞭解Python和R語言會對你很有幫助。
如果你需要提高你的數學和編程技巧,網上有大量的高質量資源可以學習和使用。
同時,正如我們上面提到的,需要有一個像樣的顯卡(或通過雲計算平臺,如Amazon Web服務或這裏列出的其他提供商之一來訪問GPU實例)。
去哪學習深度學習
關於深度學習的探討和文章
如果你是在全新的領域,且在尋找一些深度學習知識概念後的高層次解釋,而不是迷失在數學和編程方面的話,這有一些資料來幫助你對這些專業概念和術語的瞭解。
- 威斯康星大學有一個one-webpage神經網絡的綜述。
- Brandon Rohrer,微軟的主要數據科學家,在波士頓開放數據科學會議上做過一個演講,其主要是通過少量數學和計算機術語來解釋和闡明深度學習。這個頁面有相關的視頻和資料。
- 深度學習的開拓者Geoffrey Hinton,他是第一個演示使用backpropogation算法訓練神經網絡。他現在不怎麼參加多倫多大學的學術,而是領導谷歌的一些人工智能研究工作,我們都很喜歡他的“神經網絡實際怎樣工作”這麼一個簡短但卻富有啓發性的談話。你還可以在他的教師主頁找到他的”沒有太多數學”的深度學習論文列表。
- Steve Jurvetson,DFJ的創始合夥人,硅谷的風險投資公司成員,在深度學習領域領導了一個斯坦福大學商學院的討論小組。如果你有興趣從工業界一些創業者和工程師的角度來學習深度學習,看看視頻吧。
如果你想深入,熟悉一些數學,有着簡單的代碼示例,還可以討論深度學習的應用,可查閱斯坦福畢業生Andrej Karpathy的博文“The Unreasonable Effectiveness of Recurrent Neural Networks”。
在線課程
如果你是那種喜歡和從在線課程獲取大量知識的人,你很幸運。這有幾個很好的深度學習網上課程。
- Andrew Ng的斯坦福大學機器學習課程很受歡迎,通常廣受好評。它被認爲是最好的機器學習入門課程,將給你一些深入研究深度學習的準備。
- Udacity有一個免費的,十週的機器學習課程,着重於理論與實際的應用。對深度學習感興趣的人這會是一個全面的預備課程。
- 加州理工學院的Yaser S. Abu-Mostafa自學課程,“Learning From Data”課程在數學上密度涉及較少,但它仍然是一個非常全面的學習機器學習理論和技術的課程。
- Andrej Karpathy的”CS231n: Convolutional Neural Networks for Visual Recognition“,斯坦福大學的課程是具有一定的挑戰性,但它是在深度學習上很好的教程,其教學大綱和詳細的課程筆記在網上都可以下載。
- Geoffrey Hinton的課程”Neural Networks for Machine Learning” 也很好,這是一個做爲該領域的教父級別課程。
書籍
也許在線學習不是你的菜,或你只是喜歡看講座和複習幻燈片。我們推薦一些值得閱讀的書籍:
- Andrew Trask的Grokking Deep Learning旨在提供一個可理解、實用指南的深度學習技術。如果你以前瞭解一些Python和代數知識,那你100%的需要這本書。
- Ian Goodfellow、 Yoshua Bengio 和 Aaron Courville的Deep Learning,將在麻省理工學院出版社(MIT Press)出版。到目前爲止,這是一個早期在線的免費版本、外加一些幻燈片講座和練習。
其他學習資源和網站
- Metacademy是一個非常酷的站點,它是一個非常切實可靠的 深度學習概述,且有許多該領域特定主題的大量鏈接。
- 谷歌Brain team中的Denny Britz,在他的網站WildML上有很全面的深度學習專業術語介紹。他還建了a weekly newsletter,其中還包含了對機器學習和深入學習的技術性與非技術性文章。
深度學習實踐地
一旦你具備了相關的基礎知識,你將準備好進行一些實際數據和練習。這有些網站,你能夠找到一些簡單的數據集和實現時遇到的一些問題:
- Kaggle有大量的數據集,其從SF/Bay Area Pokemon Go spawn points到Y Combinator companies再到Hillary Clinton’s leaked emails的巨大文本語料。
- UC Irvine收藏了一個大的數據集來訓練深層神經網絡。
- 對於喜歡Python筆記的人,Alexander Johansen整理了一個很不錯的關於如何使用TensorFlow的5個部分教程(與其他的深度神經網絡DNN庫教程相鏈接)。
在哪尋找也對深度學習感興趣的小夥伴
不管你是一個業餘者還是在深度學習研究最前沿的博士生,在社區之間進行交流總是好的。這裏提供了一些地方來尋找都對深度學習感興趣的同道中人:
- 你應該看看你所在的城市是否有一個機器學習或深度學習的小組,比如說Meetup.com。大部分的主要城市是有的。
有關於數據深度學習和衍生見解的幾個在線社區:
- Deeplearning.net是一個學習深度學習相關信息的網站。它的資源包括:綜合閱讀書單,深度學習研究實驗室列表和一組優秀的演示,這樣你就能發現深度學習的實際應用。
- Datatau有點像黑客新聞,但特別關注數據和機器學習。它的評論部分不是很活躍但有定期發佈的新鏈接。
- 這有一個非常活躍的機器學習板塊,(他們有非常有用的wiki和其他更多資源)。但深度學習板塊就稍微要沉悶一點。
- 令人驚訝的是,Google+發展了一個超過30000註冊用戶的深度學習小組。(誰知道人們現在還用Google+嗎?)
深度學習在哪找工作
好消息是,基本上每個人都想招聘懂深度學習的人。
你可能知道去一些大衆的地方尋找相關工作:股權衆籌平臺AngelList,黑客新聞的每月“誰招聘”欄目,StackOverflow的招聘工作板塊和許多求職網站。
一些關於深度學習崗位的工作可在Deeplearning.net的招聘板塊上發現,在Kaggle上也有更多的關於機器學習工作的招聘板塊。
這絕對是一個重磅消息。大多數公司在尋找深度學習和機器學習的人才時,並不會設置申請人要通過人力資源部門的環節。
當你申請職位了你該怎麼做
在你申請這份工作前公司想看你是否做過一些很好、很酷的東西。
如果你沒做過那你就沒有面試的機會,如果你曾經做過,那無論你的背景怎樣都會有一個機會的。當然了,什麼是很好、很酷的東西,我們稍後解釋。
如果你唯一的經驗是構建一點點成功的小型項目,你很可能沒有面試機會(儘管它可能會爲大公司工作或者一些公司需要這一部分運行機器學習)。但是如果這樣:
“我通過使用Theano/Tensorflow/MxNet 建立了一個微博深度神經網絡分析並且對於預測話題有很高的準確率”:
- 這是我實驗得到的準確率
- 這是我的實驗報告鏈接
- 這是我github上的代碼鏈接
這樣的東西將會使你獲得面試的機會。在你面試的時候你就應該發揮出你編代碼的魔力與解決問題的能力。
Deepgram也在招聘,如果你對解決問題和構建工具感興趣的話,請聯繫我們吧!