本文由 「AI前線」原創,原文連接: 數據科學、機器學習、人工智能的區別究竟是什麼?
做者| David Robinson
編譯 | 嚴子怡
編輯|Emily
AI 前線導讀:」當我向別人介紹我是一個數據科學家的時候,我經常聽到這樣的疑問:「這和機器學習有什麼區別?」或是「這是否是意味着你在作人工智能?」。我已經回答過太屢次這樣的問題。我回答的次數已經達到我事不過三的原則。」算法
David Robinson 的推文:機器學習
當你把相同的代碼寫了三遍時,請寫一個函數。當你面對面的給過了 3 次徹底相同的建議時,請寫一篇博文。分佈式
這些領域之間的確有很大程度上的重合。而且,這其中的每個領域都存在大量的炒做,以致於選擇使用哪個詞這件事好像是一個跟營銷有關的問題。可是,它們並非能夠隨意互換的。 即便很難用語言表達出來,大多數這些領域裏的專家都能憑直覺地理解哪些工做屬於數據科學,哪些工做屬於機器學習或者人工智能。函數
所以,在這篇文章中,我提出了一個很是簡單的關於這三個領域之間區別的定義:工具
要澄清的是,這不是一個充分條件:不是全部符合某個定義的東西就屬於這個領域。(算命先生也產生預測,但咱們毫不會認爲它們在作機器學習!)這些定義也不是很好的肯定一我的的角色和工做的方式(「我是一個數據科學家嗎?」),這樣的問題是與我的關注的方向和經歷有關的。(這對於任何一個關於工做的描述都是對的:個人工做的一部分是寫做但我不是一個專業的做家)。性能
可是,我認爲這些定義在用於區分這三種類型的工做時是很是有用的。而且當你談起這些知識時,這些定義可讓你避免本身聽起來很蠢。值得注意的是,我採起的是描述主義而不是規定主義的方法:我感興趣的並非這些術語「應該是什麼意思」,而是這個領域的人一般是如何使用它們的。學習
數據科學產生洞見測試
數據科學與其餘兩個領域的區別在於它的目標實際上是人的目標:得到洞見和理解。Jeff Leek 對數據科學能達到的哪些類型的洞見有一個很是好的定義 ,包括描述性(「普通客戶有 70%的可能去續費」),探索性(「不一樣的銷售人員有不一樣的續費率」)和因果關係(「隨機化的實驗代表分配給 Alice 的客戶比分配給 Bob 的客戶更有可能續費」)。大數據
再次強調,並不是全部產生洞見的都被認爲是數據科學(數據科學的經典定義是,它是統計學、軟件工程和領域專業知識的組合)。可是咱們能夠用這個定義把它與機器學習和 AI 區分開來。主要的區別在於,在數據科學的工做流程中,老是存在一我的:這我的正在理解這些洞見,觀察圖表,或者從結論中受益。因此,咱們不能說「咱們的象棋算法使用數據科學來選擇下一步怎麼走」或「Google 地圖使用數據科學來推薦行車路線」。優化
所以,這個關於數據科學的定義強調:
數據科學家可能會使用簡單的工具:他們能夠報告百分比,並根據 SQL 查詢製做線圖。他們還可使用很是複雜的方法:他們可能會使用分佈式數據存儲來分析數以萬億計的記錄,開發尖端的統計技術,並構建交互式可視化。不管他們使用什麼,他們的目標是更好地瞭解他們的數據。
機器學習產生預測
我認爲機器學習是一個關於預測的領域:「給定某個具備特定特徵的實例 X,預測 Y」。這些預測多是關於將來(「預測這個病人是否會患敗血症」),可是它們也多是一些計算機不容易理解的特質(「預測這個圖像是否有鳥 」)。幾乎全部的 Kaggle 比賽都是機器學習問題:他們提供一些訓練數據,而後看看參賽選手是否可以對新的例子作出準確的預測。
數據科學和機器學習之間有不少重疊。例如,邏輯迴歸能夠用來獲取有關關係的洞見(「用戶越有錢,他們購買咱們的產品的可能性越大,因此咱們應該改變咱們的營銷策略」),並作出預測(「這個用戶有 53%的可能性購買咱們的產品,因此咱們應該把這個產品推薦給他「)。
像隨機森林這樣的模型可解釋性稍差。所以,它更像是屬於機器學習和深度學習等難以解釋的方法。若是你的目標是提取洞見而不是作出預測,這些方法可能會阻礙你的工做。所以,咱們能夠想象一個包含數據科學和機器學習的「光譜」,在其之上,易於解釋的模型偏向於數據科學這邊,而「黑盒」的模型在機器學習那一邊。
大多數從業者可以很是溫馨地在兩個任務之間來回切換。我在工做中同時使用了機器學習和數據科學:我可能會使用 Stack Overflow 的流量數據訓練出來的模型來肯定哪些用戶可能正在尋找工做(這是機器學習),可是也會構建歸納性描述和可視化來檢查爲何模型可以正確工做(這是數據科學)。這項工做是發現你的模型中的缺陷,並與算法誤差做鬥爭的一個重要途徑。這是爲何數據科學家常常負責開發產品的機器學習組件。
人工智能產生行動
人工智能是迄今爲止這三個領域中最古老也是最廣爲人知的,所以定義它是最具挑戰性的。這個詞語被大量的炒做所包圍,這要緣於研究人員,記者以及尋求金錢或關注的創業公司。
Baron Schwartz 的推文:
當你在融資時,它是 AI;當你在招聘時,它是機器學習;當你在寫代碼時,它是線性迴歸;當你在調 bug 時,它是 printf()
這讓我心裏產生了很不幸的抗拒情緒。由於這意味着一些應該被稱爲 AI 的工做沒有被看成 AI。一些研究人員甚至抱怨 AI 的效應:「AI 是咱們如今還沒法作到的」【腳註 1】。那麼咱們能夠把什麼工做稱做 AI?
「人工智能」定義中的一個共同點是自主行動主體執行或推薦行動(例如 Poole,Mackworth 和 Goebel 1998,Russell and Norvig 2003)。一些我認爲應該描述爲 AI 的系統包括:
同時,咱們能夠看到人工智能有不少與其餘領域重疊的部分。深度學習在實現機器學習到 AI 的跨越這一方面特別引人注意。典型的用例是對數據進行訓練,而後進行預測,但它卻在 AlphaGo 等遊戲算法中得到了巨大的成功。(這與以前的遊戲系統造成了鮮明的對比,好比深藍,它更專一於探索和優化後續的解空間)。
但他們之間也有區別。若是我分析一些銷售數據,發現某一行業的客戶比其餘行業的客戶續費的更多(提取洞見),個人輸出是一些數字和圖表,而不是一個特定的行動。(主管人員可能會用這些結論來改變咱們的銷售策略,但這種行動不是自主的)這意味着我將會把個人工做形容爲數據科學。若是我說:我正在「使用 AI 來改善咱們的銷售狀況」,那將是很是尷尬的。
Dave Gershgorn 的推文:
請不要看到一個只是訓練過模型的人就說他掌握了 AI 的力量。
人工智能和機器學習之間的區別有點微妙,歷史上機器學習常常被認爲是 AI 的一個子領域(尤爲是計算機視覺被視做一個經典的 AI 問題)。可是我認爲機器學習領域在很大程度上已經從 AI 脫離開來了,部分緣由在於上面所說的抗拒情緒:大多數從事預測問題的人不喜歡把本身形容爲 AI 研究人員。(有助於實現許多重要的機器學習領域突破的知識,大都來自統計學。而統計學在 AI 領域的其餘部分的出現則不多)。這意味着,若是你能夠把一個問題描述爲「從 Y 預測 X」,我建議避免使用 AI 這個術語。
Amy Hoy 的推文:
按照如今的定義,y=mx+b 是一個能夠告訴你一條直線該往哪兒延伸的 AI 機器人。
案例學習:三者如何一塊兒使用?
假設咱們正在建造一輛自動駕駛汽車,而且咱們正在研究如何停在標誌停車旁這樣一個具體的問題。咱們須要分別在這三個領域中使用如下技能。
腳註:
查看英文原文:
varianceexplained.org/r/ds-ml-ai/
更多幹貨內容,可關注AI前線,ID:ai-front,後臺回覆「AI」、「TF」、「大數據」可得到《AI前線》系列PDF迷你書和技能圖譜。