一文讀懂機器學習、數據科學、人工智能、深度學習和統計學之間的區別


在這篇文章中,數據科學家與分析師 Vincent Granville 明晰了數據科學家所具有的不同角色,以及數據科學與機器學習、深度學習、人工智能、統計學等領域的區別。這些概念的區別也一直是人工智能領域熱烈討論的一個話題,Quora、多個技術博客都曾有過解答。機器之心之前編譯的一篇文章《人工智能、機器學習、深度學習,三者之間的同心圓關系》也對此問題進行了探討,但似乎業內還未能給出一個權威的、令所有人信服的回答。如果對這篇文章中的觀點不認同,歡迎大家留言討論。

 

在這篇文章中,數據科學家與分析師 Vincent Granville 明晰了數據科學家所具有的不同角色,以及數據科學與機器學習、深度學習、人工智能、統計學、物聯網、運籌學和應用數學等相關領域的比較和重疊。Granville 介紹說,由於數據科學是一個范圍很廣的學科,所以他首先介紹了在業務環境中可能會遇到的數據科學家的類型:你甚至可能會發現你自己原來也是某種數據科學家。和其它任何科學學科一樣,數據科學也可能會從其它相關學科借用技術;當然,我們也已經開發出了自己的技術庫,尤其是讓我們可以以自動化的方式(甚至完全無需人類干預)處理非常大規模的非結構化數據集的技術和算法,進而實時執行交易或進行預測。

 

 

 

1. 數據科學家具有哪些不同類型?

 

要更詳細地了解數據科學家的類型,可參閱文章:http://suo.im/28rlX1 和 http://suo.im/3NNUpd。更多有用的信息可參閱:

 

  • 數據科學家與數據架構師:http://suo.im/4bRkRG

  • 數據科學家與數據工程師:http://suo.im/3mpo6E

  • 數據科學家與統計學家:http://suo.im/2GGtfG

  • 數據科學家與業務分析師:http://suo.im/3h0hkX

 

而在最近,數據科學家 Ajit Jaokar 則又討論了 A 型數據科學家(分析師)和 B 型數據科學家(建造者)之間的區別:

 

A 型數據科學家能夠很好地編寫操作數據的代碼,但並不一定是一個專家。A 型數據科學家可能是一個實驗設計、預測、建模、統計推理或統計學方面的事情的專家。然而總體而言,一個數據科學家的工作產品並不是「P 值和置信區間」——就像學術界的統計學有時候建議的那樣(而且這常常是為傳統的制葯等等行業工作的)。在谷歌,A 型數據科學家被稱為統計學家、定量分析師、決策支持工程開發分析師,也有一些被稱為數據科學家。

 

B 型數據科學家:這里的 B 是指 Building。B 型數據科學家和 A 型數據科學家具有相同的背景,但他們還是很強的程序員、甚至經驗豐富的軟件工程師。B 型數據科學家主要關注在生產環境中使用數據。他們構建能與用戶進行交互的模型,通常是提供推薦(產品、可能認識的人、廣告、電影、搜索結果等)。

 

而對於業務處理優化,我也有自己的看法,我將其分成了 ABCD 四個方向,其中 A 表示分析科學(analytics science),B 表示業務科學(business science),C 表示計算機科學(computer science),D 則表示數據科學(data science)。數據科學可能會涉及到編程或數學實踐,但也可能不會涉及到。你可以參考 http://suo.im/11bR7o 這篇文章了解高端和低端的數據科學的差異。在一家創業公司,數據科學家通常要做很多類型的工作,其扮演的工作角色可能包括:執行、數據挖掘師、數據工程師或架構師、研究員、統計學家、建模師(做預測建模等等)和開發人員。

 

雖然數據科學家常常被看作是經驗豐富的 R、Python、SQL、Hadoop 程序員,而且精通統計學,但這不只不過是冰山一角而已——人們對於數據科學家的這些看法不過是來自於重在教授數據科學的部分元素的數據培訓項目而已。但正如一位實驗室技術人員也可以稱自己為物理學家一樣,真正的物理學家遠不止於此,而且他們的專業領域也是非常多樣化的:天文學、數學物理、核物理、力學、電氣工程、信號處理(這也是數據科學的一個領域)等等許多。數據科學也是一樣,包含的領域有:生物信息學、信息技術、模擬和量化控制、計算金融、流行病學、工業工程、甚至數論。

 

