編者按:如果你要寫3段同樣的代碼,你最好調用函數;如果你被人當面問了3次同樣的問題,你最好寫一篇文章……數據科學、機器學習、人工智能,隨著這些詞日漸頻繁地出現在公眾視野里,一些類似“程序員=修電腦”的誤會也逐漸變得常見起來。那么,這三者的區別究竟是什么呢?近日,Stack Overflow的一位數據科學家David Robinson就不堪誤會之擾,專門撰寫了文章解釋這三個名詞的區別,讓我來看看他的理解吧。
當我介紹自己是一名數據科學家的時候,我經常會遇到“機器學習和數據科學有什么區別?”“你是搞人工智能的嗎?”這樣的問題,我回答了一遍一遍又一遍,但所謂事不過三,現在我已經受不了了。
誠然,這些領域確實有很多重疊,再加上媒體連續不斷的捆綁營銷炒作,人們很容易把它們誤解為同一種東西。但事實上,數據科學、機器學習、人工智能這三個概念是不可混淆的:大多數領域內的專業人士都對其中的區別有直觀理解,但一旦涉及用語言描述出來,這個事情就變得困難重重了。
所以在這篇文章中,我想談一談這三個領域之間差異的簡單定義:
數據科學產生見解;
機器學習產生預測;
人工智能產生行為。
需要注意的是,這些定義只是泛泛而談:符合這些定義的東西未必能被歸類于相對應的領域(算命先生天天幫人預測,但我不會說他們是在搞機器學習);這些定義也不是確定某人方向、職位的衡量標準(“我是數據科學家嗎?”);其中包含的是三者各自偏重的重點和經驗(任何工作都是這樣:寫文章是我工作的一部分,但我不是專業作家)。
雖然“嚴謹”不足,但我依然認為這些定義是區分數據科學、機器學習、人工智能這三個概念的有效方法,它至少可以讓你在聊天的時候不那么門外漢。事實上,我在這篇文章內只做描述,不做定義。我對告訴你這些術語“應該是什么意思”完全不感興趣,但我會告訴你相應領域的人會對用這些術語做什么事感興趣。
數據科學產生見解
數據科學和機器學習、人工智能有顯著區別,它關注的是人類目標:得到見解和理解。對此,杰夫·李克(Jeff Leek)在Types of Data Science Questions中給出了很好的定義,他認為數據科學應該包含描述性(如“普通客戶的續訂概率為70%”)、探索性(如“不同銷售人員手中客戶的續訂率不同”)以及因果關系(研究表明分配給小明的客戶的續訂率比小紅高)。
當然,并非所有帶有一定見解的數據資料都屬于數據科學范疇,從學科上講,數據科學應該是統計學、軟件工程和相關領域專業的結合,但這一點能把它和機器學習、AI明顯區分開來。這三者的一個主要區別在于,在數據科學中,人是循環中不可缺少的一個組成部分:算法得出數字、結果,人從中得到見解,挖掘原因。對于機器學習,DeepMind的圍棋算法不需要依靠人來選擇下一步;對于AI,Google地圖推薦行車路線時也不需要人來幫忙。
因此,數據科學強調的是:
統計推理;
數據可視化;
實驗設計;
專業領域知識;
溝通。
數據科學家可能會使用一些簡單的工具:計算百分比,并根據SQL查詢制作線圖。他們也會使用非常復雜的方法:用分布式數據存儲分析數以萬億計的數據,開發尖端統計技術,并構建可視化交互工具。無論他們做了什么,怎么做,目標都是更好地解讀數據。
機器學習產生預測
我認為機器學習的特點是產生預測:給定具有特定特征的樣本X,預測Y。這些預測可能是關于未來的(如預測病人的疾病惡化情況),也有可能是關于計算機的弱勢領域的(如預測圖像中是否有鳥)。Kaggle上的所有項目比賽幾乎都可以被視為機器學習問題:他們提供一些訓練數據,看參賽者的模型能否基于數據集準確預測全新樣本。
數據科學和機器學習有許多交叉,邏輯回歸就是其中的一個典型。例如,我們可以用邏輯回歸算法分析客戶:客戶越有錢,他買我們的商品的幾率就越大,那我們就需要相應地改變營銷策略。那么怎么制定營銷策略呢?一個可參考的標準就是算法的預測:這個客戶的購買幾率是53%,所以我們應該向他推銷產品。
但數據科學和機器學習畢竟是不同的。像隨機森林這樣的模型,我們在數據科學上很難對它作出解釋,但它在機器學習領域卻是最簡單基礎的模型之一,而深度學習的內容就更難理解了。如果你的目標是提取見解而不是做出預測,那么機器學習并不適合你。因此我們可以為數據科學和機器學習畫一個簡單的界限:數據科學更傾向于使用可解釋的模型,而機器學習會更多地涉及“黑盒”模型。
事實上,大多數領域內的人都能在這兩者之間輕松地來回切換,比如我就經常會在工作中用到數據科學和機器學習:我會基于Stack Overflow的業務數據建立一個模型來預測哪些用戶可能正在找工作(機器學習),但與此同時我也需要就模型為什么能起作用給出總結并進行可視化測試(數據科學)。這是發現模型缺陷、和算法偏差作斗爭的重要途徑,也是數據科學家經常負責開發產品的機器學習組件的原因之一。
人工智能產生行為
迄今為止,人工智能可以稱得上是三者中歷史最悠久、社會認可度最高的領域,因此定義它頗具挑戰性。談及人工智能,最直觀的一個感受就是炒作,研究人員、媒體、創業公司……人工智能堪稱炒作的溫床,搭上它,你就能獲得名譽、熱度和金錢。
如果你想融資,寫AI;
如果你想招聘,寫ML;
如果你想實現,線性回歸;
如果你在debugging,printf()。
這就導致了我對它的悲觀看法,因為這種“萬物皆AI”的炒作會使一些理應被作為AI內容的基礎工作“無家可歸”。對此,一些研究人已經員開始抱怨AI效應:“我們現在根本無法實現AI。”那么,哪些工作可以被視為AI的一部分呢?
在Poole、Mackworth和Goebel于1998年出版的《計算智能》里,和Stuart Russell、Peter Norvig于2003年出版的《人工智能:現代方法》里,他們定義的“人工智能”有一個共同點,就是首先我們需要一個模擬人類智能的智能體代理,其次它能自主執行任務,并能根據行為作出反饋。所以以下是我認為應該被描述為AI的內容:
游戲算法(Game-playing algorithms),如AlphaGo;
機器人及控制論;
優化,如Google地圖選擇駕駛路線;
自然語言處理;
強化學習。
同樣的,人工智能也和其他兩個領域有大量交叉內容,尤其是深度學習在機器學習和人工智能上表現出來的跨界成就。深度學習的一個典型用法是基于數據進行訓練,然后再進行預測,這很機器學習,但它的模型在游戲中也大獲成功。和之前仗著算力提升,簡單粗暴算出所有下法的超級計算機“深藍”不同,AlphaGo雖然也有不低的算力要求,但它不再窮舉,而是專注于探索和優化解決方案的未來空間。
但人工智能也很不一樣。如果我正在用模型分析一些銷售數據,發現某特定行業的客戶比其他行業的客戶擁有更高的續訂率,那我會輸出它的一些數字和圖表,而不是簡單下個結論(盡管主管會需要這個結論并基于它調整銷售策略,但這一系列行為不是自主的)。在這種情況下,我在做的事叫做數據科學。
請!千萬!千萬!千萬不要說:我正在用AI來提高銷售額!(請聯系某些金融機構的廣告自行判斷)
人工智能和機器學習之間也存在微妙的區別。以前我們會把機器學習作為人工智能的一個子領域,尤其是計算機視覺,它是后者的一個經典問題。但現在,我認為機器學習很大程度上已經從人工智能中剝離出來了,其中的一個原因是從業人員的反感:大多數從事機器學習的人都不愿意把自己形容為AI研究人員(許多機器學習突破都源于統計學)。獨立意味著你可以把問題描述為“從Y預測X”,而不是用AI這樣頗具玄學的詞匯。
根據今天的定義,y=mx+b都成了一個人工智能機器人,因為它能告訴你函數線會往哪兒走。
案例研究:三者的組合
假設我們正在制造一輛自動駕駛汽車,需要研究汽車識別停車標志這個問題,那么我們需要結合這三個領域的知識。
機器學習:汽車必須使用攝像頭識別停車標志。我們構建了一個包含數百萬個包含路標的街景圖像的數據集,并基于它訓練一個能夠準確識別停車標志的算法。
人工智能:一旦我們的車識別出了停車標志,它必須能自主判斷何時剎車。過早過晚都是很危險的,同時它也要兼顧路況(如雨雪天氣光滑路面),這是控制論的問題。
數據科學:在實際路測時,我們發現汽車性能不夠好,因為停車標志出現了不少導致錯誤的消極因素。分析路測數據后,我們得到的結論是假陰性率(漏判率)取決于時間:日出前、日落后,汽車容易錯過路標。由此我們發現大部分訓練數據都是全天候的,汽車并沒有針對夜間環境做過訓練,所以我們搜集了很多夜間停車標志圖像,返回機器學習步驟。
-
人工智能
+關注
關注
1791文章
46868瀏覽量
237592 -
機器學習
+關注
關注
66文章
8378瀏覽量
132415 -
數據科學
+關注
關注
0文章
165瀏覽量
10045
原文標題:數據科學、機器學習和人工智能到底有什么區別?
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論