【為什麼我們挑選這篇文章】深度學習是現下科技熱門的關鍵字,從人工智慧、手寫識別到機器翻譯等,都有深度學習的足跡。那深度學習是什麼?可以到哪學?有什麼樣的資源能夠利用?這篇文章能一一解答你的疑問!(文章來源:大數據文摘,bigdatadigest。責任編輯:張瑋倫)
如果你是一個軟體工程師(或者你現在正在學習這一方面),你肯定有機會聽說過深度學習(Deep Learning,有時候深度學習縮寫為「DL」)。它現在是一個熱門、且快速發展的研究領域,解決工業界的一系列問題,從圖像識別、手寫識別到機器翻譯,更甚於 AlphaGo 以4比1擊敗了世界圍棋冠軍。
大部分人認為找與深度學習相關的工作應該具有博士學位或者大量的相關經驗,但是如果你已經是一名很好的工程師,那你就可以很快、很好的學習這些必要的技能和技巧。至少,這是我們的觀點。
在 Deepgram 中,我們主要應用深度學習來解決語音搜索的問題。主要是我們教會機器去聽、記錄電話、在線視頻、Podcast 和其他音訊等的談話內容。
但聽僅僅是其任務的一半。正如我們的大腦是通過你回想起的那些關鍵詞和短語的聲音來尋找記憶中的談話一樣,我們也教會機器回想起那些記錄中的關鍵詞和短語。(如果你還沒有玩過 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,黑客新聞的每月「誰招聘」欄目,Stack Overflow 的招聘工作板塊和許多求職網站。
一些關於深度學習崗位的工作可在 Deeplearning.net 的招聘板塊上發現,在 Kaggle 上也有更多的關於機器學習工作的招聘板塊。
這絕對是一個重磅消息。大多數公司在尋找深度學習和機器學習的人才時,並不會設置申請人要通過人力資源部門的環節。
- 當你申請職位了你該怎麼做
在你申請這份工作前公司想看你是否做過一些很好、很酷的東西。
如果你沒做過那你就沒有面試的機會,如果你曾經做過,那無論你的背景怎樣都會有一個機會的。當然了,什麼是很好、很酷的東西,我們稍後解釋。
如果你唯一的經驗是構建一點點成功的小型項目,你很可能沒有面試機會(儘管它可能會為大公司工作或者一些公司需要這一部分運行機器學習)。但是如果這樣:
我通過使用 Theano 建立了一個 twitter 深度神經網路分析並且對於預測話題有很高的準確率:
- 這是我實驗得到的準確率
- 這是我的實驗報告鏈接
- 這是我 github 上的代碼鏈接
這樣的東西將會使你獲得面試的機會。在你面試的時候你就應該發揮出你編代碼的魔力與解決問題的能力。
(本文經原作者大數據文摘授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈怎樣找到一份深度學習的工作| 附學習材料,資源與建議〉。)
延伸閱讀
亞馬遜開源深度學習工具 DSSTNE,號稱計算速度是 Google 的 210%
售價不到 100 美元,這隻 USB 居然藏一台野獸級深度學習計算機?
深度學習法條 + 海量判決資料,Alphago 有可能成為公正無私的法官嗎?
超過 200 家國際媒體報導,台灣團隊把深度學習技術融入貓咪餵食器
TechOrange 正在招募 網路編輯、網路廣告業務經理 / AE!
歡迎你提供履歷自傳寄至 jobs@fusionmedium.com 來信主旨請寫明:【應徵】網路廣告業務經理 / AE、【應徵】TechOrange 編輯:王小明。