對我而言,在過去的十年里,我專注於機器到機器和設備到設備的通信、開發能自動處理大型數據集的系統、執行自動化交易(比如購買網絡流量或自動生成內容)。這意味着需要開發能夠處理非結構化數據的算法,這也是人工智能、物聯網和數據科學的交叉領域,也可被稱為深度數據科學(deep data science)。其對數學的需求相對較少,也只涉及到較少的編程(大部分是調用 API),但其卻是相當數據密集型的(包括構建數據系統),並且基於專門為此背景而設計的全新統計技術。

 

在此之前,我的工作是實時的信用卡欺詐檢測。在我事業的早期階段(大約 1990 年),我開發過圖像遠程感知技術,其中包括識別衛星圖像的模式(形狀和特征,比如湖泊)和執行圖像分割:那段時間我的研究工作被稱為是計算統計學,但在我的母校,隔壁的計算機科學系也在做着幾乎完全一樣的事情,但他們把自己的工作叫做是人工智能。

 

今天,這項工作被稱作數據科學或人工智能,其子領域包括信號處理、用於物聯網的計算機視覺等。

 

另外,數據科學家也可以在各種各樣的數據科學項目中出現,比如數據收集階段或數據探索階段一直到統計建模和已有系統維護。

 

2. 機器學習對比深度學習

 

在深入探討數據學習與機器學習之間的區別前,我們先簡單討論下機器學習與深度學習的區別。機器學習一系列在數據集上進行訓練的算法,來做出預測或采取形同從而對系統進行優化。例如,基於歷史數據,監督分類算法就被用來分類潛在的客戶或貸款意向。根據給定任務的不同(例如,監督式聚類),用到的技術也不同:朴素貝葉斯、支持向量機、神經網絡、ensembles、關聯規則、決策樹、邏輯回歸或多種方法之間的結合。

 

這些都是數據科學的分支。當這些算法被用於自動化的時候,就像在自動飛行或無人駕駛汽車中,它被稱為人工智能,更具體的細說,就是深度學習。如果數據收集自傳感器,通過互聯網進行傳輸,那就是機器學習或數據科學或深度學習應用到了 IoT 上。

 

有些人對深度學習有不同的定義。他們認為深度學習是帶有更多層的神經網絡(神經網絡是一種機器學習技術)。深度學習與機器學習的區別這一問題在 Quora 上也被問到過,下面對此有詳細的解釋:

 

  • 人工智能是計算機科學的一個子領域,創造於 20 世紀 60 年代,它涉及到解決對人類而言簡單卻對計算機很難的任務。詳細來說,所謂的強人工智能系統應該是能做人類所能做的任何事。這是相當通用的,包含所有的任務,比如規划、到處移動、識別物體與聲音、說話、翻譯、完成社會或商業事務、創造性的工作(繪畫、作詩)等。

  • 自然語言處理只是人工智能與語言有關的一部分。

  • 機器學習被認為是人工智能的一方面:給定一些可用離散術語(例如,在一些行為中,那個行為是正確的)描述的人工智能問題,並給出關於這個世界的大量信息,在沒有程序員進行編程的情況下弄清楚「正確」的行為。典型的是,需要一些外部流程判斷行為是否正確。在數學術語中,也就是函數:饋入輸入,產生正確的輸出。所以整個問題就是以自動化的方式建立該數學函數的模型。在二者進行區分時:如果我寫出的程序聰明到表現出人類行為,它就是人工智能。但如果它的參數不是自動從數據進行學習,它就不是機器學習。

  • 深度學習是如今非常流行的一種機器學習。它涉及到一種特殊類型的數學模型,可認為它是特定類型的簡單模塊的結合(函數結合),這些模塊可被調整從而更好的預測最終輸出。

 

3.機器學習與統計學之間的區別

 

