《機器學習實戰》作者Peter Harrington:如何成為一位資料科學家(圖靈訪談)
Peter Harrington,擁有電氣工程學士和碩士學位,他曾經在美國加州和中國的英特爾公司工作7年。Peter擁有5項美國專利,在三種學術期刊上發表過文章。他現任HG Data首席科學家。如果說LinedIn跟蹤的是人和人之間的商務往來,HG Data則是致力於挖掘公司間的商業往來。他曾是Zillabyte公司的創始人和首席科學家,在此之前,他曾擔任2年的機器學習軟體顧問。Peter在業餘時間還參加程式設計競賽和建造3D印表機。
機器學習似乎比其他電腦科學學科都要難,特別是對於數學不太好的程式設計師而言。你對這些程式設計師有什麼樣的建議呢?
我建議應該先自學基本的概率、統計,以及線性代數。你不需要學一個學期那麼長的課,這些基礎知識就會讓你有很大收穫。有很多線上資源,比如Kahn academy視訊。(我在56.com和Kahn academy找了一下有很多英文的,也有一些中文的。)也有一些比較容易起步的書,我比較熟悉有美國英文版的“teach yourself”(自學)系列, “statistics for dummies”(傻瓜統計), “probability refresher”(概率補習),“statistics demystified”(統計解惑)等等。
我其實認為這裡面其實很有商機。Kahn academy視訊很不錯,因為它們都很短,但遺憾的是這些視訊都是英文的。我看見的中文線性代數視訊都很長。如果你能做出像Kahn academy那樣的中文視訊,我覺得是會非常受歡迎的。
如何進階學習機器學習?對於初學者是否有一個類似於路線圖的東西?你有什麼推薦書單嗎?
我會讀Witten 和 Frank所著的《資料探勘:實用機器學習工具與技術》,這裡面涉及的數學很少,但是又對普通演算法做了很好的介紹。我覺得緊接著就該讀Tan, Steinbach, 以及Kumar的《資料探勘導論》。
當然,這些書都很厚,如果你想馬上就搞明白一些東西,估計就不想讀這些大部頭了。如果要把某個演算法弄明白,我會在網上找很多教程。比如Adboost演算法,我認為多讀一些不同的教程比只讀一個,深入鑽研要好很多。
最後我覺得應該多動手玩玩例項。問問你自己:如果我改變這個資料,結果會是怎麼樣的呢?
在真實案例中,資料預處理可能要比演算法還要重要,你要不要考慮在新版《機器學習實戰》加入資料預處理技巧和例項?
我完全同意,我的大部分時間都是用來做資料預處理。我會在未來加入資料預處理的內容。我不知道這裡面會不會有什麼神奇的捷徑,有時候我面對的就是一堆苦活兒。我還要說:你一定要把能自動化的都自動化,這樣就會節省很多你未來的工作量。
對於有些人來說“演算法”才是機器學習真正有趣的地方,但是機器學習裡面總有一些苦活累活不那麼有意思,比如資料預處理。你是怎麼完成這些“不那麼有趣”的工作的?
當然,肯定有無聊的工作,所以你一定要把這部分工作自動化,這樣你就不需要重複做這些無聊的工作了。這樣做也會讓你變成一個更好的軟體開發者。
能向我們介紹一些機器學習方面的開源專案嗎?
我現在能想到最好的就是Scikit-learn (http://scikit-learn.org/stable/) 了。這是用Python寫的專案,用到了Scipy 和 Numpy。
資料科學家被評為世界上最火的工作之一,你認同嗎?您本人作為一個資料科學家,有什麼可以和我們分享的經驗嗎?要成為一個資料科學家需要有什麼條件?
我認為資料科學家現在確實很好找工作。什麼是資料科學家呢?我認為資料科學家是介於統計學家和軟體工程師中間的一種工作。公司、個人、NPO,甚至運動隊都需要根據資料來做決策。他們需要可以分析資料的人。這需要我之前提過的兩種條件。人們不需要單純的統計學家,這些人可能對於爭論自己到底用不用貝葉斯定理更感興趣,人們需要的是真正能做實事的人。
所以我也建議大家多動手做一些東西。這是什麼意思呢?創造一些專案,收集資料,預處理資料,然後做一些資料分析,展示資料,最後向公眾展示這些資料。如果你做了很多這樣的事情,那麼你就有一個可以用來向你未來老闆或者其他人展示的檔案夾。幾乎我書裡的每個例子都可以用來做成一個網站或者智慧電話app,這些都是你可以示人的資本。
人工智慧的發展到了瓶頸期,而機器學習似乎是可以打破這個僵局的領域。你認為是什麼原因造成了機器學習這樣的發展步伐?
相比於物理學或者電氣工程這樣的學科,人工智慧可能是很年輕的。一個年輕的學科中的很多課題和原則都是被不斷發現和精煉的。很多時候,研究專案被當做事實一樣擺出來,我認為這就是“人工智慧承諾得太多,實現得太少”的真正原因。
我覺得這裡面一個很好的例子就是很多學者想要用神經網路再造哺乳動物大腦。這讓我想起來早些時候人們試圖通過造出外形很像鳥翅膀的翼來製造飛機,其結果只能是飛起來把自己的骨頭砸碎了。我不是要批判任何在做神經網路方面工作的人:這就是個試驗,有一些有用的應用,但是這些解決不了我們的問題也沒法造出有感知的機器。問題是這些試驗被當做了事實放在教科書裡、電影裡,以及新聞裡,但它們還僅僅是試驗。
回到那個飛機的例子。當人類第一次知道動力飛行時,他們是因為要解決一個小任務而做出來的,而不是要建造什麼機器鳥。我覺得同樣的方法也促成了人工智慧上的一些成功。2010-2011年的大突破:IBM的Watson計算機、Google的自動駕駛汽車,以及iPhone的Siri語音識別,甚至還有一個公司成功地用人工智慧寫出了新聞報導。這些都不是試驗,這些都是生產線上的商品,被無數的人所使用。人工智慧純化論者會認為這些只是被用來完成明確任務的工具,而不是智慧機器。
回到我們的問題,我認為機器學習是很實用的工具,可以用來解決很具體的問題,但是人工智慧是一個高高在上的目標,很難達到。這也就是人工智總讓人感到失望,而機器學習總會為我們帶來驚喜的原因。
很多大(資料)公司,比如Google, Facebook 和 Baidu都投入很多精力在深度學習上。你認為深度學習會在未來取代“人工特性+機器學習”的方法嗎?
不,我不認為深度學習會取代人工特性+機器學習。有很多領域,深度學習確實很擅長,比如識別圖片。但是仍然有很多領域現存演算法的表現更勝一籌。
在深度學習之後,機器學習的下一個熱點是什麼?
我不知道,也許你可以基於學術或者技術會議的論文提交來創造一個預測模型來告訴我下一個與研究熱點。
很多人認為語言會是大資料和機器學習的未來主要功用。讓我們舉一個具體的例子,如果要預測一個公司的收入,你會用什麼模型?
這點說得很對。我知道大的零售商會有一整個團隊來做銷售的預測。如果他們真能準確預測銷量,那他們就會省下一大筆錢。如果要預測一家公司的收入,我會首先用迴歸+邏輯迴歸。邏輯迴歸讓我們可以隨時開啟或關閉操作,這對於相關事情發生以及金錢入賬這樣的事來說都是一個很好的模型。
請問7.3節的著名的45問題到底是什麼?
不好意思,我應該在書中說明地更清楚來著,這也來自於一個英文論壇上的問題。
45問題指的就是資料都在一條呈45°角的線上,或者以y=x的形式存在。這是關於如何為這類資料製造一個簡單分類器的問題。
這為什麼會是一個問題呢?如果我們有一個類:在y = x這條線上的1,我們還有第二個類:在y = x + 6這條線上的0。
那麼現在在X軸(垂直軸)上選擇一個值,這個值可以讓所有屬於1類的數值在其一邊,而所有屬於0類的數值在其另一邊。再試著在Y軸(水平線)上找一個值。你無法找到一個簡單的 X &Y組合把點分成兩類,這就是45問題。
一個支撐向量機,或者邏輯迴歸對於這樣的資料不會有什麼問題。你也可以用一個資料轉換,和一個決策殘根來輕鬆應對這個資料。
你打算想讓《機器學習實戰》變得更加有趣嗎?比方說,可以在每一章中加入一個日常生活中的例子。
這聽起來是個不錯的主意。
![]() |
番外: |
更多精彩,加入圖靈訪談微信!
相關文章
- 【資料科學家】如何成為一名資料科學家?資料科學
- 如何成為資料科學家? - kdnuggets資料科學
- 如何成為學習高手訪談錄
- 成為資料科學家應該知道的10種機器學習演算法資料科學機器學習演算法
- Python機器學習 5個資料科學家案例解析Python機器學習資料科學
- 機器學習工程師與資料科學家的大斗法機器學習工程師資料科學
- 初創公司資料科學專案全流程指南,一位資深資料科學家的經驗談資料科學
- 資料科學家與機器學習工程師的區別? - kdnuggets資料科學機器學習工程師
- 資料科學家會被機器學習工程師取代嗎? - KDnuggets資料科學機器學習工程師
- TikTok機器學習與資料科學家的面試題 - Reddit機器學習資料科學面試題
- 如果是個窮光蛋:如何從零開始學習成為一個資料科學家?資料科學
- 「資料科學家」必備的10種機器學習演算法資料科學機器學習演算法
- 為什麼資料科學家應該開始學習Swift?資料科學Swift
- 資料工程師、掌握資料分析,成為資料科學家、資料庫遷移專家工程師資料科學資料庫
- 資料科學和機器學習面試問題資料科學機器學習面試
- 為什麼Jupyter是資料科學家們實戰工具的首選?資料科學
- 《機器學習實戰》學習大綱機器學習
- 全球40億人沒有地址,於是資料科學家想到了機器學習資料科學機器學習
- 資料科學系統學習 機器學習演算法 # 西瓜書學習記錄 [12] 整合學習實踐資料科學機器學習演算法
- 如何成為一名資料科學家?聽聽來自Netfix的老司機怎麼說資料科學
- 圖靈獎獲得者:資料科學家或將取代業務分析師?圖靈資料科學
- Scikit-Learn 與 TensorFlow 機器學習實用指南學習筆記 5 —— 如何為機器學習演算法準備資料?機器學習筆記演算法
- 「雜談」GitHub上最全的機器學習和深度學習資料Github機器學習深度學習
- 資料科學家必知的五大深度學習框架!(附插圖)資料科學深度學習框架
- 機器學習和資料科學領域,推薦幾本學習書單機器學習資料科學
- 人工智慧,機器人技術和資料科學家將在2020年成為新興工作人工智慧機器人資料科學
- 機器學習實戰原始碼和資料集下載機器學習原始碼
- 進階指南:如何從資料分析師轉型為資料科學家?資料科學
- 競技世界首席資料科學家巴川:資料科學,未來或將成為民族核心競爭力資料科學
- 回顧·機器學習/深度學習工程實戰機器學習深度學習
- python機器學習實戰(二)Python機器學習
- (五)numpy知識學習2-python資料分析與機器學習實戰(學習筆記)Python機器學習筆記
- 五個給機器學習和資料科學入門者的學習建議機器學習資料科學
- 2018資料科學和機器學習調查:Hadoop被拋棄!資料科學機器學習Hadoop
- Java可以用於機器學習和資料科學嗎? - kdnuggetsJava機器學習資料科學
- ApacheCN 資料科學/人工智慧/機器學習知識樹 2019.2Apache資料科學人工智慧機器學習
- 機器學習淺談機器學習
- 談談人工智慧和機器學習的資料架構人工智慧機器學習架構
- Python或將成資料科學家首選語言Python資料科學