《Machine Learning Vs. Statistics》這篇文章試圖解答這個問題。這篇文章的作者認為統計學是帶有置信區間(confidence intervals)的機器學習,是為了預測或估計數量。但我不同意,我曾建立過不需要任何數學或統計知識的工程友好的置信區間。

 

4. 數據科學對比機器學習

 

機器學習和統計學都是數據科學的一部分。機器學習中的學習一詞表示算法依賴於一些數據(被用作訓練集),來調整模型或算法的參數。這包含了許多的技術,比如回歸、朴素貝葉斯或監督聚類。但不是所有的技術都適合機器學習。例如有一種統計和數據科學技術就不適合——無監督聚類,該技術是在沒有任何先驗知識或訓練集的情況下檢測 cluster 和 cluster 結構,從而幫助分類算法。這種情況需要人來標記 cluster。一些技術是混合的,比如半監督分類。一些模式檢測或密度評估技術適合機器學習。

 

數據科學要比機器學習廣泛。數據科學中的數據可能並非來自機器或機器處理(調查數據可能就是手動收集,臨床試驗涉及到專業類型的小數據),就像我剛才所說的,它可能與「學習」沒有任何關系。但主要的區別在於數據科學覆蓋整個數據處理,並非只是算法的或統計類分支。細說之,數據科學也包括:

 

  • 數據集成(data integration)

  • 分布式架構(distributed architecture)

  • 自動機器學習(automating machine learning)

  • 數據可視化(data visualization)

  • dashboards 和 BI

  • 數據工程(data engineering)

  • 產品模式中的部署(deployment in production mode)

  • 自動的、數據驅動的決策(automated, data-driven decisions)

 

當然,在許多公司內數據科學家只專注這些流程中的一個。

 

對於這篇文章,技術顧問 Suresh Babu 給出了一個評論,機器之心將其編譯整合到了下面:

 

這篇文章說明了解使用機器/計算機來處理類似人類決策的任務的統計學習的基本術語是件很麻煩的事。

 

但文章中「當這些算法被用於自動化的時候,就像在自動飛行或無人駕駛汽車中,它被稱為人工智能,更具體的細說,就是深度學習。」這樣的說話看起來卻有些隨意任性。

 

當過去計算機/機器還不夠友好,沒有得到廣泛使用的時候,統計學家和數據科學家的工作和現在這個領域的工作有很大的不同。比如說,當制造業開始使用計算機輔助后,生產速度和量都發生了巨大的變化——但它仍然是制造業。用制造機器來做原本人類做的程序化工作的想法最早來自 19 世紀初 Jacquard 和 Bouchon 等人。而 Jacquard 織布機的工作方式和現在計算機控制的織布機的工作方式基本相同。

 

現在的數據科學是一個知識體系,囊括了統計學和計算方法等等(而且在不同的具體領域不同學科的比例也不一樣)。

 

機器學習(或使用了其它的術語,比如深度學習、認知計算)是讓機器像人類一樣思考和推理,基本上而言是指通過人工的方法(所以也叫人工智能)來代替人類天生的自然智能——涉及到的任務從簡單到復雜都有。比如,無人駕駛汽車(目前)正在模仿人類的駕駛,駕駛條件也是人類在自然情況下會遇到的——我說「目前」是因為也許未來人類將很少能夠直接駕駛機器,「駕駛(drive)」這個詞本身都可能會改變含義。

 

這個領域里面也有些滑稽可笑的事情,比如一些基本的東西(比如一個下國際象棋或圍棋的算法)被認為可以解釋人腦的工作方式。就我們目前的知識水平而言,光是解釋鳥或魚的大腦的工作方式就已經非常困難了——這說明我們還沒有真正理解學習的機制。為什么果蠅只需幾百個神經元就能做到這么多事情?這還是神經科學的一個未解之謎。而認知是什么以及其在自然環境下是如何工作的也是一個數據科學傲慢地認為自己能解決的重大難題。(不管怎樣,降維是一種無監督學習的方法。)

 

在很多方面,工具以及我們使用工具所做的事情自人類誕生以來就在引導着人類的學習。但這就扯遠了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM